标签: magento

Magento或Prestashop哪个更好?

我想为我的小商店找到一个电子商务解决方案.我的朋友告诉我,Prestashop很容易使用和开发模块,但有人说Magento更好.谁能告诉我哪个更适合开发模块?为什么?

magento e-commerce prestashop

42
推荐指数
8
解决办法
5万
查看次数

Magento addFieldToFilter:两个字段,匹配为OR,而不是AND

过去几个小时我一直坚持这个.我通过乱砍几行来解决这个问题/lib/Varien/Data/Collection/Db.php,但是我宁愿使用正确的解决方案并保持我的核心不受影响.

我需要做的就是获取一个集合并通过两个或多个字段对其进行过滤.说,customer_firstnameremote_ip.这是我的(没有黑客的功能Db.php)代码:

$collection = Mage::getModel('sales/order')->getCollection()->
addAttributeToSelect("*")->
addFieldToFilter(array(array('remote_ip', array('eq'=>'127.0.0.1')),
array('customer_firstname', array('eq'=>'gabe'))), array('eq'=>array(1,2,3)));
Run Code Online (Sandbox Code Playgroud)

有了股票Db.php,我尝试了这个:(样本取自http://magentoexpert.blogspot.com/2009/12/retrieve-products-with-specific.html)

$collection->addFieldToFilter(array(
    array('name'=>'orig_price','eq'=>'Widget A'),
    array('name'=>'orig_price','eq'=>'Widget B'),           
));
Run Code Online (Sandbox Code Playgroud)

但这给了我这个错误:

Warning: Illegal offset type in isset or empty  in magento/lib/Varien/Data/Collection/Db.php on line 369
Run Code Online (Sandbox Code Playgroud)

如果我用try/catch包装它,那么它会进入_getConditionSql()并给出这个错误:

Warning: Invalid argument supplied for foreach()  in magento/lib/Varien/Data/Collection/Db.php on line 412
Run Code Online (Sandbox Code Playgroud)

有没有人有任何工作,功能代码这样做?我正在运行Magento 1.9(企业版).谢谢!

php magento magento-1.9

42
推荐指数
7
解决办法
12万
查看次数

Magento getSingleton混乱

我对我看到的电话有点困惑Mage::getSingleton,我希望有人可以帮我理解一点.

我看过一段核心代码可以做到这一点:

Mage::getSingleton('customer/session')->isLoggedIn()
Run Code Online (Sandbox Code Playgroud)

我不知道PHP,但我认为我可以在一个安全的假设getSingleton方法名,将有只有一个指定的类(类被指定为分组类名,并决心对实例app/code/core/Mage/Customer/Model/Session.php-含类Mage_Customer_Model_Session.

问题1 -

如何知道getSingleton方法在类的Model文件夹中查找?

问题2 -

所以整个类有一个实例...我想说JVM因为我来自Java背景,但我会说PHP引擎希望这是一个模糊的正确术语; 在Mage_Customer_Model_Session没有在客户ID或任何此类标识符过去了,但我们所说的方法isLoggedIn()!Mage_Customer_Model_Session假设每个客户没有实例,当我们没有告诉客户我们正在谈论的客户时,我们如何询问客户是否登录?

问题3 -

我已经看到了通话Mage::getSingleton('core/session')Mage::getSingleton('customer/session')-的区别是什么?

感谢您的任何帮助.

magento

42
推荐指数
2
解决办法
2万
查看次数

在NGINX服务器上为Magento启用GZIP for CSS和JS文件

我需要在nginx服务器上启用gzip压缩.正如我从firfox firebug NET工具中观察到的,我发现html文件是gzip压缩的.但不是javascript文件和CSS文件.

我已经检查的mime.types和nginx的配置文件/etc/nginx/ngnix.conf并没有发现任何问题.仍然无法看到css和javascript Gzip压缩.我的NGINX.conf条目如下

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
Run Code Online (Sandbox Code Playgroud)

gzip nginx magento

42
推荐指数
3
解决办法
7万
查看次数

使用之前/之后放置块的Magento XML几乎不起作用

我是一个前端Magento开发者,已经构建了我自己的一些主题,我想更好地理解Magento的XML块定位...

我通常使用一个local.xml文件来操作一切,我可以按如下方式定义一个块:

<cms_index_index>
   <reference name="root">
      <block type="core/template" name="example_block" as="exampleBlock" template="page/html/example-block.phtml"/>
   </reference>
</cms_index_index>
Run Code Online (Sandbox Code Playgroud)

这将在主页(cms_index_index)上创建一个块,并且由于块创建了一个级别root,我通常会通过添加以下内容来调用块:

<?php echo $this->getChildHtml('exampleBlock') ?>
Run Code Online (Sandbox Code Playgroud)

......到1column.phtml(或2columns-left/ right.phtml,3columns.phtml等等).可以通过替换cms_index_index适当的页面标记将块放置在任何页面上.

我在整个核心XML文件和教程中看到如下内容:

<reference name="root">
   <block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
Run Code Online (Sandbox Code Playgroud)

content是一个块,它是magento的一般页面结构的一部分,从我的理解,before="content"应该把它放在你期望的地方,而不需要使用getChildHtml('exampleBlock'),到目前为止那么好...但是,之前/之后似乎几乎没有工作我,我经常发现自己使用getChildHtml方法作为备份,这并不总是理想的,并且意味着编辑更多.phtml文件而不是必要的.

我试过了:

<reference name="root">
   <block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
Run Code Online (Sandbox Code Playgroud)

什么都没出现......

<reference name="root">
   <block type="core/template" name="example_block" after="header" template="page/html/example-block.phtml"/>
</reference>
Run Code Online (Sandbox Code Playgroud)

仍然没有....我也知道在它的父块之前使用before="-"after="-"放置一些东西.我偶尔会有一些运气,但一般只会感到困惑和沮丧.

我已经搜索了"magento xml之前/之后不工作"的地方,并开始怀疑它是否只是我发生这种情况......任何人都可以解释我什么时候可以使用之前/之后定位块?上面的例子有什么问题?

我在magento 1.7.0.2(发布时最新的)

这样做的主要动机是减少我需要编辑的核心.phtml文件的数量,只是为了添加一个getChildHtml(),所以如果有另一种(XML)方式来解决这个问题,我有兴趣知道......

xml magento

41
推荐指数
1
解决办法
4万
查看次数

Magento安装抱怨InnoDB可用时丢失

在安装过程中,Magento会产生以下错误:

数据库服务器不支持InnoDB存储引擎.

我已经修复了Magento的所有依赖项,并使用SHOW ENGINES在命令行上使用MySQL进行了双重检查,并且肯定有InnoDB可用(也是默认的存储引擎).

这不是访问MySQL配置的问题,其他人可能已经在安装时看到了这一点.

注意:这是在Mac Pro上运行的(我正在开发的域名使用简单的主机DNS重写).

php mysql innodb magento

41
推荐指数
3
解决办法
4万
查看次数

Magento:在phtml文件中获取一个静态块作为html

我有一个名为newest_product(带内容)的静态块,我想将其显示在.phtml文件中html.

我试过这段代码:

echo $this->getLayout()->createBlock('cms/block')->setBlockId('newest_product')->toHtml(); 
Run Code Online (Sandbox Code Playgroud)

但这一切都没有显示出来.

我使用错误的代码吗?

php magento

40
推荐指数
6
解决办法
17万
查看次数

当与prototype.js一起使用时,Twitter Bootstrap 3下拉菜单消失

在magento网站上一起使用bootstrap 3和prototype.js时遇到问题.

基本上,如果你点击下拉菜单(我们的产品),然后单击背景上,在下拉菜单中(我们的产品)消失(prototype.js中增加了"显示:无;"给力).

以下是该问题的演示:http: //ridge.mydevelopmentserver.com/contact.html

你可以看到下拉菜单的工作方式应该没有,不包括下面链接页面上的prototype.js:http: //ridge.mydevelopmentserver.com/

有没有其他人之前遇到过这个问题或者有可能的冲突解决方案?

容易修复:

用这个bootstrap友好的文件替换Magento的prototype.js文件:

https://raw.github.com/zikula/core/079df47e7c1f536a0d9eea2993ae19768e1f0554/src/javascript/ajax/original_uncompressed/prototype.js

您可以在prototype.js文件中看到更改以修复引导程序问题:

https://github.com/zikula/core/commit/079df47e7c1f536a0d9eea2993ae19768e1f0554

注意:在prototype.js之前,JQuery必须包含在你的magento皮肤中.例如:

<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/prototype/prototype.js"></script>
<script type="text/javascript" src="/js/lib/ccard.js"></script>
<script type="text/javascript" src="/js/prototype/validation.js"></script>
<script type="text/javascript" src="/js/scriptaculous/builder.js"></script>
<script type="text/javascript" src="/js/scriptaculous/effects.js"></script>
<script type="text/javascript" src="/js/scriptaculous/dragdrop.js"></script>
<script type="text/javascript" src="/js/scriptaculous/controls.js"></script>
<script type="text/javascript" src="/js/scriptaculous/slider.js"></script>
<script type="text/javascript" src="/js/varien/js.js"></script>
<script type="text/javascript" src="/js/varien/form.js"></script>
<script type="text/javascript" src="/js/varien/menu.js"></script>
<script type="text/javascript" src="/js/mage/translate.js"></script>
<script type="text/javascript" src="/js/mage/cookies.js"></script>
<script type="text/javascript" src="/js/mage/captcha.js"></script>
Run Code Online (Sandbox Code Playgroud)

magento prototypejs twitter-bootstrap twitter-bootstrap-3

40
推荐指数
5
解决办法
1万
查看次数

排序算法:Magento结帐总计错误排序导致错误的运费税计算

在Magento中,有一个功能,您可以通过指定在运行总计之前和之后来定义总计算的顺序.

我添加了一个自定义总计,如果我将以下行添加到config.xml,则排序错误.错误的意思是:tax_shipping之前 shipping.这会导致运费的税费增加两倍.

但这违反了这一条件

tax_shipping
after: shipping
Run Code Online (Sandbox Code Playgroud)

我的猜测:整套规则必定存在一些矛盾.但我怎么能找到它呢?

这是我添加的唯一规则.没有这个规则,tax_shipping就会排序shipping.

<shippingprotectiontax>
    <class>n98_shippingprotection/quote_address_total_shippingprotectionTax</class>
    <after>subtotal,discount,shipping,tax</after>
    <before>grand_total</before>
</shippingprotectiontax>
Run Code Online (Sandbox Code Playgroud)

下面我粘贴usort调用返回的已排序数组.Mage_Sales_Model_Quote_Address_Total_Collector::_getSortedCollectorCodes() 对于那些没有安装Magento的人,代码如下:

/**
 * uasort callback function
 *
 * @param   array $a
 * @param   array $b
 * @return  int
 */
protected function _compareTotals($a, $b)
{
    $aCode = $a['_code'];
    $bCode = $b['_code'];
    if (in_array($aCode, $b['after']) || in_array($bCode, $a['before'])) {
        $res = -1;
    } elseif (in_array($bCode, $a['after']) || in_array($aCode, $b['before'])) {
        $res = 1;
    } else { …
Run Code Online (Sandbox Code Playgroud)

php sorting graph-theory magento

37
推荐指数
2
解决办法
1万
查看次数

处理您的请求时出错,错误日志记录编号

我安装了Magento,登录管理面板.但是,如果我按任何链接打开让我们说CMS页面或用户配置,我得到这样的错误:

处理您的请求时出现错误出于安全原因,默认情况下禁用异常打印.

错误日志记录号:673618173351

该错误日志记录编号看起来像一个链接,但按下它没有任何反应.我试图在magento文件中查找一些日志文件,但没有找到任何日志文件.

所以实际上我只能连接到管理面板,但这里不能做任何事情.

可能有什么不对?我安装了最新的Magento版本(magento-1.7.0.2).默认前端打开并运行.

PS

如果需要任何其他信息,请说出来

更新:

因此在日志中每个错误都是相同的(只是访问的资源不同).

a:5:{i:0; s:71:"无法确定临时目录,请手动指定cache_dir"; i:1; s:4546:"#0 /home/geniusinsi/domains/example.com/public_html /lib/Zend/Cache/Backend.php(197):Zend_Cache :: throwException('无法阻止......')

据我所知,我需要在某处指定现金目录?

magento magento-1.7

37
推荐指数
2
解决办法
19万
查看次数