小编nac*_*ito的帖子

如何在OpenCart中创建自定义SEO友好的URL?

如何在OpenCart中自定义系统URL?例如,我希望http://example.com/index.php?route=checkout/cart显示为http://example.com/cart

我知道OpenCart为产品,类别,制造商和信息页面提供了SEO URL,但看起来并没有内置任何内容(至少在1.5.0版之前).

php .htaccess seo opencart

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

通过COND1和(COND2或COND3)过滤Magento集合

如何通过attribute1 = value1 AND(attribute2 = value2 OR attribute3 = value2)过滤Magento销售订单集合?我可以写WHERE {COND1} AND {COND2}或{COND3},但我不能分组AND({COND2} OR {COND3})

首先,这不是一个重复的AFAIK,我已经看到了,它在版本1.3.2中运行良好,但在Enterprise Edition 1.11.1中没有.这就是我要做的...获取在定义的日期范围内创建或更新的Magento订单,其状态为"处理".以下是在以前版本中有效的代码,但不在我的代码中:

$orderIds = Mage::getModel('sales/order')->getCollection()
    ->addFieldToFilter('status', 'processing')
    ->addFieldToFilter(array(
        array(
            'attribute' => 'created_at',
            'from' => $fromDate->toString('yyyy-MM-dd HH:mm:ss'),
            'to'   => $toDate->toString('yyyy-MM-dd HH:mm:ss'),
        ),
        array(
            'attribute' => 'updated_at',
            'from' => $fromDate->toString('yyyy-MM-dd HH:mm:ss'),
            'to'   => $toDate->toString('yyyy-MM-dd HH:mm:ss'),
        ),
    ));
Run Code Online (Sandbox Code Playgroud)

这是它生成的SQL,以及产生的错误:

SELECT `main_table`.* FROM `sales_flat_order` AS `main_table`
WHERE (status = 'processing') AND (Array = '')

SQLSTATE[42S22]: Column not found: 1054 Unknown …
Run Code Online (Sandbox Code Playgroud)

php mysql magento

9
推荐指数
1
解决办法
5016
查看次数

Magento Collection过滤功能

处理Magento集合时,addAttributeToFilter()和addFieldToFilter()之间有什么区别?是否与eav_attribute值有关?

编辑:根据http://www.magentocommerce.com/wiki/5_-_modules_and_development/catalog/using_collections_in_magento:

addFieldToFilter($ attribute,$ condition = null)- addAttributeToFilter()的别名

任何人都可以证实吗?

php mysql magento

6
推荐指数
1
解决办法
8678
查看次数

Magento可以与CakePHP集成吗?

Magento可以与CakePHP集成吗?如果我的网站是在CakePHP中开发的.我可以在Magento做包括购物车在内的产品模块吗?

cakephp magento

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

当onclick事件执行异步代码时,如何在新选项卡请求中使用Open?

设置

我已经实现了一个"onclick"方法,它可以异步调用一些第三方代码.它提供了一个回调,他们建议使用一个简单的函数来设置document.location = href,以确保页面只在它们返回方法后发生变化.如果要在同一选项卡中打开链接,这可以正常工作,但如果要在新选项卡中打开,则会发生以下两种情况之一:

问题

  1. 如果您在执行回调函数后单击中键,Ctrl +单击,Shift +单击或Cmd +单击它将在同一选项卡中打开.
  2. 如果右键单击并选择"在新选项卡中打开",则根本不会调用onclick代码.

问题

是否有可能让回调函数对onclick事件返回true(实际上,使整个事件链同步)?或者,您能想到在上面的案例1中保留标准浏览器行为的方法吗?

代码

https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce:

<a href="/product_details?id=P12345" onclick="clicked(); return !ga.loaded;">Product Link</a>

<script>
// Called when a link to a product is clicked.
function clicked() {
  ga('ec:addProduct', {
    'id': 'P12345',
    'name': 'Android Warhol T-Shirt',
    'category': 'Apparel',
    'brand': 'Google',
    'variant': 'black',
    'position': 1
  });
  ga('ec:setAction', 'click', {list: 'Search Results'});

  // Send click with an event, then send user to product page.
  ga('send', 'event', 'UX', 'click', 'Results', {
      'hitCallback': function() { …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous google-analytics callback

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

PHP实例化子类

我想在这里成为一个面向对象的编码器,所以我给自己一些简单的任务.
我构建了一个显示给定目录中所有图像的类.这很好,所以我将该类分成两个类,一个用于读取目录中的文件名并将它们传递给一个数组,另一个用于解析该数组并显示图片.子类中的方法与父类中的方法完全相同(当然除了parent :: for this->).

现在看来,当我实例化子类并调用它的方法时,根本没有任何事情发生.

类别:

class Picfind
{
   public function findPics($dir){
       $files = array();
       $i=0;
       $handle = opendir($dir);
       while (false !== ($file = readdir($handle))){
           $extension = strtolower(substr(strrchr($file, '.'), 1));
           if($extension == 'jpg' || $extension == 'gif' || $extension == 'png'){
                // now use $file as you like
                $i++;
                $files['file' . $i] = $file;
           }
       }
       return $files;
    }
}

class DisplayPics extends Picfind
{

    function diplayPics($dir) 
    {
        echo 'displayPics method called';

        foreach(parent::findPics($dir) as $key => $val) {
            echo …
Run Code Online (Sandbox Code Playgroud)

php class instantiation parent

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

Zend Framework中的简单重写

这似乎是一个非常简单的问题,但我只找到了复杂的答案.我有一个Zend Framework应用程序,需要用户登录.在loginAction()logoutAction()中定义AuthController.我想允许用户通过http://www.example.com/login登录,而不是http://www.example.com/auth/login.

我知道有很多方法可以做到这一点,我考虑过的是:

  1. .htaccess重写
  2. 创建LoginController并将indexAction()重定向到auth/login
  3. 使用Zend_Controller_Router_Rewrite定义自己的路由.

如果可能的话,我宁愿把它排除在#1之外.#2很容易理解,虽然看起来像是一个黑客.它还可能使用一堆5行"Controller"类来混乱代码.我认为#3是要走的路,但我不完全明白如何有效地使用它.我尝试过将Zend_Config与RewriteRouter一起使用虽然我只定义了登录路由,所以每个链接都变为'/ login'(我想我错过了一个默认路由).我在我的Bootstrap.php中做到了这一点,我不确定这是否正确.

我缺少一个简单的方法吗?我错误地使用了#3吗?我应该阅读这方面的教程吗?(我看过Zend文档很好,但我经常发现自己在问'这个代码应该放在哪里:在控制器,模型,引导程序,其他?')

php zend-framework url-rewriting

3
推荐指数
1
解决办法
1877
查看次数

在多维数组中搜索键并返回其路径

我需要在数组中找到一个特定的键,并返回其值和找到该键的路径。例:

$array = array(
  'fs1' => array(
    'id1' => 0,
    'foo' => 1,
    'fs2' => array(
      'id2' => 1,
      'foo2' => 2,
      'fs3' => array(
        'id3' => null,
      ),
      'fs4' => array(
        'id4' => 4,
        'bar' => 1,
      ),
    ),
  ),
);

search($array, 'fs3'); // Returns ('fs1.fs2.fs3', array('id3' => null))
search($array, 'fs2'); // Returns ('fs1.fs2',     array('id2' => 1, ... ))
Run Code Online (Sandbox Code Playgroud)

我已经能够遍历数组以找到正确的键并使用RecursiveArrayIterator(如下所示)返回数据,但是我不知道跟踪当前路径的最佳方法。

$i = new RecursiveIteratorIterator
    new RecursiveArrayIterator($array),
    RecursiveIteratorIterator::SELF_FIRST);
foreach ($i as $key => value) {
  if …
Run Code Online (Sandbox Code Playgroud)

php arrays iterator multidimensional-array

3
推荐指数
1
解决办法
1822
查看次数