Example #1
0
 public static function getInstance()
 {
     if (!self::$_instance) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
Example #2
0
 public final function __construct($step)
 {
     $this->step = $step;
     $this->datas = Datas::getInstance();
     // Set current language
     $this->language = LanguageList::getInstance();
     Context::getContext()->language = $this->language->getLanguage($this->datas->language);
     $this->translator = Context::getContext()->getTranslator();
     if (!$this->datas->language) {
         die('No language defined');
     }
     $this->language->setLanguage($this->datas->language);
     $this->init();
 }
Example #3
0
 public function __construct()
 {
     $this->language = LanguageList::getInstance();
 }
 /**
  * function updatePageLabels
  * <pre>
  * Inserts the given page's labels into the tool setup routine.
  * </pre>
  * @param $page [OBJECT] The page to work with 
  * @return [void]
  */
 function updatePageLabels($page)
 {
     // open tool_setup.php file
     $setupFileName = $this->values[ModuleCreator::KEY_PATH_SETUP_NAME];
     $setupContents = file_get_contents($setupFileName);
     $pageLabelInsertTag = '/*[RAD_PAGE(' . $page->getName() . ')_LABELS]*/';
     $labelList = $page->getPageLabels();
     $siteLanguageList = new LanguageList();
     // for each label
     $labelList->setFirst();
     while ($label = $labelList->getNext()) {
         // if label not already created
         if (!$label->isCreated()) {
             $key = $label->getKey();
             $text = $label->getLabel();
             $text = str_replace("'", "''", $text);
             $text = str_replace('"', '\\"', $text);
             $lang = $label->getLanguageID();
             $langKey = $siteLanguageList->getLanguageKeyByID($lang);
             $labelMgr = '    $labelManager->addLabel( "' . $key . '", "' . $text . '", "' . $langKey . '" );';
             $tag = $pageLabelInsertTag;
             $data = $labelMgr . "\n" . $tag;
             $setupContents = str_replace($tag, $data, $setupContents);
             // Mark this label as having been created
             $label->setCreated();
         }
         // end if
     }
     // next label
     // save app file
     file_put_contents($setupFileName, $setupContents);
 }
Example #5
0
 public function __construct()
 {
     $this->session = InstallSession::getInstance();
     // Set current language
     $this->language = LanguageList::getInstance();
     $detect_language = $this->language->detectLanguage();
     if (empty($this->session->lang)) {
         $this->session->lang = $detect_language['primarytag'];
     }
     Context::getContext()->language = $this->language->getLanguage($this->session->lang ?: false);
     $this->translator = Context::getContext()->getTranslator();
     if (isset($this->session->lang)) {
         $lang = $this->session->lang;
     } else {
         $lang = isset($detect_language['primarytag']) ? $detect_language['primarytag'] : false;
     }
     if (!in_array($lang, $this->language->getIsoList())) {
         $lang = 'en';
     }
     $this->language->setLanguage($lang);
     if (empty(self::$steps)) {
         $this->initSteps();
     }
     $this->init();
 }
Example #6
0
    $labelManager->addLabel("[title_template_key]", "Key", "en");
    $labelManager->addLabel("[title_template_isactive]", "IsActive", "en");
    $labelManager->addLabel("[title_label_key]", "LabelKey", "en");
    /*[RAD_FIELDS_LABEL]*/
    // Create TemplateAdminPage labels
    $labelManager->addPage(page_TemplateAdminPage::MULTILINGUAL_PAGE_KEY);
    /*[RAD_PAGE(TemplateAdminPage)_LABELS]*/
    // Create EditTemplate labels
    $labelManager->addPage(FormProcessor_EditTemplate::MULTILINGUAL_PAGE_KEY);
    /*[RAD_PAGE(EditTemplate)_LABELS]*/
    $labelManager->addLabel("[Title]", "Template Editor", "en");
    $labelManager->addLabel("[Instr]", "This page allows you to modify the template of the emails that get sent by the NSS Payroll system.  The words in brackets are variables that change depending on the person.", "en");
    //$labelManager->addSeries($EmailTemplate->getSeriesKey());
    $labelManager->addPage($EmailTemplate->getXMLNodeName());
    //$languageManager = new RowManager_LanguageManager();
    //$languageList = $languageManager->getListIterator();
    $languageList = new LanguageList();
    $languageList->setFirst();
    while ($language = $languageList->getNext()) {
        $languageKey = $language->getCode();
        echo 'processing [' . $languageKey . ']<br>';
        $labelManager->addLabel("[adjustment_response]", "[" . $languageKey . "]NSS: Salary Adjustment Response: [adjustmentreason]\n\nDear [name],\n\nYour request for a salary adjustment of \$[amount] has been [status].\n\n\n\nReason: [reason]\n\n\nAdjustment Description: [adjustmentdescription]\n\n\nThanks,\n\n[admin]\n\nNSS Team", $languageKey);
        $labelManager->addLabel("[update_response]", "[" . $languageKey . "]Salary Update Response\n\nDear [name],\n\nYour request for a salary adjustment has been [status].\n\n\n[reason]\n\n\nDetails:\n\n\n\nConsumables: [salarycalcreq_field1]  \t \n\nHousing and Utilities: [salarycalcreq_field2] \t\n\nPreventative Care Costs: [salarycalcreq_field3]\n\nOn-going Responsibilities: [salarycalcreq_field4]\n\nMiscellaneous Other: [salarycalcreq_field5]\n\nBenefits: [salarycalcreq_field6]\n\nTaxes: [salarycalcreq_field7]\n\n\n\nTotal: [total]\n\n\n\n\n\nThank you,\n\n[admin]\n\nNSS Team", $languageKey);
        $labelManager->addLabel("[update_request]", "[" . $languageKey . "]Request For Salary Update Submitted\n\nDear [name],\n\nYour request for a salary update has been submitted.\n\n\n\nDetails:\n\n\n\nConsumables: [salarycalcreq_field1]  \t \n\nHousing and Utilities: [salarycalcreq_field2] \t\n\nPreventative Care Costs: [salarycalcreq_field3]\n\nOn-going Responsibilities: [salarycalcreq_field4]\n\nMiscellaneous Other: [salarycalcreq_field5]\n\nBenefits: [salarycalcreq_field6]\n\nTaxes: [salarycalcreq_field7]\n\n\n\nTotal: [total]\n\n\n\n\n\nThank you,\n\n[admin]\n\nNSS Team", $languageKey);
        $labelManager->addLabel("[adjustment_request]", "[" . $languageKey . "]Request For Salary Adjustment: [adjustmentreason] Submitted\n\nDear [name],\n\nYour request for a salary adjustment of \$[amount] has been submitted.\n\n\nDescription: [adjustmentdescription]\n\n\nThank you,\n\n[admin]\n\nNSS Team", $languageKey);
    }
    /*[RAD_PAGE_LABEL]*/
} else {
    echo 'Skipping Labels ... <br>';
}
// end if !skipLabels
Example #7
0
 /**
  * Populate an entity
  *
  * @param string $entity
  */
 public function populateEntity($entity)
 {
     if (method_exists($this, 'populateEntity' . Tools::toCamelCase($entity))) {
         $this->{'populateEntity' . Tools::toCamelCase($entity)}();
         return;
     }
     if (substr($entity, 0, 1) == '.' || substr($entity, 0, 1) == '_') {
         return;
     }
     $xml = $this->loadEntity($entity);
     // Read list of fields
     if (!is_object($xml) || !$xml->fields) {
         throw new PrestashopInstallerException('List of fields not found for entity ' . $entity);
     }
     if ($this->isMultilang($entity)) {
         $multilang_columns = $this->getColumns($entity, true);
         $xml_langs = array();
         $default_lang = null;
         foreach ($this->languages as $id_lang => $iso) {
             if ($iso == $this->language->getLanguageIso()) {
                 $default_lang = $id_lang;
             }
             try {
                 $xml_langs[$id_lang] = $this->loadEntity($entity, $iso);
             } catch (PrestashopInstallerException $e) {
                 $xml_langs[$id_lang] = null;
             }
         }
     }
     // Load all row for current entity and prepare data to be populated
     foreach ($xml->entities->{$entity} as $node) {
         $data = array();
         $identifier = (string) $node['id'];
         // Read attributes
         foreach ($node->attributes() as $k => $v) {
             if ($k != 'id') {
                 $data[$k] = (string) $v;
             }
         }
         // Read cdatas
         foreach ($node->children() as $child) {
             $data[$child->getName()] = (string) $child;
         }
         // Load multilang data
         $data_lang = array();
         if ($this->isMultilang($entity)) {
             $xpath_query = $entity . '[@id="' . $identifier . '"]';
             foreach ($xml_langs as $id_lang => $xml_lang) {
                 if (!$xml_lang) {
                     continue;
                 }
                 if (($node_lang = $xml_lang->xpath($xpath_query)) || ($node_lang = $xml_langs[$default_lang]->xpath($xpath_query))) {
                     $node_lang = $node_lang[0];
                     foreach ($multilang_columns as $column => $is_text) {
                         $value = '';
                         if ($node_lang[$column]) {
                             $value = (string) $node_lang[$column];
                         }
                         if ($node_lang->{$column}) {
                             $value = (string) $node_lang->{$column};
                         }
                         $data_lang[$column][$id_lang] = $value;
                     }
                 }
             }
         }
         $data = $this->rewriteRelationedData($entity, $data);
         if (method_exists($this, 'createEntity' . Tools::toCamelCase($entity))) {
             // Create entity with custom method in current class
             $method = 'createEntity' . Tools::toCamelCase($entity);
             $this->{$method}($identifier, $data, $data_lang);
         } else {
             $this->createEntity($entity, $identifier, (string) $xml->fields['class'], $data, $data_lang);
         }
         if ($xml->fields['image']) {
             if (method_exists($this, 'copyImages' . Tools::toCamelCase($entity))) {
                 $this->{'copyImages' . Tools::toCamelCase($entity)}($identifier, $data);
             } else {
                 $this->copyImages($entity, $identifier, (string) $xml->fields['image'], $data);
             }
         }
     }
     $this->flushDelayedInserts();
     unset($this->cache_xml_entity[$this->path_type][$entity]);
 }