Author | Message |
---|---|
|
Wednesday 25 March 2009 12:47:43 pm
Hi! I've tried to make a customized shopaccounthandler. Nothing special, it looks like the original ezusershopaccounthandler.php in kernel/classes/shopaccounthandlers folder, I just would like to add a new information called "takeovermode". The new data looks in userregister page, but on the next confirmorder page the $order.account_information.takeovermode variable is always empty. Anybody knows what could be the problem? I use the following codes and settings: extension/takeovermode/design/standard/templates/userregister.tpl <h1>{"Your account information"|i18n("design/standard/shop")}</h1> {section show=$input_error} <div class="warning"> <p> {"Input did not validate, all fields marked with * must be filled in"|i18n("design/standard/shop")} </p> </div> {/section} <form method="post" action={"/shop/userregister/"|ezurl}> <div class="block"> <div class="element"> <label> {"First name"|i18n("design/standard/shop")}:* </label><div class="labelbreak"></div> <input class="halfbox" type="text" name="FirstName" size="20" value="{$first_name|wash}" /> </div> <div class="element"> <label> {"Last name"|i18n("design/standard/shop")}:* </label><div class="labelbreak"></div> <input class="halfbox" type="text" name="LastName" size="20" value="{$last_name|wash}" /> </div> <div class="break"></div> </div> <br /> <div class="block"> <label> {"Email"|i18n("design/standard/shop")}:* </label><div class="labelbreak"></div> <input class="box" type="text" name="EMail" size="20" value="{$email|wash}" /> </div> <div class="block"> <label> {"Company"|i18n("design/standard/shop")}: </label><div class="labelbreak"></div> <input class="box" type="text" name="Street1" size="20" value="{$street1|wash}" /> </div> <div class="block"> <label> {"Street"|i18n("design/standard/shop")}:* </label><div class="labelbreak"></div> <input class="box" type="text" name="Street2" size="20" value="{$street2|wash}" /> </div> <div class="block"> <div class="element"> <label> {"Zip"|i18n("design/standard/shop")}:* </label><div class="labelbreak"></div> <input class="halfbox" type="text" name="Zip" size="20" value="{$zip|wash}" /> </div> <div class="element"> <label> {"Place"|i18n("design/standard/shop")}:* </label><div class="labelbreak"></div> <input class="halfbox" type="text" name="Place" size="20" value="{$place|wash}" /> </div> <div class="break"></div> </div> <br/> <div class="block"> <label> {"State"|i18n("design/standard/shop")}: </label><div class="labelbreak"></div> <input class="box" type="text" name="State" size="20" value="{$state|wash}" /> </div> <div class="block"> <label> {"Country/region"|i18n("design/standard/shop")}:* </label><div class="labelbreak"></div> {include uri='design:shop/country/edit.tpl' select_name='Country' select_size=5 current_val=$country} </div> // THIS IS THE NEW DATA <div class="block"> <label> {'Takeover mode'|i18n('extension/takeovermode/design')}: </label><div class="labelbreak"></div> {include uri='design:shop/takeovermode/edit.tpl' select_name='Takeovermode' select_size=5 current_val=$takeovermode} </div> <div class="block"> <label> {"Comment"|i18n("design/standard/shop")}: </label><div class="labelbreak"></div> <textarea name="Comment" cols="80" rows="5">{$comment|wash}</textarea> </div> <div class="buttonblock"> <input class="button" type="submit" name="CancelButton" value="{"Cancel"|i18n('design/standard/shop')}" /> <input class="defaultbutton" type="submit" name="StoreButton" value="{"Continue"|i18n( 'design/standard/shop')}" /> </div> </form> <p> {"All fields marked with * must be filled in."|i18n("design/standard/shop")} </p> extension/takeovermode/design/standard/templates/shop/takeovermodes/edit.tpl {if is_set( $takeovermodes ) | not } {def $takeovermodes = array("Takeover mode 1","Takeover mode 2","Takeover mode 3")} {/if} {default $max_len = 20 $select_size = 1} <select name="{$select_name}" size="{$select_size}"> {if and( is_set( $default_val ), is_set( $default_desc ) )} <option {if eq( $current_val, false )}selected="selected"{/if} value="{$default_val}">{$default_desc}</option> {/if} {foreach $takeovermodes as $takeovermode} <option {if eq( $takeovermode, $current_val )} selected="selected" {/if} value="{$takeovermode}" > {$takeovermode} </option> {/foreach} </select> {/default} extension/takeovermode/design/standard/templates/shop/accounthandlers/html/ez.tpl <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td valign="top"> <p> <b>{"Customer"|i18n("design/standard/shop")}</b> </p> <p> {'Name'|i18n('design/standard/shop')}: {$order.account_information.first_name} {$order.account_information.last_name}<br /> {'Email'|i18n('design/standard/shop')}: {$order.account_information.email}<br /> </p> </td> <td valign="top"> <p> <b>{"Address"|i18n("design/standard/shop")}</b> </p> <p> {'Company'|i18n('design/standard/shop')}: {$order.account_information.street1}<br /> {'Street'|i18n('design/standard/shop')}: {$order.account_information.street2}<br /> {'Zip'|i18n('design/standard/shop')}: {$order.account_information.zip}<br /> {'Place'|i18n('design/standard/shop')}: {$order.account_information.place}<br /> {'State'|i18n('design/standard/shop')}: {$order.account_information.state}<br /> {'Country/region'|i18n('design/standard/shop')}: {$order.account_information.country}<br /> // THIS IS THE NEW DATA {'Takeover mode'|i18n('design/standard/shop')}: {$order.account_information.takeovermode}<br /> </p> </td> </tr> </table> extension/takeovermode/shopaccounthandlers/takeovermodeshopaccounthandler.php <?php class TakeOverModeShopAccountHandler { /*! */ function TakeOverModeShopAccountHandler() { } /*! Will verify that the user has supplied the correct user information. Returns true if we have all the information needed about the user. */ function verifyAccountInformation() { return false; } /*! Redirectes to the user registration page. */ function fetchAccountInformation( &$module ) { $module->redirectTo( '/shop/userregister/' ); } /*! \return the account information for the given order */ function email( $order ) { $email = false; $xmlString = $order->attribute( 'data_text_1' ); if ( $xmlString != null ) { $dom = new DOMDocument( '1.0', 'utf-8' ); $success = $dom->loadXML( $xmlString ); $emailNode = $dom->getElementsByTagName( 'email' )->item( 0 ); if ( $emailNode ) { $email = $emailNode->textContent; } } return $email; } /*! \return the account information for the given order */ function accountName( $order ) { $accountName = ''; $xmlString = $order->attribute( 'data_text_1' ); if ( $xmlString != null ) { $dom = new DOMDocument( '1.0', 'utf-8' ); $success = $dom->loadXML( $xmlString ); $firstNameNode = $dom->getElementsByTagName( 'first-name' )->item( 0 ); $lastNameNode = $dom->getElementsByTagName( 'last-name' )->item( 0 ); $accountName = $firstNameNode->textContent . ' ' . $lastNameNode->textContent; } return $accountName; } function accountInformation( $order ) { $firstName = ''; $lastName = ''; $email = ''; $street1 = ''; $street2 = ''; $zip = ''; $place = ''; $country = ''; $comment = ''; $state = ''; $takeovermode = ''; $dom = new DOMDocument( '1.0', 'utf-8' ); $xmlString = $order->attribute( 'data_text_1' ); if ( $xmlString != null ) { $dom = new DOMDocument( '1.0', 'utf-8' ); $success = $dom->loadXML( $xmlString ); $firstNameNode = $dom->getElementsByTagName( 'first-name' )->item( 0 ); if ( $firstNameNode ) { $firstName = $firstNameNode->textContent; } $lastNameNode = $dom->getElementsByTagName( 'last-name' )->item( 0 ); if ( $lastNameNode ) { $lastName = $lastNameNode->textContent; } $emailNode = $dom->getElementsByTagName( 'email' )->item( 0 ); if ( $emailNode ) { $email = $emailNode->textContent; } $street1Node = $dom->getElementsByTagName( 'street1' )->item( 0 ); if ( $street1Node ) { $street1 = $street1Node->textContent; } $street2Node = $dom->getElementsByTagName( 'street2' )->item( 0 ); if ( $street2Node ) { $street2 = $street2Node->textContent; } $zipNode = $dom->getElementsByTagName( 'zip' )->item( 0 ); if ( $zipNode ) { $zip = $zipNode->textContent; } $placeNode = $dom->getElementsByTagName( 'place' )->item( 0 ); if ( $placeNode ) { $place = $placeNode->textContent; } $stateNode = $dom->getElementsByTagName( 'state' )->item( 0 ); if ( $stateNode ) { $state = $stateNode->textContent; } $countryNode = $dom->getElementsByTagName( 'country' )->item( 0 ); if ( $countryNode ) { $country = $countryNode->textContent; } $commentNode = $dom->getElementsByTagName( 'comment' )->item( 0 ); if ( $commentNode ) { $comment = $commentNode->textContent; } // THIS IS THE NEW DATA $takeovermodeNode = $dom->getElementsByTagName( 'takeovermode' )->item( 0 ); if ( $takeovermodeNode ) { $takeovermode = $takeovermodeNode->textContent; } } return array( 'first_name' => $firstName, 'last_name' => $lastName, 'email' => $email, 'street1' => $street1, 'street2' => $street2, 'zip' => $zip, 'place' => $place, 'state' => $state, 'country' => $country, 'comment' => $comment, 'takeovermode' => $takeovermode, // THIS IS THE NEW DATA ); } } ?> extension/takeovermode/design.ini.append.php <?php /* #?ini charset="utf-8"? [ExtensionSettings] DesignExtensions[]=takeovermode */ ?> extension/takeovermode/shopaccount.ini.append.php <?php /* #?ini charset="utf-8"? [HandlerSettings] ExtensionRepositories[]=takeovermode [AccountSettings] Handler=takeovermode */ ?> extension/takeovermode/site.ini.append.php <?php /* #?ini charset="utf-8"? [TemplateSettings] ExtensionAutoloadPath[]=takeovermode */ ?> |