/**
  * FOOTER
  * @param $params
  * @return mixed
  */
 public function hookFooter($params)
 {
     if (Configuration::get('NOW_FOOTER_ENABLE')) {
         // Lists of columns
         $aNowBlockFooterCmsColumn = NowBlockFooterCmsColumn::getColumns();
         // Lists of links
         $aNowBlockFooterCms = NowBlockFooterCms::getLinks();
         $aNowBlockFooterCmsByColumnId = array();
         foreach ($aNowBlockFooterCms as $oNowBlockFooterCms) {
             $oNewNowBlockFooterCms = $oNowBlockFooterCms;
             if ($oNowBlockFooterCms->type == NowBlockFooterCms::TYPE_CMS) {
                 $oNewNowBlockFooterCms->object = new CMS($oNowBlockFooterCms->id_type, Context::getContext()->language->id);
             } elseif ($oNowBlockFooterCms->type == NowBlockFooterCms::TYPE_CATEGORY) {
                 $oNewNowBlockFooterCms->object = new Category($oNowBlockFooterCms->id_type, Context::getContext()->language->id);
             } elseif ($oNowBlockFooterCms->type == NowBlockFooterCms::TYPE_MANUFACTURER) {
                 $oNewNowBlockFooterCms->object = new Manufacturer($oNowBlockFooterCms->id_type, Context::getContext()->language->id);
             }
             $aNowBlockFooterCmsByColumnId[$oNowBlockFooterCms->id_now_block_cms_footer_column][] = $oNewNowBlockFooterCms;
         }
         $aNowBlockFooterCmsByColumnIdGood = array();
         foreach ($aNowBlockFooterCmsByColumnId as $id => $aColumn) {
             $aNowBlockFooterCmsByColumnIdGood[$id] = array_chunk($aColumn, Configuration::get('NOW_MAX_LINE_BY_COLUMN'));
         }
         $this->context->smarty->assign(array('aNowBlockFooterCmsByColumnIds' => $aNowBlockFooterCmsByColumnIdGood, 'aNowBlockFooterCmsColumns' => $aNowBlockFooterCmsColumn));
         return $this->context->smarty->fetch($this->module_dir . 'views/templates/hook/footer.tpl');
     }
 }
 /**
  * @see ObjectModel::delete()
  */
 public function delete()
 {
     $id_now_block_cms_footer_column = $this->id_now_block_cms_footer_column;
     if (!parent::delete()) {
         return false;
     }
     NowBlockFooterCms::cleanPositions($id_now_block_cms_footer_column);
 }
 /**
  * Manage position in ajax
  */
 public function ajaxProcessUpdatePositionsLink()
 {
     $way = (int) Tools::getValue('way');
     $id_now_block_cms_footer = (int) Tools::getValue('id');
     $positions = Tools::getValue('now_block_cms_footer');
     foreach ($positions as $position => $value) {
         $pos = explode('_', $value);
         if (isset($pos[2]) && (int) $pos[2] === $id_now_block_cms_footer) {
             if ($oNowBlockFooterCms = new NowBlockFooterCms((int) $pos[2])) {
                 if (isset($position) && $oNowBlockFooterCms->updatePosition($way, $position)) {
                     echo 'ok position ' . (int) $position . ' for link ' . (int) $pos[1] . '\\r\\n';
                 } else {
                     echo '{"hasError" : true, "errors" : "Can not update link ' . (int) $id_now_block_cms_footer . ' to position ' . (int) $position . ' "}';
                 }
             } else {
                 echo '{"hasError" : true, "errors" : "This link (' . (int) $id_now_block_cms_footer . ') can t be loaded"}';
             }
             break;
         }
     }
 }