分类归档

网站开发

FWQ
网站开发
zencart的configure.php文件的内容解释
Zen Cart结合configure.php文件的两个值建立网址: 非SSL的网页:HTTP服务器加上DIR_WS_目录加上部分网址的页面 例如:”http://www.my_domain.com”加上“/CUSTOM/”,不论请求页面是什么地址,比如”index.php?main_page=shopping_cart” 所以,如果这些值的设置指向错误的地方,打开那个网站时,你将瞬间看到你点击的网址。必须确保在浏览器看到的网址可以把它分成两个部分才能利用那些信息。 提示:在管理配置页面上,如果你设置的HTTP服务器的网址以https://开始,那么,所有的管理页面都会使用SSL处理。当然,只有当网站有SSL有效证书时才能正常工作。 SSL页面: SSL链接/网址相似的建立: HTTPS服务器加上DIR_WS_HTTPS目录加上部分网址的页面。例如:”https://www.my_domain.com” 加上”/CUSTOM/” 加上 “index.php?main_page=login” 路径: DIR_FS目录指向服务器上的物理文件夹路径。如果只修改网站上面的网址,没有修改具体位置的文件夹名称,那么你不需要接触这个。 不管怎样,请记住,DIR_WS_CATALOG和DIR_FS_CATALOG之间有相似点。 DIR_FS_CATALOG 可能如下: /home/myname/public_html/CUSTOM/ 因此, DIR_WS_CATALOG 是: /CUSTOM/ (DIR_WS_CATALOG指向托管账户的配置下面的任何“根目录”,比如:账户指向哪个文件夹就是实际的账户点。 在大多数情况下,这个文件夹被命名为“public_html”或“htdocs”或“httpdocs”) 其他路径: 不要修改下面的路径。以往需要修改这些是非常罕见的。 修改他们会破坏网站的正常运行。 define(‘DIR_WS_IMAGES’, ‘images/’); define(‘DIR_WS_INCLUDES’, ‘includes/’); define(‘DIR_WS_FUNCTIONS’, DIR_WS_INCLUDES .…
2025-04-26 阅读全文 →
FWQ
网站开发
zen cart主要文件说明
zencart的源码文件中第一句话往往是包含include目录下的application_top.php文件,如:require(’includes/application_top.php’); 在zencart系统中application_top.php负责的是初始化工作,比如加载配置文件include(’includes/configure.php’);,如果系统没检测到该文件的存在则会尝试调用安装文件。 然后它会自动遍历include/extra_configures下的配置文件并包含进来。 在加载了系统配置文件以后接下来是一个非常重要的文件,这也导致了zencart和oscommerce感觉上很大不同的原因,首先调用一个文件require(’includes/initsystem.php’); 在initsystem.php中最先加载include/auto_loaders/config.core.php,config.core.php是一个二围数组$autoLoadConfig,即以数组的形式保存文件的信息供后面文件调用,然后系统会接着加载完include/auto_loaders目录下所有文件名匹配$loaderPrefix(默认为config)的文件。 上面程序执行完以后就是加载自动执行程序了require(’includes/autoload_func.php’);在这里它会遍历$autoLoadConfig数组,它最终执行的效果会包含所有必须用到的函数或者类的定义,还有变量的初始化,config.core.php里面的注释比较清楚比如 $autoLoadConfig[0][] = array(’autoType’=>’class’,’loadFile’=>’class.base.php’); 在autoload_func.php里面执行完以后的效果就是require(DIR_WS_CLASSES . ‘class.base.php’),大部分的初始化化工作是通过包含init_includes目录下的文件来实现的,如: $autoLoadConfig[110][] = array(’autoType’=>’init_script’,’loadFile’=> ‘init_templates.php’); 它在执行完autoload_func.php文件后就已经加载了init_includes目录下的init_templates.php文件。 下面来介绍下ZenCart是怎么根据摸版把内容显示出来的。 在index.php的第29行有句 $directory_array = $template->get_template_part($code_page_directory, ‘/^header_php/’); 由于所有初始化工作已经完成,所以我们就可以在上面的文件找到他们的定义,如 $autoLoadConfig[100][] = array(’autoType’=>’classInstantiate’,’className’=>’template_func’,’objectName’=>’template’); 在这里就定义了$template…
2025-04-26 阅读全文 →
FWQ
网站开发
如何制作zencart产品详细页相关产品模块
制作zencart产品详细页相关产品模块,以下是提供的zencart二次开发代码, <div class=”centerBoxWrapper” id=”similar_product”> <h2 class=”centerBoxHeading”>&nbsp;&nbsp;Related products &nbsp;&nbsp;&nbsp;&nbsp;</h2> <ul> <?php   $products_id = (int)$_GET[‘products_id’];   $flash_page_id_con = array(); $flash_page_images_con = array(); $flash_page_price_con = array(); $flash_page_name_con = array();  …
2025-04-26 阅读全文 →
FWQ
网站开发
zencart开发教程:通知者/观察者模式
  通过重写机制和自动加载机制, Zen-Cart使得二次开发人员能够很方便的向核心代码中增加自己的功能, 然而开发者并不能在不破坏原始代码的基础上随意向Zen-Cart核心代码中的不同地方增加自己的代码. 因此, Zen-Cart引入了通知者/观察者模式(observer/notifier system, ONS), 这给开发人员提供了访问Zen-Cart核心代码, 而不需要破坏其原始文件内容的方式.     第1节  基类base       为了实现通知者/观察者模式, 首先引入一个重要的类: base类(class.base.php).       base类中包含了实现通知者/观察者模式的代码,  因此为了使通知者/观察者模式生效, Zen-Cart中的所有类都被定义为base类的子类, 任意打开一个类文件, 例如language.php,你讲可以看到如所示的代码.  如果你希望你自己的类也能够实现通知者/观察这模式, 请将你的类从base类派生. class language extends…
2025-04-26 阅读全文 →
FWQ
网站开发
单独屏蔽zencart左右边栏代码
单独屏蔽zencart左右边栏,打开 目录下的tpl_main_page.php文件,找到以下代码 if (!isset($flag_disable_left) || !$flag_disable_left) { 直接将要屏蔽的页面写入数组   if(in_array($current_page_base,explode(“,”, ‘product_info,shopping_cart,create_account,site_map,login,contact_us’))){     $flag_disable_left = true;//上面数组中的页面屏蔽左边栏     $flag_disable_right = true;//上面数组中的页面屏蔽右边栏 } 注意:页面名称对应目录includes\modules\pages下各个文件夹的名称,当不知页面名称时可以到该目录下查看。 例如,产品页面名称对应的文件夹名为product_info。
2025-04-26 阅读全文 →
FWQ
网站开发
zencart如何设置批量商品优惠?
利用下面的方法,可以实现: 买一送一、买一件第二件5折、买三件优惠10%等功能。 管理页面 -> 商品管理 -> 价格管理 -> (选择商品) -> 编辑 -> 添加空白折扣。 可以根据购买数量不同,设置不同的价格百分比或者特定的价格。
2025-04-26 阅读全文 →
FWQ
网站开发
Zencart首页当月新进商品倒序固定显示
Zencart首页显示的当月新进商品(New Products For XXX)是随机显示的,好像后台没找到可以设置固定按产品的ID或者发布日期倒序固定排列的,所以得手动修改。 需要修改的文件在这里:/includes/modules/你的模板文件夹/new_products.php。 1、找到new_products.php文件里面的 $new_products_query 在后面添加上order by p.products_id DESC 或者 p.products_date_added DESC; 2、找到if ($new_products_query != ”) $new_products = $db->ExecuteRandomMulti($new_products_query, MAX_DISPLAY_NEW_PRODUCTS);将里面的 ExecuteRandomMulti 改为 Execute; 3、找到 $new_products->MoveNextRandom(); 将它修改为 $new_products->MoveNext();。 以上修改可以实现首页当月新进商品按商品ID或者发布时间倒序固定排列,暂时没发现什么问题。 另外,侧边的最新商品默认也是随机显示的,同样也可以改成固定的显示。修改的文件位置在includes/modules/sideboxes/你的模板文件夹/whats_new.php。这个我没做修改,修改的办法应该差不多。
2025-04-26 阅读全文 →
FWQ
网站开发
彻底清除Zencart的cache文件夹myDEBUG.log文件
经常有朋友遇到Zencart网站可以运行,但每天在cache里产生几万个myDEBUG.log的问题, 查看程序后会发现,其实也不难,主要是开始没认真去看, 按照规则显示这个myDEBUG.log分两部分,第一个是前台显示的BUG LOG,第二个是后台的显示的myDEBUG.log 其中前台文件在 /zencart/includes/extra_configures/enable_error_logging.php 中 后台 /zencart/admin/includes/extra_configures/enable_error_logging.php中 修改方法很简单 彻底不显示就把 @ini_set(‘log_errors’, 1); 修改为 @ini_set(‘log_errors’, 0); 只显示错误就把 $errors_to_log = (version_compare(PHP_VERSION, 5.3, ‘>=’) ? E_ALL ^(E_NOTICE | E_DEPRECATED): E_ALL…
2025-04-26 阅读全文 →
FWQ
网站开发
zencart产品属性dropmenu select只有一个选择项时自动
includes\modules\classic\attributes.php 在大约786行代码  case ($products_options->RecordCount() == 1):   的下面找到  $options_menu[] = zen_draw_radio_field('id[' . $products_options_names->fields['products_options_id'] . ']', $products_options_value_id, 'selected', 'id="' . 'attrib-' . $products_options_names->fields['products_options_id'] . '-' . $products_options_value_id . '"')…
2025-04-26 阅读全文 →
FWQ
网站开发
zencart产品页面调用WordPress最新文章
 把WordPress安装到zen-cart一个子目录里吧,设置好固定连接等   这个文件/includes/templates/template_default/templates/tpl_product_info_display.php在合适的地方加入下面两行代码     <?php require(‘../wordpress所在目录/wp-blog-header.php’); ?> 这行调用WordPress自带函数,目录地址要随着WordPress安装目录变化而变化     <?php get_archives(‘postbypost’, 10); ?> 这里的10指调用的最新文章数量
2025-04-26 阅读全文 →