小编Ahm*_*med的帖子

购物车价格规则的类层次结构

Mage_SalesRule_Model_Validator有一个对象salesrule/rule_collection,并且该对象调用validate类 的函数Mage_SalesRule_Model_Rule_Condition_Product_Found,我不明白的是对象是如何salesrule/rule_collection与Found类相关的,如果我们向该类添加任何其他函数并尝试访问它将抛出一个异常未定义函数,我只是想了解幕后发生的事情

Mage_SalesRule_Model_Rule_Condition_Product_Found扩展的类Mage_SalesRule_Model_Rule_Condition_Product_Combine,但是当从process功能 Mage_SalesRule_Model_Validator称为它调用validate的函数FoundMage_SalesRule_Model_Validator对象调用process

try {
   $validator = Mage::getModel('module/validator')
                    ->init($customer->getWebsiteId(), $customerGroupId);
} catch (Exception $e) {
   Mage::log('Exception: ' . $e . ' in ' . __CLASS__ . ' on ' . __LINE__);
}
$v  = $validator->process($quote);
Run Code Online (Sandbox Code Playgroud)

并且其process功能Mage_SalesRule_Model_Validator调用了类的validate功能Found

public function process($_quote) 
{
         $quote           = $_quote;
         $customerSession = Mage::getSingleton('customer/session');
         foreach …
Run Code Online (Sandbox Code Playgroud)

php magento magento-1.7

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

单个提交中的Magento多个数据库事务

我知道如何在zend框架中做到这一点

$db->beginTransaction();

try {
   $db->query(...);
   $db->query(...);
   $db->query(...);
   .
   . 
   .
   $db->commit();
} catch (Exception $e) {
    $db->rollBack();
}
Run Code Online (Sandbox Code Playgroud)

但是我想用magento模型来做这件事

$db->beginTransaction();

try {
   $modelOne   = Mage::getModel('modulename/table1');
   $modelTwo   = Mage::getModel('modulename/table2');
   $modelThree = Mage::getModel('modulename/table3');

   $db->query($modelOne);
   $db->query($modelTwo);
   $db->query($modelThree);
   .
   . 
   .
   $db->commit();
} catch (Exception $e) {
    $db->rollBack();
}
Run Code Online (Sandbox Code Playgroud)

如果他们中的任何人未能保存,那么所有人都应该回滚

谢谢

php zend-framework magento

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

SQL SERVER:选择两个日期之间缺少的月份(同年)

我试图获得同一年没有交易的所有月份(如果不可能有不同的年份)

这是我在两个日期之间进行交易的查询,但不知道如何只选择缺少数据库中的事务的月份

SELECT * 
FROM Installment 
WHERE OrderId = 1 
      AND InstallmentDate 
            BETWEEN cast('8/02/2014' as date) 
                AND cast('12/25/2014' as date)

InstallmentId   OrderId CustomerKey InstallmentAmount   InstallmentDate
    18             1      INS-1          3000           2014-09-03
    92             1      INS-1          3000           2014-10-13
   137             1      INS-1          3000           2014-11-05
Run Code Online (Sandbox Code Playgroud)

在这种情况下,缺少第12个月和第8个月的记录,如何使用SQL Server查询获得此记录?

更新

select yymm.yy, yymm.mm
from (select distinct year(InstallmentDate) as yy, month(InstallmentDate) as mm
  from Installment
  where InstallmentDate BETWEEN '2014-09-02' and '2015-01-15'
 ) yymm left join
 Installment i
 on i.OrderId = 1 and
    year(i.InstallmentDate) = yymm.yy and
    month(i.InstallmentDate) = …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

获取当前 url 并将其中的一部分作为变量传递

我需要编写优化的 .htaccess 规则。我是这样写的,他们正在工作

RewriteEngine on
RewriteRule ^city1-name-in-url/$ products.php?city=city1-name-in-url
RewriteRule ^city2-name-in-url/$ products.php?city=city2-name-in-url
RewriteRule ^city3-name-in-url/$ products.php?city=city3-name-in-url
RewriteRule ^city4-name-in-url/$ products.php?city=city4-name-in-url
Run Code Online (Sandbox Code Playgroud)

这些规则的网址是 http://www.example.com/global/city1-name-in-url/

我必须为 800 个城市编写这些规则,这使网站变慢。我想知道是否有办法获取部分网址并在RewriteRule

像这样的例子

如果网址: http://www.example.com/global/any-city-name/

RewriteRule ^any-city-name/$ products.php?city=any-city-name

这个有可能?获取 url 之后的部分,global然后在重写规则中使用它。

regex apache .htaccess mod-rewrite

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

动态使用AddressOf

我在运行时使用以下代码添加按钮:

Private Sub AddNewButton(ByVal btnName As String, ByVal btnText As String)
    Dim myButtons As New VIBlend.WinForms.Controls.vButton

    With myButtons
        .Size = New Size(200, 60)
        .Visible = True
        .Location = New Point(55, 33)
        .Text = btnText
        .Name = btnName
        .Font = New Font("Times New Roman", 12, FontStyle.Bold, GraphicsUnit.Point)
    End With

    AddHandler myButtons.Click, AddressOf btnName & "_Click"

    btnsPanel.Controls.Add(myButtons)

End Sub
Run Code Online (Sandbox Code Playgroud)

代码工作正常,但Vb.net不允许我使用可变分配AddressOf子过程AddressOf btnName & "_Click"AddressOf operand must be the name of method,问题是我不知道哪一个按钮将被创建,其过程是要打电话,我要分配AddressOf程序使用变量是否可能或我还有其他选择吗?

vb.net delegates addressof visual-studio-2012

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