本文整理汇总了PHP中waSystem::getCache方法的典型用法代码示例。如果您正苦于以下问题:PHP waSystem::getCache方法的具体用法?PHP waSystem::getCache怎么用?PHP waSystem::getCache使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类waSystem
的用法示例。
在下文中一共展示了waSystem::getCache方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: pages
public function pages($parent_id = 0, $with_params = true)
{
if (is_bool($parent_id)) {
$with_params = $parent_id;
$parent_id = 0;
}
try {
$page_model = $this->getPageModel();
$domain = wa()->getRouting()->getDomain(null, true);
if ($this->wa->getConfig()->getApplication() == wa()->getRouting()->getRoute('app')) {
$route = wa()->getRouting()->getRoute('url');
$url = $this->wa->getAppUrl(null, true);
} else {
$routes = wa()->getRouting()->getByApp($this->wa->getConfig()->getApplication(), $domain);
if ($routes) {
$route = end($routes);
$route = $route['url'];
$url = wa()->getRootUrl(false, true) . waRouting::clearUrl($route);
} else {
return array();
}
}
$pages = null;
$cache_key = $domain . '/' . waRouting::clearUrl($route);
if ($cache = $this->wa->getCache()) {
$pages = $cache->get($cache_key, 'pages');
}
if ($pages === null) {
$pages = $page_model->getPublishedPages($domain, $route);
if ($with_params && $pages) {
$page_params_model = $page_model->getParamsModel();
$data = $page_params_model->getByField('page_id', array_keys($pages), true);
foreach ($data as $row) {
if (isset($pages[$row['page_id']])) {
$pages[$row['page_id']][$row['name']] = $row['value'];
}
}
}
foreach ($pages as &$page) {
$page['url'] = $url . $page['full_url'];
if (!isset($page['title']) || !$page['title']) {
$page['title'] = $page['name'];
}
foreach ($page as $k => $v) {
if ($k != 'content') {
$page[$k] = htmlspecialchars($v);
}
}
}
unset($page);
foreach ($pages as $page_id => $page) {
if ($page['parent_id'] && isset($pages[$page['parent_id']])) {
$pages[$page['parent_id']]['childs'][] =& $pages[$page_id];
}
}
if ($cache) {
$cache->set($cache_key, $pages, 3600, 'pages');
}
}
if ($parent_id) {
return isset($pages[$parent_id]['childs']) ? $pages[$parent_id]['childs'] : array();
}
foreach ($pages as $page_id => $page) {
if ($page['parent_id']) {
unset($pages[$page_id]);
}
}
return $pages;
} catch (Exception $e) {
return array();
}
}