sidebox + 添加自定义页面
zencart 添加一个页面用index.php?main_page=XXX(自定义) 怎么做
http://www.el.com/index.php?main_page=lintest
\includes\modules\pages\lintest\header_php.php
header_php.php 最简单内容可以是: <?php echo 'hello';
现在网址就可以看到效果
如果想要显示在整体框架里美观的话,在includes\templates\yourtemplate\templates\tpl_lintest_default.php 设置显示内容
zencart 添加一个侧面sidebox 后台外观控制
\includes\modules\sideboxes\lintest.php
Zen Cart的左右边栏很有特色,由一块一块的sidebox拼合起来的,在模板的sidebox文件夹建立一个sidebox程序,登陆管理后台后,选择外 观控制,系统会自动检测到新增加的sidebox程序,并提醒你操作。并把所有的sidebox配置信息存储在layout_boxes的表格中。
程序调用边栏是通过includes/modules 目录下的column_left.php,和column_right.php 控制。分析下源码也非常简单:首页查询layout_boxes数据表,检索出在左栏和或右栏显示的所有sidebox,再直接require 进来 layout_box_name 字段标记的sidebox名称。随便打开一个sidebox的源代码,如系统自带的includes/modules/sideboxes /banner_box.php,banner_box.php只要用来获取sidebox显示所要的数据,再通过 require($template->get_template_dir(’tpl_banner_box.php’,DIR_WS_TEMPLATE, $current_page_base,’sideboxes’),载入显示这个sidebox的模板,其实这个所谓的模板就是生成一个$content 的字符串,然后再require($template->get_template_dir($column_box_default, DIR_WS_TEMPLATE, $current_page_base,’common’) . ‘/’ . $column_box_default) 再用一个显示sidebox的公共模板,在$column_box_default中打印出$content的内容,这样一个sidebox就显示完成 了!
如何添加一个自己的sidebox?其实很简单,在includes/modules/sideboxes/{模板目录}/ 建立 一个文件,就是一个 sidebox了,可以在后台控制是否显示在默认的左右边栏和排序。在这个文件中就输出任何内容了,当然可以按照标准的模式,再在 includes/templates/{模板目录}/sideboxes 下建立一个模板文件require进来,尽量做到 M/V的分离,这样以后修改也会比较方便!
在Zen Cart左侧栏目中,每个小模块都是用box方式显示的。Zen Cart 函数zen_get_box_id()主要是对box_id进行处理. while (strstr($box_id, ‘_’)) $box_id = str_replace(‘_’, ”, $box_id); $box_id = str_replace(‘.php’, ”, $box_id); return $box_id; 看的出来,他的主要作用是除去”_”和”.phquot;的后缀,形成一个新的字符串,形成的注释中会有<!–// bof: <?php echo $box_id; ?> //–> <div cla=”leftBoxContainer” id=”lt;?php echo str_replace(‘_’, ‘-’, $box_id ); ?>quot; style=”width: <?php echo $column_width; ?>quotgt; <h3 cla=”leftBoxHeading” id=”lt;?php echo str_replace(‘_’, ‘-’, $box_id) . ‘Heading’; ?>quotgtlt;?php echo $title; ?>lt;/h3>借助$box_id还可以形成样式html 的id
================================添加新页面==================================
按照下面的路径,添加自己的文件,就OK了
以about us页面为例, 默认模板
\includes\templates\template_default\templates\tpl_about_us_default.php
\includes\languages\english\about_us.php
\includes\languages\english\html_includes\define_about_us.php
\includes\modules\pages\about_us\header_php.php
\includes\filenames.php
我们以About Us为例讲解一下zencart中如何新建页面!
1.在includes\languages\english\html_includes目录中新建文件define_about_us.php
这个文件是要显示的内容,我们可以在后台 工具->页面编辑 中进行编辑。
2.在includes\templates\Your_template\templates目录中新建文件tpl_about_us_default.php
并在此文件中增加如下代码:
<?php
require($define_page);
?>
3.在includes\modules\pages目录中新建about_us目录
4.在新建的about_us目录中新建文件header_php.php,并在文件中增加如下代码:
<?php
require(DIR_WS_MODULES . zen_get_module_directory(‘require_languages.php’));
$breadcrumb->add(NAVBAR_TITLE);
$define_page = zen_get_file_directory(DIR_WS_LANGUAGES . $_SESSION['language'] . ‘/html_includes/’, FILENAME_DEFINE_ABOUT_US, ‘false’);
?>
5.在includes/filenames.php文件增加如下代码:
define(‘FILENAME_DEFINE_ABOUT_US’, ‘define_about_us’);
6.在includes\languages\english目录中新建文件about_us.php,并在文件中增加如下代码:
<?php
define(‘NAVBAR_TITLE’, ‘About Us’);
define(‘HEADING_TITLE’, ‘About Us’);
define(‘TEXT_INFORMATION’, ‘About Us information goes here.’);
?>
---------------------------------胖子方法-------------------------------------------
1.创建一个文件:
define_51la.php 在includes\languages\语种\html_includes下面 //<script>51.la</script>
然后在模板里面加
<?php
echo file_get_contents("includes\languages\\".$_SESSION['language']."\\html_includes\define_51la.php");
?>
//***
$language = $_SESSION['language'];
require("includes\languages\\$language\\html_includes\define_ip_tongji.php");
?>