有一些时候我们需要得到当前分类的父级分类,下面是在magento中调用父级分类的方法:
<?php $currentCat = Mage::registry('current_category'); //if Rootcategory display current category only //this gets around the problem of displaying DEFAULT CATEGORY if ( $currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId() ) //Display current category echo $this->getCurrentCategory()->getName() ; else { // Display ParentCategory of Current Category echo $this->getCurrentCategory()->getParentCategory()->getName() ; } ?>
得到当前分类的父级分类--magento
2012年8月22日星期三 Asia/Shanghai下午4:17:16
magento中customer,得到id,email
2012年6月25日星期一 Asia/Shanghai下午2:20:02
1.
通过email得到id的快速方法
$customer = Mage::getModel('customer/customer');
$customer->setWebsiteId(Mage::app()->getWebsite()->getId());
$customer->loadByEmail("[email protected]");
//var_dump($customer);
$customerId = $customer->getEntityId();
customerId就是我们通过email、想要得到的id的值
2
通过id得到email,
$customer = Mage::getModel('customer/customer')->load(1); $customerFirstName = $customer->getFirstname();
$customerEmail = $customer->getEmail();
OK!通过上面的函数可以快速的得到您想要的客户的属性的值!
magneto产品你详细页面options的一些代码小结
2012年6月6日星期三 Asia/Shanghai上午7:32:54
magento开发过程中代码小结:
1
得到当前产品:$pr = Mage::registry('current_product');
2
得到当前产品的价格:$dds = Mage::helper('core')->currency($pr->getPrice());
3
得到title为color的custom options 的css中的id属性
<?php $_options = Mage::helper('core')->decorateArray($this->getOptions()) ?>
foreach($_options as $_option){
if($_option['title']=="color"){
//echo "<div style='display:block;'>".$this->getOptionHtml($_option)."</div>";
$colorid = "select_".$_option['option_id'];
echo $colorid;
}
}
4
得到select中的每一个子项
$op = $_option->getValues();
<?php foreach($_options as $_option){ ?>
<?php
if($_option['title']=="color"){
$op = $_option->getValues();
foreach($op as $ops){
echo "<span >".$ops->getTitle()."##".$ops->getOptionTypeId()."</span>";
$d1s = $ops->getTitle();
}
<?php } ?>
5
输出这个options项
<?php foreach($_options as $_option):{?>
<?php $this->getOptionHtml($_option); ?>
<?php } ?>
OK!
关于magento的编译功能
2012年6月4日星期一 Asia/Shanghai上午10:12:05
magento在后台自带编译功能,也就是system--->Tools--->compilation
点击进入后。点击run compilation process功能,就可以开启编译功能
功能开始是非常的容易,但是编译功能起的作用是什么?什么时候需要重新编译呢?
编译功能是对app/core里面的文件编译成可执行代码,然后每次运行的时候,就不需要重新读取里面的功能和新代码,编译后,文件存放在根目录/includes/src里面,在线安装插件的时候一定要把编译关掉,免的出错,因为编译后,安装的插件是没有被编译的,需要重新编译,重新编译的时候有的时候会报错,一旦崩溃了怎么办呢?我们除了可以在后台关闭编译,也可以用另外一种方法关闭缓存,进入路径includes/config.php,找到代码
define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src');
define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
改为如下
#define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src');
#define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
也就是带有#,就把编译功能关闭了,和在后台关闭效果是一样的,这种方法一把在后台无法访问的时候,关闭编译的一种方式!
快速的检查magento的那个文件被修改
2012年6月4日星期一 Asia/Shanghai上午9:59:21
在magento运营过程中,如果您接受一个一个新的项目,那么您需要查看这个项目的一个安全性,在某一个方面,您要看看这个magento系统的核心文件(core)是否被修改,使用老式的土办法,可以把模板文件单个复制出来放到新安装的系统上测试,是否能正常运行,这样可以检测出来是否有问题,如果有问题,然后通过复制法找出那个出错的文件,最后就可以定位出来那个文件被修改,这种办法慢,费事
今天介绍一种新办法
diff -qrbB default_sacred_core_folder clients_core_folder
srbB的意识为:
-q, –brief
report only when files differ
-r, –recursive
recursively compare any subdirectories found
-b, –ignore-space-change
ignore changes in the amount of white space
-B, –ignore-blank-lines
ignore changes whose lines are all blank
OK!