Browsing all articles from 十月, 2010
29

Magento速度优化——异步加载

Author 紫月蓝骋    Category Magento     Tags

Magento的这个速度优化,之前有讲到过了Magento加速利器——lazyload,其实就是异步加载。这次我讲的是在protype下的lazyload,效果是和淘宝的一样,不过淘宝用的是YUI的。不想加载jQUery的可以用这个protype下的lazyload,同样是减少http请求,但是他会先遍历一遍所有的预选的img类型。我就不详细解释了,我直接放js地址了http://www.bram.us/projects/js_bramus/lazierload/

Magento的加速要一点一点的坐上去, 最近为magento的速度事情纠结了很久。希望大家对于magento的速度优化有什么妙招,可以告诉我,嘿嘿

28

Magento进入插件管理报错解决方法

Author 紫月蓝骋    Category Magento     Tags

今天在安装magento插件的时候碰到的问题,报错信息是:
Fatal error: require_once() [function.require]: Failed opening required ‘System.php’。这个是因为后台编译打开的原因,关掉即可。

另外还碰到个下载插件后无效的解决方法(仅限于转移服务器后),进入magento文件夹downloader\pearlib,里面有个pear.ini,删除就可以了。把安装无效的那个插件卸载了重新安装就可以了。

以上是水水友情协助,并强迫我给他的magento博客加链接http://blog.csdn.net/shuishui8310,强大的博客啊 ,可惜被百度惩罚了。magento开发人员去那寻宝吧。

20

Magneto功能强大的分页

Author 紫月蓝骋    Category Magento     Tags

Magento分页功能基本包含了常用的分页功能。之前没有去挖掘分页的功能,以为只有默认的一种,还在纠结默认的太简单了,准备换个。水水最近研究了下那东西,我就直接把他的劳动成果拿出来分享了,嘿嘿……

这里只是简单的介绍下,让大家知道有这个功能,配置什么的都很简单。进入magento后台system->Configuration->Design有个Pagination栏,设置都在里面了,可以实现一般的分页功能了。有需要的可以慢慢玩了,如果有更好的,希望大家推荐下。

14

去掉链接、按钮的虚框

Author 紫月蓝骋    Category 前端相关     Tags

链接和按钮在点击的时候会默认出现虚框,有时候因为美观我们需要去掉,最近就被这个小折腾了下,总结了下往上发的一些方法。
1、a{outline:none} 这个是针对Firefox的,但是IE下无效。
2、jQuery(“a”).each(function(){this.onmouseup = this.blur();})如果网站中已经加入jQuery,可以用这个方法。
3、< a href="#" hidefocus="true">……,在a标签中加入hidefocus=”true”,这个在IE下可用,但是通不过W3C验证。
4、< input type="button" border=0 onFocus="this.blur()" name="……"> button按钮标签中加入onFocus=”this.blur()”,这个同样无法通过w3c验证。
5、input{blr:expression(this.onFocus=this.blur());}给按钮加入这个样式,往上评论说这个东西不能多用,会影响性能,我也没验证,我只在一个地方用到。
上面的方法都可行,在使用时须看实际情况针对使用。

14

Magento获取分类的销售排行

Author 紫月蓝骋    Category Magento     Tags

Magento有个热门商品的插件,但是那个插件不显示产品的销售数量,现在分享下能够指定分类,显示销售数量的方法。
新建一个block,内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
$totalPerPage = ($this->show_total) ? $this->show_total : 8;
$counter = 1;
$catalogid = Mage::getSingleton('catalog/layer')->getCurrentCategory()->getId();
$catalogid=($catalogid) ? $catalogid : 2;
 
$_featcategory = Mage::getModel('catalog/category')->load($catalogid); 
$visibility = array(
                      Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
                      Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG
                  );
 
$storeId = Mage::app()->getStore()->getId();
$_productCollection = Mage::getResourceModel('reports/product_collection')
                              ->addAttributeToSelect('*')
                              ->addOrderedQty()
                              ->addAttributeToFilter('visibility', $visibility)
                              ->addCategoryFilter($_featcategory)   //全部产品的排行
                              ->setOrder('ordered_qty', 'desc');
?>
 
<ul>
 
<?php foreach($_productCollection as $product): ?>
 
 
<?php if($counter <= $totalPerPage): ?>
 
<?php $productUrl =  $product->getProductUrl() ?>
 
 
<li class="l">
<a onclick="this.target='_blank'" class="hotimg" href="<?php echo $productUrl ?>" title="View <?php echo $product->name ?>">
<img src="<?php echo $this->helper('catalog/image')->init($product, 'image')->resize(77); ?>" alt="<?php echo $product->name ?>"  />
</a>
  <h2><a onclick="this.target='_blank'" href="<?php echo $productUrl ?>" title="View <?php echo $product->name  ?>">
<?php echo Mage::helper("core/string")->truncate($product->name,6,'') ;?>
</a> </h2>
 <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
<span class="bestprice"> <?php echo $this->helper('core')->currency($product->getFinalPrice(),true,false) ?></span>
<span class="selled">已售出: <?php echo (int)$product->ordered_qty ?></span>
</li>
<?php endif; $counter++; ?>
<?php endforeach; ?>
</ul>

然后在magento中需要的地方插入即可,这个我在一个商城中已经用上,没有问题。

11

Magento中新建添加了special price的产品模块

Author 紫月蓝骋    Category Magento     Tags

Magneto中新建special price页面这个功能模块用到的应该不多,现在的商城基本都是所有的产品的会加上special price。国外有些商城可能会用到这个功能,放假的时候查了些资料,现在分享下这个功能模块。

在app/design/frontend/default/你的主题/template/catalog/product中新建special.phtml,加入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
include_once 'app/Mage.php';
Mage::app();
Mage::getSingleton('core/session', array('name' => 'frontend'));
 
$_productCollection = Mage::getResourceModel('catalogsearch/advanced_collection')
            ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
            ->addMinimalPrice()
            ->addStoreFilter();
 
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($_productCollection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($_productCollection);
 
 
$todayDate = date('m/d/y');
$tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y'));
$tomorrowDate = date('m/d/y', $tomorrow);
 
$_productCollection->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
    ->addAttributeToFilter('special_to_date', array('or'=> array(
    0 => array('date' => true, 'from' => $tomorrowDate),
    1 => array('is' => new Zend_Db_Expr('null')))
    ), 'left');
 
foreach($_productCollection as $_product){
    if($_product->getData('special_price')!=null){
        echo '<img src="'.$this->helper('catalog/image')->init($_product, 'thumbnail')->resize(75).'" alt="'.$_product->getName().'" /><br />';
        echo $_product->getName().'<br />';
 
    $specialPrice = $_product->getData('special_price');
    $orignalPrice = $_product->getData('price');
        echo number_format($specialPrice, 2)."<br/>";
        echo number_format($orignalPrice, 2)."<br/>";                    
        echo '<a href="http://www.yourwebsite.com/magento/checkout/cart/add?product='.$_product->getId().'&qty;=1">Add To Cart</a><br />';
    }
}
?>

这个只是实现了基本功能,样式布局方面还需要修改。有什么问题欢迎一起探讨。

9

在Magneto中使用一个xml文件更新布局

Author 紫月蓝骋    Category Magento     Tags

Magento有很多的xml布局文件,我们在修改更新布局文件时,就要去找相对应的.xml文件。我分享下通过一个local.xml文件就可以修改整个Magento网站的布局。

在app/frontend/default/你的主题/layout下新建一个local.xml,在里面写你需要更新的布局就可以了。记得在 头部加入

1
2
< ?xml version="1.0"?>
<layout version="0.1.0"></layout>

可能一些朋友不懂magento如何布局,我接下来简单的介绍下:
1.更新添加block

1
2
3
 <reference name="left">
   <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
</reference>

2.删除block

1
<remove name="catalog.leftnavr" />

3.添加删除js

1
2
3
4
5
6
7
<!-- 删除JS-->
<reference name="head">
<action method="removeItem"><type>js</type><name>lib/ds-sleight.js</name></action>
</reference>
 
<!-- 添加JS -->
<action method="addItem"><type>skin_js</type><name>lib/ds-sleight.js</name></action>

关于布局更新还有其他问题,可留言联系我。