Ejemplo n.º 1
0
 /**
  * Generate module
  */
 protected function compile()
 {
     // Get ID
     $strAlias = \Input::get('auto_item') ? \Input::get('auto_item') : \Input::get('store');
     // Find published store from ID
     if (($objStore = AnyStoresModel::findPublishedByIdOrAlias($strAlias)) !== null) {
         // load all details
         $objStore->loadDetails();
         // generate description
         $objDescription = \ContentModel::findPublishedByPidAndTable($objStore->id, $objStore->getTable());
         if ($objDescription !== null) {
             while ($objDescription->next()) {
                 $objStore->description .= \Controller::getContentElement($objDescription->current());
             }
         }
         // Get referer for back button
         $objStore->referer = $this->getReferer();
         // generate google map if template and geodata is set
         if ($this->anystores_mapTpl != '' && is_numeric($objStore->latitude) && is_numeric($objStore->longitude)) {
             $objMapTemplate = new \FrontendTemplate($this->anystores_mapTpl);
             $objMapTemplate->setData($objStore->row());
             $objStore->gMap = $objMapTemplate->parse();
         }
         // Template
         $objDetailTemplate = new \FrontendTemplate($this->anystores_detailTpl);
         $objDetailTemplate->setData($objStore->row());
         $this->Template->store = $objDetailTemplate->parse();
     } else {
         $this->_redirect404();
     }
 }
Ejemplo n.º 2
0
 /**
  * The "replaceInsertTags" hook is triggered when an unknown insert tag is
  * found. It passes the insert tag as argument and expects the replacement
  * value or "false" as return value.
  *
  * anystores::details:[ID]
  * anystores::count:[CategoryID|all]
  *
  * @todo
  * anystores:phone:[ID]
  * anystores:fax:[ID]
  * ...
  *
  * @param string $strTag
  * @return bool | string
  */
 public function replaceInsertTagsHook($strTag)
 {
     $arrElements = explode('::', $strTag);
     if ($arrElements[0] != 'anystores') {
         return false;
     }
     $arrKeys = explode(':', $arrElements[1]);
     try {
         switch ($arrKeys[0]) {
             // get store details
             case 'details':
                 if (($objStore = AnyStoresModel::findPublishedByIdOrAlias($arrKeys[1])) !== null) {
                     // Location template
                     $objLocationTemplate = new \FrontendTemplate('anystores_details');
                     $objLocationTemplate->setData($objStore->loadDetails()->row());
                     // Module template
                     $objModuleTemplate = new \FrontendTemplate('mod_anystores_inserttag');
                     $objModuleTemplate->store = $objLocationTemplate;
                     // Parse module template
                     $strTemplate = $objModuleTemplate->parse();
                     $strTemplate = $this->replaceInsertTags($strTemplate);
                     return $strTemplate;
                 }
                 return false;
                 // count category items
             // count category items
             case 'count':
                 if ($arrKeys[1] == 'all') {
                     return AnyStoresModel::countAllPublished();
                 } else {
                     return AnyStoresModel::countPublishedByPid($arrKeys[1]);
                 }
             default:
                 return false;
         }
     } catch (\Exception $e) {
         \System::log('Replace insert tag error: ' . $e->getMessage(), __METHOD__, TL_ERROR);
     }
     return false;
 }