标准页面功能代码
以下总结了zencart中最常用的页面功能处理代码,供大家学习参考。
页面处理标准代码之:加载语言控制文件
require(DIR_WS_MODULES . zen_get_module_directory('require_languages.php'));
先检查
includes/modules/<template>/
有没有require_languages.php语言控制文件,否则使用includes/modules/require_languages.php
需要注意,zencart语言文件不会自动加载,必须通过上述代码才能加载语言常量定义,require_languages.php会自动根据当前选择语言,加载语言总控制文件、全局语言定义文件、页面语言文件。
关于语言文件的详细内容请查看“多语种的实现”之“语言文件的加载”。
页面处理标准代码之:用户登陆限制
if (!$_SESSION['customer_id']) { $_SESSION['navigation']->set_snapshot(); // 保存当前页面快照,当登陆后自动返回当前页面 zen_redirect(zen_href_link(FILENAME_LOGIN, '', 'SSL')); }
删除当前页面快照
$_SESSION['navigation']->remove_current_page();
页面快照通常用于在转向其它页面前记录当前页面,在转向后的页面里返回上次访问页面,最常见于访问需要登录的页面里,登录后可自动返回原页面。
页面处理标准代码之:加入面包屑
$breadcrumb->add(NAVBAR_TITLE_1, zen_href_link(FILENAME_ACCOUNT, '', 'SSL')); $breadcrumb->add(NAVBAR_TITLE_2);
面包屑主要用于内容的层次化导航,方便用户返回上级页面。
页面处理标准代码之:购物车为空返回
if ($_SESSION['cart']->count_contents() <= 0) { zen_redirect(zen_href_link(FILENAME_SHOPPING_CART)); }
页面处理标准代码之:查询数据表
$addresses_query = "SELECT * FROM " . TABLE_ADDRESS_BOOK . " WHERE customers_id = :customersID ORDER BY firstname, lastname"; $addresses_query = $db->bindVars($addresses_query, ':customersID', $_SESSION['customer_id'], 'integer'); // 绑定参数 $addresses = $db->Execute($addresses_query); while (!$addresses->EOF) { // 循环直到结束 $format_id = zen_get_address_format_id($addresses->fields['country_id']); $addressArray[] = array('firstname'=>$addresses->fields['firstname'], 'lastname'=>$addresses->fields['lastname'], 'address_book_id'=>$addresses->fields['address_book_id'], 'format_id'=>$format_id, 'address'=>$addresses->fields); $addresses->MoveNext(); // 移动到下一条记录 }
页面处理标准代码之:使用消息堆栈
$password_new = zen_db_prepare_input($_POST['password_new']); if (strlen($password_new) < ENTRY_PASSWORD_MIN_LENGTH) $messageStack->add('account_password', ENTRY_PASSWORD_NEW_ERROR);
消息堆栈是一种错误传递机制,通过堆栈可以在一个页面验证表单,在本页面或另一个页面显示错误消息。