AbanteCart Community
AbanteCart Development => Customization help => Topic started by: renato.aloi on March 08, 2017, 03:31:13 PM
-
Hi there!
I am experiencing a cruel doubt on how add new language definition item...
What I am trying to do is insert new field in account create form.
Sor far I followed these steps bellow:
1) Hook up my code to create a new field into fields array then calling batchAssign, as follows:
public function onControllerPagesAccountCreate_UpdateData()
{
$that = $this->baseObject;
$form = new AForm();
$form->setForm(array ('form_name' => 'AccountFrm'));
$that->data['form']['fields']['general']['teste'] = $form->getFieldHtml(
array (
'type' => 'input',
'name' => 'teste',
'value' => $that->request->post['teste'],
'required' => true)
);
$that->view->batchAssign($that->data);
$that->processTemplate('pages/account/create.tpl');
}
2) So far, so good. When I reloaded the create account page, the 'teste' field showed up... But for my surprise with no caption text!
>>> See image attached
3) Ok, I learned that I need to insert new language definition under System > Localization menu at Admin page, but there is a catch...
The question is: I am developing a new extension and how do I provide that new language definition at my extension's installation?
I tried to create a new xml file under extensions/myextensionname/language/english/account/create.xml as follows, but it did not work.
<?xml version="1.0"?>
<definitions>
<definition>
<key>entry_teste</key>
<value><![CDATA[Teste Field:]]></value>
</definition>
<definition>
<key>error_teste</key>
<value><![CDATA[O campo Teste é obrigatório!]]></value>
</definition>
</definitions>
Any ideas?
Thanks,
Renato
-
You are correct with creating XML language file.
Make sure this XML file is included in main.php of your extension.
Example:
$languages = array(
'storefront' => array(
'account/create'),
Filed text should be named entry_[field_name]
See this code use in the template:
<label class="control-label col-sm-4"><?php echo ${'entry_'.$field_name}; ?></label>
-
Remember that if you change text in XML, you need to delete entire section translation from database (or admin) to have it reloaded again.
-
Thank you for your help!
You are right when saying about deleting entire section to force reload from XML language file, provided by my extension.
That is a issue... Because it will only load XML language file for 'account_create' section if (and only if) I delete it before extension installation.
I am thinking a workaround by deleting the language definition section from install.sql file from my extension.
Any thoughts?
Thanks again!
-
Hi!
Ok, I've got it! The solution was adding following SQL query install.php extension script:
$this->db->query(
sprintf("DELETE FROM `%s` WHERE block = '%s' OR block = '%s'",
$this->db->table('language_definitions'),
'account_create',
'account_edit')
);
The command above delete entire sections where my extension wish to add new entries.
Then recreate XML files for that sections, including the new entries, as follows:
Example for: myextension\storefront\language\english\account\create.xml
<?xml version="1.0"?>
<definitions>
<!-- NEW ENTRIES -->
<definition>
<key>entry_cpf</key>
<value><![CDATA[CPF:]]></value>
</definition>
<definition>
<key>error_cpf</key>
<value><![CDATA[CPF field is mandatory, must be numeric and contains 11 digits!]]></value>
</definition>
<definition>
<key>entry_number</key>
<value><![CDATA[Number:]]></value>
</definition>
<definition>
<key>error_number</key>
<value><![CDATA[Residence number field is mandatory and must be between 1 and 6 characters!]]></value>
</definition>
<definition>
<key>entry_complement</key>
<value><![CDATA[Complement:]]></value>
</definition>
<definition>
<key>error_complement</key>
<value><![CDATA[Complement field must have less than 128 characters!]]></value>
</definition>
<definition>
<key>entry_district</key>
<value><![CDATA[District:]]></value>
</definition>
<definition>
<key>error_district</key>
<value><![CDATA[District field is mandatory and must be between 1 and 128 characters!]]></value>
</definition>
<!-- /NEW ENTRIES -->
<definition>
<key>heading_title</key>
<value><![CDATA[Create Account]]></value>
</definition>
<definition>
<key>text_account</key>
<value><![CDATA[Account]]></value>
</definition>
<definition>
<key>text_create</key>
<value><![CDATA[Register]]></value>
</definition>
<definition>
<key>text_account_already</key>
<value>
<![CDATA[If you already have an account with us, please login at the <a style="text-decoration: underline" href="%s">login page</a>.]]></value>
</definition>
<definition>
<key>text_your_details</key>
<value><![CDATA[Your Personal Details]]></value>
</definition>
<definition>
<key>text_your_address</key>
<value><![CDATA[Your Address]]></value>
</definition>
<definition>
<key>text_newsletter</key>
<value><![CDATA[Newsletter]]></value>
</definition>
<definition>
<key>text_your_password</key>
<value><![CDATA[Your Password]]></value>
</definition>
<definition>
<key>text_agree</key>
<value><![CDATA[I have read and agree to the ]]></value>
</definition>
<definition>
<key>entry_loginname</key>
<value><![CDATA[Login name:]]></value>
</definition>
<definition>
<key>entry_firstname</key>
<value><![CDATA[First Name:]]></value>
</definition>
<definition>
<key>entry_lastname</key>
<value><![CDATA[Last Name:]]></value>
</definition>
<definition>
<key>entry_email</key>
<value><![CDATA[E-Mail:]]></value>
</definition>
<definition>
<key>entry_telephone</key>
<value><![CDATA[Telephone:]]></value>
</definition>
<definition>
<key>entry_fax</key>
<value><![CDATA[Fax:]]></value>
</definition>
<definition>
<key>entry_company</key>
<value><![CDATA[Company:]]></value>
</definition>
<definition>
<key>entry_address_1</key>
<value><![CDATA[Address 1:]]></value>
</definition>
<definition>
<key>entry_address_2</key>
<value><![CDATA[Address 2:]]></value>
</definition>
<definition>
<key>entry_postcode</key>
<value><![CDATA[ZIP Code:]]></value>
</definition>
<definition>
<key>entry_city</key>
<value><![CDATA[City:]]></value>
</definition>
<definition>
<key>entry_country</key>
<value><![CDATA[Country:]]></value>
</definition>
<definition>
<key>entry_zone</key>
<value><![CDATA[Region / State:]]></value>
</definition>
<definition>
<key>entry_newsletter</key>
<value><![CDATA[Subscribe:]]></value>
</definition>
<definition>
<key>entry_password</key>
<value><![CDATA[Password:]]></value>
</definition>
<definition>
<key>entry_confirm</key>
<value><![CDATA[Password Confirm:]]></value>
</definition>
<definition>
<key>error_exists</key>
<value><![CDATA[Error: E-Mail Address is already registered!]]></value>
</definition>
<definition>
<key>error_loginname</key>
<value><![CDATA[Login name must be alphanumeric only and between 5 and 64 characters!]]></value>
</definition>
<definition>
<key>error_loginname_notunique</key>
<value><![CDATA[This login name is not available. Try different login name!]]></value>
</definition>
<definition>
<key>error_firstname</key>
<value><![CDATA[First Name must be between 1 and 32 characters!]]></value>
</definition>
<definition>
<key>error_lastname</key>
<value><![CDATA[Last Name must be between 1 and 32 characters!]]></value>
</definition>
<definition>
<key>error_email</key>
<value><![CDATA[E-Mail Address does not appear to be valid!]]></value>
</definition>
<definition>
<key>error_email_exists</key>
<value><![CDATA[EMail Address is Already Exists!]]></value>
</definition>
<definition>
<key>error_password</key>
<value><![CDATA[Password must be between 4 and 20 characters!]]></value>
</definition>
<definition>
<key>error_confirm</key>
<value><![CDATA[Password confirmation does not match password!]]></value>
</definition>
<definition>
<key>error_address_1</key>
<value><![CDATA[Address 1 must be between 3 and 128 characters!]]></value>
</definition>
<definition>
<key>error_city</key>
<value><![CDATA[City must be between 3 and 128 characters!]]></value>
</definition>
<definition>
<key>error_postcode</key>
<value><![CDATA[Zip/postal code must be between 3 and 10 characters!]]></value>
</definition>
<definition>
<key>error_country</key>
<value><![CDATA[Please select a country!]]></value>
</definition>
<definition>
<key>error_zone</key>
<value><![CDATA[Please select a region / state!]]></value>
</definition>
<definition>
<key>error_telephone</key>
<value><![CDATA[Telephone must be between 3 and 32 characters!]]></value>
</definition>
<definition>
<key>error_agree</key>
<value><![CDATA[Error: You must agree to the %s!]]></value>
</definition>
<definition>
<key>text_full_register</key>
<value><![CDATA[Become a customer and register with your details]]></value>
</definition>
<definition>
<key>text_subscribe_register</key>
<value><![CDATA[Become a newsletter subscriber]]></value>
</definition>
<definition>
<key>text_success_subscribe_heading</key>
<value><![CDATA[You have subscribed successfully!]]></value>
</definition>
<definition>
<key>text_success_subscribe</key>
<value><![CDATA[Success: Your newsletter subscription has been successfully created!]]></value>
</definition>
<definition>
<key>error_subscriber_exists</key>
<value><![CDATA[Our records indicate that you have an account with us. Please login to your account to manage your newsletter subscription.]]></value>
</definition>
<definition>
<key>text_new_customer</key>
<value><![CDATA[New customer registration approval is pending]]></value>
</definition>
<definition>
<key>text_pending_customer_approval</key>
<value><![CDATA[Customer %s has registered with new account. Action of approval is required! Click to view #admin#rt=sale/customer/update&customer_id=%s]]></value>
</definition>
<definition>
<key>text_pending_subscriber_approval</key>
<value><![CDATA[Subscriber %s has registered with new account. Action of approval is required! Click to view #admin#rt=sale/customer/update&customer_id=%s]]></value>
</definition>
</definitions>