/** * Init and gets all the params and make the html strings! * @return Boolean - if all is good */ public static function initandmake(struct_core_alias $alias) { $o = rad_rsmarty::getSmartyObject(); $o->assign('lang', call_user_func(array(rad_config::getParam('loader_class'), 'getLangContainer'))); foreach (self::$_varvals as $classname => $vrnn) { foreach ($vrnn as $varname => $varvalue) { $o->assign('<%' . $classname . '.' . $varname . '%>', $varvalue); } $o->assign($classname, $vrnn); } $srcPrefix = SMARTYBCCACHE . 'alias_' . $alias->id . '_'; self::$_title = self::_fetchSrc($o, $srcPrefix . 'title.tpl', $alias->title_script); self::$_breadcrumbs = self::_fetchSrc($o, $srcPrefix . 'bc.tpl', $alias->navi_script); self::$_tags = self::_fetchSrc($o, $srcPrefix . 'meta.tpl', $alias->metatitle_script); self::$_description = self::_fetchSrc($o, $srcPrefix . 'descr.tpl', $alias->metadescription_script); $o->clearAllAssign(); return true; }
/** * parse templates from alias and assing variables from Controller To Templates * Also I think I can do that in function show() */ public static function parseTemplates() { $o = rad_rsmarty::getSmartyObject(); if (rad_config::getParam('lang.caching')) { $templates = array(); foreach (self::$_alias->includes as $id) { $templates[] = self::$_includes[$id->inc_name]; } self::loadLangCache($templates); } //No needed - fix to {lang code= in older modules rad_instances::setCurrentTemplate('BREADCRUMBS'); self::$_langContainer->setTemplate('BREADCRUMBS'); define(rad_config::getParam('bc.title'), rad_breadcrumbs::getTitle()); define(rad_config::getParam('bc.meta_description'), rad_breadcrumbs::getMetaDescription()); define(rad_config::getParam('bc.meta_tags'), rad_breadcrumbs::getMetaTags()); define(rad_config::getParam('bc.breadcrumbs'), rad_breadcrumbs::getBreadcrumbs()); foreach (self::$_alias->includes as $id) { if (isset(self::$_controllerResults[$id->incinal_id]) and self::$_controllerResults[$id->incinal_id]) { if (isset(self::$sendedParams[$id->inc_filename]) and count(self::$sendedParams[$id->inc_filename])) { foreach (self::$sendedParams[$id->inc_filename] as $pkey => $pval) { $o->assign($pkey, $pval); } } $data = self::$_controllerResults[$id->incinal_id]->getVars(); if ($data !== null) { foreach ($data as $key => $value) { $o->assign($key, $value); } } } if (!isset(self::$_html[$id->rp_name])) { self::$_html[$id->rp_name] = ''; } rad_instances::setCurrentTemplate(self::$_includes[$id->inc_name]); self::$_langContainer->setTemplate(self::$_includes[$id->inc_name]); $o->assign('_CURRENT_LOAD_PATH', dirname(self::$_includes[$id->inc_name])); $o->assign('_CURR_LANG_OBJ', rad_lang::getCurrentLanguage()); self::$_html[$id->rp_name] .= $o->fetch(self::$_includes[$id->inc_name]); $o->clearAllAssign(); } //foreach }
/** * Main function to init the loader * @access public */ public static function init() { self::$alias = rad_input::request('alias'); if (!self::$alias) { self::$alias = rad_config::getParam('defaultAlias'); self::$template = rad_config::getParam('defaultTemplate'); } self::$_alias = self::getAliasByName(self::$alias); if (is_null(self::$_alias)) { throw new rad_exception('Aliases not found! Even the default aliases and alias for the 404 error! Insert those aliases into database please and try again!'); } if (strlen(self::$_alias->input_class)) { rad_input::reparseGetWithPlug(self::$_alias->input_class); } self::parseIncludes(self::$_alias->includes); self::$_langContainer = new rad_lang_container(); self::parseController(); if (!rad_breadcrumbs::initandmake(self::$_alias)) { rad_dblogger::logerr('Can\'t create and init breadcrumbs! file: ' . __FILE__ . ' and line: ' . __LINE__); } }
/** * Adds the param name and value to the breadcrumbs * @param string $varname * @param mixed $varvalue * @return Boolean true * */ function addBC($varname, $varvalue) { return rad_breadcrumbs::add($varname, $varvalue, $this->getClassName()); }
function deleteAlias($id = NULL) { $id = $id ?: $this->getState('id'); if (is_numeric($id)) { $cnt = $this->exec('delete from ' . RAD . 'includes_in_aliases where alias_id=' . $id); $cnt += $this->exec('delete from ' . RAD . 'aliases where id=' . $id); rad_breadcrumbs::cleanAliasCache($id); return $cnt; } $this->securityHoleAlert(__FILE__, __LINE__, get_class($this)); return 0; }
/** * In windows from AJAX shows edit script for titles * */ function showEditScript() { $alias_id = (int) $this->request('alias_id'); if ($alias_id) { $model = rad_instances::get('model_core_aliases'); $item = $model->getItem($alias_id); $this->setVar('item', $item); $this->setVar('alias_id', $alias_id); /** * Get the aliases and includes */ $alias = rad_loader::getAliasByName($item->alias); $helpers = array(); foreach ($alias->includes as $id_i => $id) { $controller = trim($id->controller); if (strlen($controller)) { $bco = rad_breadcrumbs::getBCOFromClass($controller); if ($bco) { $helpers[$controller]['object'] = $bco; $vrs = $bco->getVars(); if (count($vrs)) { foreach ($vrs as $id_v => $varname) { $helpers[$controller]['vars'][$varname] = str_replace("\"", "\\\"", $this->lang($varname . '.' . $controller . '.breadcrumbs')); } } //foreach $bco->getVars() $vrs = $bco->getVars(2); if (count($vrs)) { foreach ($vrs as $id_v => $varname) { $helpers[$controller]['vars2'][$varname] = str_replace("\"", "\\\"", $this->lang($varname . '.' . $controller . '.breadcrumbs2')); } } } //if bco } //if controller } //foreach includes $this->setVar('helpers', $helpers); } else { $this->securityHoleAlert(__FILE__, __LINE__, $this->getClassName()); } }