zencart的modules下数据库操作templates排版和common首页引用
把这个学会,zencart的数据库操作,以及各种函数的调用基本会了
这个东西非常有用,你需要认真看一下,不要闲代码多。
如何在数据库中调出自己想要的产品,让它显示在首页。
据我本人不科学的理解,在includes/modules/里面见一个 模块文件,该文件是功能文件,也就是含有sql语句,以及执行sql语句的常用函数,这个是“功能文件”
我在这取名叫做 show_products.php
<?php
$show_product = 'SELECT p.products_id,p.products_model,p.products_price, p.products_image, ps.specials_new_products_price,pd.products_name,pd.products_description,cd.categories_description,cd.categories_id FROM products p
LEFT JOIN specials ps ON ps.products_id = p.products_id
LEFT JOIN products_description pd ON pd.products_id = p.products_id
LEFT JOIN products_to_categories pc ON pc.products_id = p.products_id
LEFT JOIN categories_description cd ON cd.categories_id = pc.categories_id order by rand()';
$show_product_handle = $db->Execute($show_product,18);
while (!$show_product_handle->EOF)
{
$show_product_content[] = array(
'id'=>$show_product_handle->fields['products_id'],
'product_name'=>$show_product_handle->fields['products_name'],
'products_description'=>$show_product_handle->fields['products_description'],
'product_module'=>$show_product_handle->fields['products_model'],
'product_price'=>$currencies->display_price(zen_get_products_base_price($show_product_handle->fields['products_id'])),
'special_price'=>$currencies->display_price(zen_get_products_special_price($show_product_handle->fields['products_id'])),
'description'=>$show_product_handle->fields['categories_description'],
'product_image'=>zen_image(DIR_WS_IMAGES . $show_product_handle->fields['products_image'], $show_product_handle->fields['products_name'], IMAGE_PRODUCT_NEW_WIDTH, IMAGE_PRODUCT_NEW_HEIGHT),
'product_url'=>zen_href_link(FILENAME_PRODUCT_INFO,'cPath='. $show_product_handle->fields['categories_id'] . '&products_id='.$show_product_handle->fields['products_id'])
);
$show_product_handle->MoveNext();
//print_r($show_product_handle);
}
//print_r($show_product_content);
?>
东西取出来了,得要按照我们需要的格式排列啊,就需要模板文件,在includes/templates/template_default/templates/建一个tpl_show_products.php的模板文件
<?php
include(DIR_WS_MODULES . zen_get_module_directory('show_product.php'));
if(is_array($show_product_content) && !empty($show_product_content))
{
$outPutHtml .= '<div id="product">';
$i=0;
$j=0;
foreach ($show_product_content as $key => $value)
{
$str=$value['products_description'];
$val=substr($str,0,170)."...";
$outPutHtml .= '<div id="Box'. $value['id'] .'">';
$outPutHtml .= '<div id="BoxT'. $value['id'] .'">';
$outPutHtml .= '<h2><a href="' . $value['product_url'] . '">' . $value['product_name'] . '</a></h2>';
$outPutHtml .= '</div>';
$outPutHtml .= '<div class="desc"><a href="' . $value['product_url'] . '" class="kuang" alt=" '. $value['product_name'] .' "></a></div>';
$outPutHtml .= '<div id="BoxD' . $value['id'] . '">';
$outPutHtml .= '<h3><span>RRP: ' . $value['product_price'] . '</span> - OUR PRICE: ' . $value['special_price'] . '</h3>';
$outPutHtml .= $val;
$outPutHtml .= '</div>';
$outPutHtml .= '<div id="BoxB' . $value['id'] . '">';
$outPutHtml .= '<a href="' . $value['product_url'] . '"><img src="includes/templates/2/images2/'. $value['id'] .'.gif"></a>';
$outPutHtml .= '</div>';
$outPutHtml .= '</div>';
// print_r($value);
}
$outPutHtml .= '</div>';
}
echo $outPutHtml;
//print_r($show_product_content);
?>
<!--
<div id="p_1">
<div id="p_li">
<h2><a href="ghd-red-lust-styler-p-252.html">GHD Pink Limited Edition</a></h2>
</div>
<a href="ghd-pink-limited-edition-p-255.html" class="kuang" alt="GHD Red Lust Styler"></a>
<div id="text">
<h3><span>RRP: $299.00 AUD</span> - OUR PRICE: $145.99 AUD</h3>
2010 ghd pink limited edition-Rediscover your passion for pink with the new ghd Pink limited edition.Each pink patterned ghd IV styler comes with a gorgeous raffia bag & mirror. </div>
</div>
<div id="an">
<a href="ghd-pink-limited-edition-p-255.html"><img src="includes/templates/2/images2/p_an_4.jpg"></a>
</div>
-->
最后是引用这一块,比如我想在首页的一个DIV里显示这些内容
<div class="products">
<?php
//display product module
require($template->get_template_dir('tpl_module_show_product.php', DIR_WS_TEMPLATE, $current_page_base, 'templates').'/tpl_module_show_product.php');
?>
</div>
zencart的modules下数据库操作templates排版和common首页引用的更多相关文章
- Android下数据库操作——增删改查
Android下数据库第一种方式增删改查 1.创建一个帮助类的对象,调用getReadableDatabase方法,返回一个SqliteDatebase对象 2.使用SqliteDat ...
- Oracle Linux下数据库操作的相关问题
1.su - oracle 切换到oracle用户 lsnrctl status 查看数据库监听状态 lsnrctl start 打开数据库监听 2.Connected to an idle inst ...
- c#数据库访问服务(综合数据库操作)
前面给大家说封装了常用的数据库,并且整理了使用.最近我再次把项目整合了.做成比较完善的服务. 还是重复的说下数据库操作封装. berkeley db数据库,Redis数据库,sqlite数据库. 每个 ...
- 如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...
- mysql在cmd命令下执行数据库操作
windows+r 运行cmd命令,执行以下操作! 当mysql 数据库文件相对于来说比较大的时候,这个时候你可能在正常环境下的mysql中是导入不进去的,因为mysql数据库本身就有默认的导入文件大 ...
- Django 2.0 学习(16):Django ORM 数据库操作(下)
Django ORM数据库操作(下) 一.增加表记录 对于表单有两种方式: # 方式一:实例化对象就是一条表记录france_obj = models.Student(name="海地&qu ...
- Python3.x:pyodbc连接Sybase数据库操作(Windows系统下DNS模式)
Python3.x:pyodbc连接Sybase数据库操作(Windows系统下DNS模式) 一.安装模块pyodbc pip install pyodbc 二.配置odbc数据源 (1).windo ...
- 数据库操作API 或万能的双下划线
数据库操作API: 类型 描述 exact 精确匹配: polls.get_object(id__exact=14). iexact 忽略大小写的精确匹配: polls.objects.filter( ...
- Django 模型(数据库)-cmd下的操作
Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py ...
随机推荐
- 第十节,While循环和for循环
While循环 While循环,是一个循环加判断的组合,满足判断条件返回 真(True)开始循环代码块,不满足判断条件返回 假()不循环 格式: While 条件: 代码块 注意:在While循环里如 ...
- hud 2549 壮志难酬
Problem Description 话说MCA山上各路豪杰均出山抗敌,去年曾在江湖威名显赫的,江湖人称<万军中取上将首级舍我其谁>的甘露也不甘示弱,“天将降大任于斯人也,必先劳其筋骨, ...
- Git 提交修改内容和查看被修改的内容
我们将仓库里的readme.txt文件修改一下,改成如下内容: Git is a distributed version control systemGit is free software. 运行g ...
- struct函数
//今天老师叫用一个struct函数做一个函数指针循环 突然我都不知道struct函数怎么用了 害的我下去查了很多资料 第一个定义法: int fun1(){ struct student{ ...
- iPhone5s 等 64位真机 运行 带有百度地图等 仅支持32位系统API和SDK的问题
将下图中画红色框的部分去掉,程序就不再支持64位了.iPhone5s 将使用它的32位兼容模式.(而不再是64位模式)百度地图也不会报错了.
- 【Valse首发】CNN的近期进展与实用技巧(上)
作者:程程链接:https://zhuanlan.zhihu.com/p/21432547来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 深度学习大讲堂致力于推送人工智 ...
- Django CRM学员系统项目
项目需求: 1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个班级至少包含一个或多个讲师4.一个学员要有状态转化的过程 ,比如未报名前,报名后,毕业老学员5.客户 ...
- 最简单易懂的webService客户端之soap+xml请求
代码准备: 1.网络上有提供一些免费的服务器测试地址,可以上这里找一找:https://my.oschina.net/CraneHe/blog/183471 2.我选择了一个翻译地址:http://w ...
- 织梦DEDECMS更新6月7日补丁后出现版权链接的删除办法
说最近网站底部多出了一个Power by DedeCms的超链接版权信息,但是该网友最近只是升级了0607更新补丁,其它的源代码并没有改动,而以前的文章页面并没有,看来是这次更新dedecms后才被加 ...
- UIImageView 的contentMode属性应用
UIImageView 的contentMode这个属性是用来设置图片的显示方式,如居中.居右,是否缩放等,有以下几个常量可供设定:UIViewContentModeScaleToFillUIView ...