|
做了个网址导航站,用的是114la的源码,没想到里面有很多问题,官方也没出补丁,没办法,自己学着改吧
经过一段时间的调试分析,发现有个函数写的很乱,估计是改版的时候落下了没改,经过一段时间修改调试,终于正常的生成了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 |
|