经过一段时间的调试分析,发现有个函数写的很乱,估计是改版的时候落下了没改,经过一段时间修改调试,终于正常的生成了4级页面,不敢独用,分享给大家。
希望对那些想用114la源码但是因为这个问题想放弃的人有所帮助。
找到管理目录下的modules目录,找到mod_make_html.php文件,
把get_html_4catalog($cid)这个函数替换成下面的代码就可以正常生成4级页面了。
复制代码 代码如下:
/**
* 生成4级分类 HTML
*
* @param int $cid
* @return string
*/
private static function get_html_4catalog($cid)
{
$timestamp = $_SERVER["REQUEST_TIME"];
$output = "";
$cid = intval($cid);
$dir_tpls_main = mod_config::get_one_config("yl_dirtplmain");
empty($dir_tpls_main) && $dir_tpls_main = "default";
$path_tpls_main = PATH_TPLS_MAIN . "/" . $dir_tpls_main . "/class";
app_tpl::assign("URL", URL, $path_tpls_main);
$class_list = mod_class::get_class_list();
if ($cid < 0 || empty($class_list[$cid]) || app_db::get_rows_num("ylmf_class", "parentid = "{$cid}"") < 1)
{
return false;
}
/*
* 取得页头
*/
app_tpl::$instance = null;
if (!empty($class_list[$cid]["classname"]))
{
$class_name = $class_list[$cid]["classname"]; // 2级目录
}
unset($title);
$title = (!empty($class_name)) ? $class_name . "-" . mod_config::get_one_config("yl_sysname") : mod_config::get_one_config("yl_sysname");
app_tpl::assign("title", $title, $path_tpls_main);
// 内页不填写 keywords 和 description 的时候调用系统默认
$class_meta_keyword = empty($class_list[$cid]["keywords"]) ? mod_config::get_one_config("yl_metakeyword") : $class_list[$cid]["keywords"];
$class_meta_description = empty($class_list[$cid]["description"]) ? mod_config::get_one_config("yl_metadescrip") : $class_list[$cid]["description"];
app_tpl::assign("class_meta_keyword", $class_list[$cid]["keywords"], $path_tpls_main);
app_tpl::assign("class_meta_description", $class_list[$cid]["description"], $path_tpls_main);
// 热门关键字
//app_tpl::assign("search_keyword", self::get_hot_keyword(), $path_tpls_main);
$parent_id = $class_list[$cid]["parentid"];
if (!empty($parent_id))
{
$parent_class_name = $class_list[$parent_id]["classname"];
// 注意自定义路径
$parent_path = $class_list[$parent_id]["path"];
$parent_filepath = (empty($parent_path)) ? URL_HTML . "/catalog/" . $parent_id . ".htm" : URL_HTML . "/{$parent_path}/index.htm";
app_tpl::assign("parent_class_name", "<a href="{$parent_filepath}" >" . $parent_class_name . "</a>", $path_tpls_main);
}
if (!empty($class_name))
{
app_tpl::assign("current_class_name", $class_name, $path_tpls_main);
}
$site_list = array(); //站点列表
$key_list = array(); //分类导航
$query = app_db::query("SELECT * FROM ylmf_class WHERE parentid = " . $cid . " ORDER BY displayorder");
while ($info = app_db::fetch_one($query))
{
$result = app_db::select("ylmf_site", "`id`, `name`, `url`, `class`, `displayorder`, `good`, `namecolor`",
"class = "{$info["classid"]}" AND starttime <= {$timestamp} AND (endtime = 0 OR endtime >= $timestamp) ORDER BY displayorder");
$tmp_site = array();
if (!empty($result))
{
foreach ($result as $site)
{
substr($site["url"], -1) == "/" && $site["url"] = substr($site["url"], 0, -1);
$site["good"] = (empty($site["good"])) ? "" : "<span style="color:#f00">√</span>";
if ($site["endtime"] > 0 && $timestamp > $site["endtime"])
{
$site["name"] = "NULL";
$site["url"] = "#";
}
$site["domain"] = get_domain($site["url"]);
$tmp_site[] = $site;
}
}
$info["url"] = "#" . $info["classid"];
$key_list[$info["classname"]] = $info;
$site_list[$info["classname"]] = $tmp_site;
}
app_tpl::assign("key_list", $key_list, $path_tpls_main);
app_tpl::assign("site_list", $site_list, $path_tpls_main);
unset($rt, $key_list, $site_list);
/*
* 取得主体页尾
*/
app_tpl::$instance->compile_id = mod_config::get_one_config("yl_dirtplmain");
//如果自定义了模版,使用自定义的模版,否则使用默认的 class.tpl 模版
$template = empty($class_list[$cid]["template"]) ? "class.tpl" : $class_list[$cid]["template"];
app_tpl::assign("icp", mod_config::get_one_config("yl_icp"), $path_tpls_main);
app_tpl::assign("icpurl", mod_config::get_one_config("yl_icpurl"), $path_tpls_main);
app_tpl::assign("tongji", mod_config::get_one_config("yl_ipstat"), $path_tpls_main);
$output = app_tpl::fetch($template, $path_tpls_main);
return $output;
}
原文:http://www.cnblogs.com/cnwgy/archive/2012/01/10/2318413.html