コード例 #1
0
 public function processImportAdvices($advices, $advices_lang, $id_lang)
 {
     $formated_advices_lang = array();
     foreach ($advices_lang as $lang) {
         $formated_advices_lang[$lang->id_ps_advice] = array('html' => array($id_lang => $lang->html));
     }
     $current_advices = array();
     $result = Db::getInstance()->ExecuteS('SELECT id_advice, id_ps_advice FROM ' . _DB_PREFIX_ . 'advice');
     foreach ($result as $row) {
         $current_advices[(int) $row['id_ps_advice']] = (int) $row['id_advice'];
     }
     $cond_ids = $this->getFormatedConditionsIds();
     foreach ($advices as $advice) {
         try {
             //if advice already exist we update language data
             if (isset($current_advices[$advice->id_ps_advice])) {
                 $adv = new Advice($current_advices[$advice->id_ps_advice]);
                 $adv->html[$id_lang] = $formated_advices_lang[$advice->id_ps_advice]['html'][$id_lang];
                 $adv->update();
                 $this->processAdviceAsso($adv->id, $advice->display_conditions, $advice->hide_conditions, $advice->tabs, $cond_ids);
                 unset($current_advices[$advice->id_ps_advice]);
             } else {
                 $advice_data = array_merge((array) $advice, $formated_advices_lang[$advice->id_ps_advice]);
                 $adv = new Advice();
                 $adv->hydrate($advice_data, (int) $id_lang);
                 $adv->id_tab = (int) Tab::getIdFromClassName($advice->tab);
                 $adv->add();
                 $this->processAdviceAsso($adv->id, $advice->display_conditions, $advice->hide_conditions, $advice->tabs, $cond_ids);
             }
             unset($adv);
         } catch (Exception $e) {
             continue;
         }
     }
 }
コード例 #2
0
 public function processImportAdvices($advices, $advices_lang, $id_lang)
 {
     $formated_advices_lang = array();
     foreach ($advices_lang as $lang) {
         $formated_advices_lang[$lang->id_ps_advice] = array('html' => array($id_lang => $lang->html));
     }
     $current_advices = array();
     $result = Db::getInstance()->ExecuteS('SELECT id_advice FROM ' . _DB_PREFIX_ . 'advice');
     foreach ($result as $row) {
         $current_advices[] = (int) $row['id_advice'];
     }
     $cond_ids = $this->getFormatedConditionsIds();
     foreach ($advices as $advice) {
         try {
             //if advice already exist we update language data
             if (in_array($advice->id_ps_advice, $current_advices)) {
                 $adv = new Advice($advice->id_ps_advice);
                 $bdg->html[$id_lang] = $formated_advices_lang[$advice->id_ps_advice]['html'][$id_lang];
                 $adv->update();
                 unset($current_advices[$advice->id_ps_advice]);
             } else {
                 $advice_data = array_merge((array) $advice, $formated_advices_lang[$advice->id_ps_advice]);
                 $adv = new Advice();
                 $adv->hydrate($advice_data, (int) $id_lang);
                 $adv->id_tab = (int) Tab::getIdFromClassName($advice->tab);
                 $adv->add();
                 foreach ($advice->display_conditions as $cond) {
                     Db::getInstance()->insert('condition_advice', array('id_condition' => $cond_ids[$cond], 'id_advice' => $adv->id, 'display' => 1));
                 }
                 foreach ($advice->hide_conditions as $cond) {
                     Db::getInstance()->insert('condition_advice', array('id_condition' => $cond_ids[$cond], 'id_advice' => $adv->id, 'display' => 0));
                 }
             }
             unset($adv);
         } catch (Exception $e) {
             continue;
         }
     }
     // Delete advices that are not in the file anymore
     foreach ($current_advices as $id_advice) {
         // Check that the advice is used in this language
         $html = Db::getInstance()->getValue('SELECT html FROM ' . _DB_PREFIX_ . 'advice_lang WHERE id_advice = ' . (int) $id_advice . ' AND id_lang = ' . (int) $id_lang);
         if (!$html) {
             continue;
         }
         $adv = new Advice($id_advice);
         $adv->delete();
     }
 }