/**
  * Display add new module form
  */
 public function ajaxProcessdisplayModulesHook()
 {
     $result = "";
     $id_hook = (int) Tools::getValue('id_hook');
     $hookname = Hook::getNameById($id_hook);
     $id_option = (int) Tools::getValue('id_option');
     $option = new Options($id_option);
     if ($hookname && Validate::isHookName($hookname) && $option && Validate::isLoadedObject($option)) {
         if ($hookname == 'displayHomeTab' || $hookname == 'displayHomeTabContent') {
             $optionModulesHook = OvicLayoutControl::getModuleExecList($hookname);
         } else {
             $optionModulesHook = OvicLayoutControl::getModuleExecList();
         }
         $moduleOption = '';
         $HookedModulesArr = OvicLayoutControl::getModulesHook($option->theme, $option->alias, $hookname);
         $HookedModulesArr = Tools::jsonDecode($HookedModulesArr['modules'], true);
         //$result .= print_r($HookedModules);
         $HookedModules = array();
         $Hookedexecute = array();
         if ($HookedModulesArr && is_array($HookedModulesArr) && sizeof($HookedModulesArr)) {
             foreach ($HookedModulesArr as $key => $HookedModule) {
                 $HookedModules[] = (int) $HookedModule[0];
                 $Hookedexecute[] = (int) $HookedModule[1];
             }
         }
         $allmoduleDisable = true;
         $moduleArr = array();
         if ($optionModulesHook && count($optionModulesHook) > 0) {
             foreach ($optionModulesHook as $module) {
                 $disableModule = false;
                 $moduleObject = Module::getInstanceById($module['id_module']);
                 if ($hookname == 'displayHomeTab' || $hookname == 'displayHomeTabContent') {
                     if (in_array($module['id_module'], $HookedModules)) {
                         $disableModule = true;
                     }
                 } else {
                     if (in_array($module['id_module'], $HookedModules)) {
                         $moduleHookCallable = OvicLayoutControl::getHooksByModule($moduleObject);
                         if (count($moduleHookCallable) > 1) {
                             $disableModule = true;
                             foreach ($moduleHookCallable as $h) {
                                 if (!in_array($h['id_hook'], $Hookedexecute)) {
                                     $disableModule = false;
                                     break;
                                 }
                             }
                         } else {
                             $disableModule = true;
                         }
                     }
                 }
                 if ($moduleObject->tab != 'analytics_stats') {
                     $moduleArr[$moduleObject->displayName]['id_module'] = $module['id_module'];
                     $moduleArr[$moduleObject->displayName]['disabled'] = $disableModule;
                     //$moduleOption .='<option '.($disableModule? 'disabled':'').' value='.$module['id_module'].'>'.$moduleObject->displayName.'</option>';
                 }
                 if (!$disableModule) {
                     $allmoduleDisable = false;
                 }
             }
             ksort($moduleArr);
             foreach ($moduleArr as $name => $moduleObj) {
                 $moduleOption .= '<option ' . ($moduleObj['disabled'] ? 'disabled' : '') . ' value=' . $moduleObj['id_module'] . '>' . $name . '</option>';
             }
         }
         $tpl = $this->createTemplate('new_popup.tpl');
         $tpl->assign(array('postUrl' => self::$currentIndex . '&token=' . Tools::getAdminTokenLite('AdminLayoutBuilder'), 'id_hook' => $id_hook, 'hookname' => $hookname, 'id_option' => $id_option, 'moduleOption' => $moduleOption));
         $result .= $tpl->fetch();
     }
     die(Tools::jsonEncode($result));
 }
 /**
  * Display add new module form
  */
 public function ajaxProcessdisplayModulesHook()
 {
     $result = "";
     $hookColumn = Tools::getValue('hookname');
     $hookName = 'display' . ucfirst(trim($hookColumn)) . 'Column';
     $id_hook = Hook::getIdByName($hookName);
     $pagemeta = Tools::getValue('pagemeta');
     $optionModulesHook = OvicLayoutControl::getModuleExecList(array('displayLeftColumn', 'displayRightColumn', 'leftColumn', 'displaySmartBlogLeft', 'displaySmartBlogRight'));
     $moduleOption = '';
     $HookedModulesArr = OvicLayoutControl::getSideBarModulesByPage($pagemeta, $hookColumn, false);
     $HookedModules = array();
     $Hookedexecute = array();
     if ($HookedModulesArr && is_array($HookedModulesArr) && sizeof($HookedModulesArr)) {
         foreach ($HookedModulesArr as $key => $HookedModule) {
             $HookedModules[] = (int) $HookedModule[0];
             $Hookedexecute[] = (int) $HookedModule[1];
         }
     }
     $allmoduleDisable = true;
     $moduleArr = array();
     if ($optionModulesHook && count($optionModulesHook) > 0) {
         foreach ($optionModulesHook as $module) {
             $disableModule = false;
             $moduleObject = Module::getInstanceById($module['id_module']);
             if (in_array($module['id_module'], $HookedModules)) {
                 $moduleHookCallable = OvicLayoutControl::getHooksByModule($moduleObject);
                 if (count($moduleHookCallable) > 1) {
                     $disableModule = true;
                     foreach ($moduleHookCallable as $h) {
                         if (!in_array($h['id_hook'], $Hookedexecute)) {
                             $disableModule = false;
                             break;
                         }
                     }
                 } else {
                     $disableModule = true;
                 }
             }
             if ($moduleObject->tab != 'analytics_stats') {
                 $moduleArr[$moduleObject->displayName]['id_module'] = $module['id_module'];
                 $moduleArr[$moduleObject->displayName]['disabled'] = $disableModule;
                 //$moduleOption .='<option '.($disableModule? 'disabled':'').' value='.$module['id_module'].'>'.$moduleObject->displayName.'</option>';
             }
             if (!$disableModule) {
                 $allmoduleDisable = false;
             }
         }
         ksort($moduleArr);
         foreach ($moduleArr as $name => $moduleObj) {
             $moduleOption .= '<option ' . ($moduleObj['disabled'] ? 'disabled' : '') . ' value=' . $moduleObj['id_module'] . '>' . $name . '</option>';
         }
     }
     $tpl = $this->createTemplate('new_popup.tpl');
     $tpl->assign(array('postUrl' => self::$currentIndex . '&token=' . Tools::getAdminTokenLite('AdminLayoutSetting'), 'id_hook' => $id_hook, 'hookname' => $hookName, 'hookcolumn' => $hookColumn, 'pagemeta' => $pagemeta, 'moduleOption' => $moduleOption));
     $result .= $tpl->fetch();
     die(Tools::jsonEncode($result));
 }