Author:
rainerborene
Version:
0.1
Released:
10 March 2011
Category:
Workflow

New#2: Migrate with Members extension timezone field results in error

Edit: This is a Members extension issue. The issue can be closed for this extension.

I cloned the latest Symphony integration branch (2.2.1 Beta 1) and the latest Members extension integration branch (1.0 Beta 2) and the latest commit of the Schema Migration extension. I installed Symphony, enabled all extensions, enabled Enable tracking of section and page changes in Preferences and copied the following migration file into sections/members.xml:

<?xml version="1.0" encoding="UTF-8"?>
<section guid="4d99ee71d0dc4">
  <meta>
    <name>Members</name>
    <handle>members</handle>
    <sortorder>10</sortorder>
    <entry_order>1</entry_order>
    <entry_order_direction>asc</entry_order_direction>
    <hidden>no</hidden>
    <navigation_group>Forum</navigation_group>
    <guid>4d99ee71d0dc4</guid>
  </meta>
  <fields>
    <entry>
      <required>yes</required>
      <show_column>yes</show_column>
      <label>Name</label>
      <element_name>name</element_name>
      <type>input</type>
      <parent_section>1</parent_section>
      <sortorder>0</sortorder>
      <location>main</location>
      <guid>4d99ee71d1b1c</guid>
      <validator></validator>
    </entry>
    <entry>
      <required>yes</required>
      <show_column>yes</show_column>
      <label>Username</label>
      <element_name>username</element_name>
      <type>memberusername</type>
      <parent_section>1</parent_section>
      <sortorder>1</sortorder>
      <location>main</location>
      <guid>4d99ee71d1be2</guid>
      <validator></validator>
    </entry>
    <entry>
      <required>yes</required>
      <length>6</length>
      <strength>good</strength>
      <show_column>no</show_column>
      <label>Password</label>
      <element_name>password</element_name>
      <type>memberpassword</type>
      <parent_section>1</parent_section>
      <sortorder>2</sortorder>
      <location>main</location>
      <guid>4d99ee71d1c96</guid>
      <salt>5Ms1E8OcpWUgC6g1</salt>
    </entry>
    <entry>
      <required>yes</required>
      <show_column>yes</show_column>
      <label>Email Address</label>
      <element_name>email-address</element_name>
      <type>memberemail</type>
      <parent_section>1</parent_section>
      <sortorder>3</sortorder>
      <location>main</location>
      <guid>4d99ee71d1d45</guid>
    </entry>
    <entry>
      <show_column>yes</show_column>
      <location>sidebar</location>
      <required>yes</required>
      <label>Role</label>
      <element_name>role</element_name>
      <type>memberrole</type>
      <parent_section>1</parent_section>
      <sortorder>4</sortorder>
      <guid>4d99ee71d1df8</guid>
      <default_role>1</default_role>
    </entry>
    <entry>
      <show_column>yes</show_column>
      <location>sidebar</location>
      <required>no</required>
      <label>Activation</label>
      <element_name>activation</element_name>
      <type>memberactivation</type>
      <parent_section>1</parent_section>
      <sortorder>5</sortorder>
      <guid>4d99ee71d1ea6</guid>
      <code_expiry>1 hour</code_expiry>
      <activation_role_id>0</activation_role_id>
    </entry>
    <entry>
      <required>no</required>
      <show_column>no</show_column>
      <label>Website</label>
      <element_name>website</element_name>
      <type>input</type>
      <parent_section>1</parent_section>
      <sortorder>6</sortorder>
      <location>main</location>
      <guid>4d99ee71d1f52</guid>
      <validator>/^[^s:/?#]+:(?:/{2,3})?[^s./?#]+(?:.[^s./?#]+)*(?:/[^s?#]*??[^s?#]*(#[^s#]*)?)?$/</validator>
    </entry>
    <entry>
      <required>no</required>
      <show_column>yes</show_column>
      <label>Location</label>
      <element_name>location</element_name>
      <type>input</type>
      <parent_section>1</parent_section>
      <sortorder>7</sortorder>
      <location>sidebar</location>
      <guid>4d99ee71d1ffd</guid>
      <validator></validator>
    </entry>
    <entry>
      <required>no</required>
      <show_column>yes</show_column>
      <label>City</label>
      <element_name>city</element_name>
      <type>input</type>
      <parent_section>1</parent_section>
      <sortorder>8</sortorder>
      <location>sidebar</location>
      <guid>4d99ee71d20af</guid>
      <validator></validator>
    </entry>
    <entry>
      <show_column>no</show_column>
      <location>sidebar</location>
      <required>no</required>
      <label>Timezone</label>
      <element_name>timezone</element_name>
      <type>membertimezone</type>
      <parent_section>1</parent_section>
      <sortorder>9</sortorder>
      <guid>4d99ee71d215c</guid>
      <available_zones>AMERICA</available_zones>
    </entry>
    <entry>
      <location>sidebar</location>
      <show_column>yes</show_column>
      <label>Email Opt-in</label>
      <element_name>email-opt-in</element_name>
      <type>checkbox</type>
      <parent_section>1</parent_section>
      <required>no</required>
      <sortorder>10</sortorder>
      <guid>4d99ee71d2207</guid>
      <default_state>off</default_state>
      <description>Send me email when there is important news.</description>
    </entry>
  </fields>
</section>

Clicking on the Migrate button successfully adds the section and fields, but trying to create a new entry in the Members section resulted in the following error:

Argument 1 passed to fieldMemberTimezone::buildTZSelection() must be an array, null given, called in /Users/stephen/Sites/sym/members/extensions/members/fields/field.membertimezone.php on line 203 and defined
/Users/stephen/Sites/sym/members/extensions/members/fields/field.membertimezone.php line 99

94       * @param array $data
95       * @param string $prefix
96       * @param string $postfix
97       * @return XMLElement
98       */
99      public function buildTZSelection(Array $data = array(), $prefix = null, $postfix = null) {
100         $groups = array();
101
102         if ($this->get('required') != 'yes') $groups[] = array(NULL, false, NULL);
103

Please login to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details