/** * 创建静态路径 */ function build_url($param, $cid, $type = 2) { $CI =& get_instance(); $config =& get_config(); $CI->load->model(array('rule_model', 'archives_model')); $CI->load->library(array('Pinyin')); $rule = $CI->rule_model->get_where("cid={$cid} AND type={$type}"); $rule = array_shift($rule); if (ZYCMSHTML == 'open') { if ($type == 2) { if (1 != $param) { return '/' . str_replace('page', $param, $rule['destination_rule']); } else { return shortcut_url('/' . str_replace('page', $param, $rule['destination_rule'])); //第二页不进行截取 } } else { if ($type == 3) { $article = $CI->archives_model->get_one($param, 'title'); $pinyin = $CI->pinyin; $title = $pinyin::getPinyin(substr($article['title'], 0, 20)) . $param; return '/' . str_replace('aid', $title, $rule['destination_rule']); // return '/'.str_replace('aid', $param, $rule['destination_rule']); } else { if ($type == 1) { return '/' . $rule['destination_rule']; } } } } else { $base_url = _slash_item('base_url', $config); if ($type == 2) { $uri = str_replace('page', $param, $rule['source_rule']); } else { if ($type == 3) { $uri = str_replace('aid', $param, $rule['source_rule']); } else { if ($type == 1) { $uri = $rule['source_rule']; } } } $suffix = isset($config['url_suffix']) ? $config['url_suffix'] : ''; if ($suffix !== '') { if (($offset = strpos($uri, '?')) !== FALSE) { $uri = substr($uri, 0, $offset) . $suffix . substr($uri, $offset); } else { $uri .= $suffix; } } return $base_url . _slash_item('index_page', $config) . $uri; } }
/** * jaya 20160805 * 构造面包屑 * * 递归查找父栏目, 压入栈 * * @param $id 分类ID * @param $stack 栈引用 */ private function build_bread($id, &$stack) { $row = $this->CI->column_model->get_one($id); if (2 == $row['rule_type'] && $this->CI->rule_model->is_exists("cid={$id} AND type=2")) { $build_type = 2; $temp = array('title' => $row['column_name'], 'url' => shortcut_url(build_url(1, $id, $build_type))); } else { if (1 == $row['rule_type'] && $this->CI->rule_model->is_exists("cid={$id} AND type=1")) { $build_type = 1; $temp = array('title' => $row['column_name'], 'url' => build_url(1, $id, $build_type)); } else { $build_type = 2; $temp = array('title' => $row['column_name'], 'url' => shortcut_url(build_url(1, $id, $build_type))); } } array_push($stack, $temp); if ($row['pid'] == 0) { return $stack; } else { $this->build_bread($row['pid'], $stack); } }