标签: block

Magento Layout XML内容更新未加载模板

所以我一直在互联网上搜索几个小时,我无法弄清楚这一点.

我写了一个自定义Magento模块,它有一个自定义索引页面,在一个Magento安装(1.5.0.1)上可以正常工作,但在另一个(1.5.1.0)上没有.问题是当我转到模块的主URL(domain.com/module)时,我的自定义模板文件没有包含在内.

到目前为止,我知道这个:

  • 构建页面时包含Layout XML(因为如果我故意弄乱语法,我会在system.log中收到错误)
  • 如果我包含var_dump($ this-> getLayout() - > getUpdate() - > getHandles()); 在我的IndexController.php中我可以看到:
    1)我的IndexController被调用,所以必须正常
    2)我的模块的句柄被调用,并且具有我在布局XML文件中指定的完全相同的名称.
  • 不调用模板文件.我知道因为它应该抛出一个Magento异常(如果是为了测试目的,我在该模板文件中的一个对象中包含了一个不存在的函数调用).
  • 如果我在布局XML文件中将<block type ="identifier/action"更改为<block type ="core/template",包含模板文件,但当然它将无法正常工作,因为块函数来自自定义模块没有定义.

  • 我完全不知道接下来会在哪里看,所以任何帮助都会非常感激.我知道它必须是简单的东西,因为它在其他Magento安装上完美运行......

    xml layout reference block magento

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

    使Ruby块返回一个数组?

    我已经制作了一个类似DSL的小程序,用于向阵列添加饮料.这是使用instance_eval&block创建快速程序的一个非常基本的例子.

    这是程序:

    class Drinks
      def initialize(&block) # Initialize drinks
        @drinks = []
        instance_eval &block
      end
    
      def drink(d)
        @drinks << d
      end # Add drink
    
      def all_drinks
        puts @drinks
      end
    
    end
    
    add_drinks = Drinks.new do
      drink "water"
      drink "soda"
      drink "juice"
    end
    
    add_drinks.all_drinks
    
    Run Code Online (Sandbox Code Playgroud)

    计划是add_drinks自动返回,所以你不必使用add_drinks.all_drinks.这可能吗?谢谢.

    ruby dsl block

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

    django模板继承和assingment_tag

    我想写一个赋值标签并加入 app/templatetags/app_extras.py

    @register.assignment_tag
    def get_obj (objid) :
        return get_object_or_404(MyModel, id=objid)
    
    Run Code Online (Sandbox Code Playgroud)

    并在模板中

    {% extends "index.html" %}
    
    {% load app_extras %}
    {% get_obj 1 as obj %}
    
    {% block title %}{{ obj.name }}{% endblock %}
    {% block content %}{{ obj.description }}{% endblock %}
    
    Run Code Online (Sandbox Code Playgroud)

    变量obj在块中不可见.

    如果我写

    ...
    {% load app_extras %}
    
    {% block title %}{% get_obj 1 as obj %}{{ obj.name }}{% endblock %}
    ...
    
    Run Code Online (Sandbox Code Playgroud)

    obj在块中定义,但在"内容"块中未定义.

    如何在块中使变量可用?

    django inheritance extends block

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

    在Vim中更改矩形文本

    Vim中,可以使用I命令一次插入多行文本,如答案Stack Overflow问题如何在vi/Vim中的多行选择开头插入文本?.但是,这仅适用于实际插入.如果我想同时删除一些字符,这不起作用.

    例如,我想改变

    000 one
    000 two
    000 three
    000 four
    
    Run Code Online (Sandbox Code Playgroud)

    111 one
    111 two
    111 three
    000 four
    
    Run Code Online (Sandbox Code Playgroud)

    我会这样做,通过调用^V3ggllx从前三行删除000然后^V3ggI111^[将111插入相同的位置,这对我来说似乎很尴尬.(上面的意思是,进入可视块状模式,在前三行中标记所有零并删除它们.然后再次进入可视块状模式,标记前三行的开始,进入多行插入模式,插入111并退出Esc.)

    必须有更好的方法来做到这一点.最烦人的事情是我必须在删除零后再次选择该区域.如果在删除后仍然选择了该区域,那就没问题了.此外,如果可以在多个插入模式下删除字符,也可以.但是如果我试试这个,只会改变第一行.

    vim insert block

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

    多线如果是红宝石

    我知道其他地方已经触及了这些问题,但我对if elseruby中多行(块?)语句的正确语法略感不安.

    举个例子:

    if condition then
      do something
      do somethingelse
      do yetanotherthing
      done
    else
      do acompletelyunrelatedthing
    done
    
    Run Code Online (Sandbox Code Playgroud)

    我知道then如果使用多行,则需要声明,但是doneelse必要之前是否需要?这似乎会脱离if...else上下文.当我这样做时,done我得到:

    syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'

    当我不包括它时,我得到:

    syntax error, unexpected keyword_else, expecting keyword_end

    ruby if-statement block

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

    阻止请求特定网址的IP地址

    我在服务器上收到的来自不同IP地址的请求太多了.我发现,看着apache access.log,所有这些ip地址都在请求一个特定的文件(teXeFe.php).我想阻止访问所有这些IP地址.我该怎么做?

    iptables block ip-address

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

    Ruby中的块参数与块本地参数

    我不明白以下两个代码示例之间的区别在哪里.第一个示例具有一个块参数和一个块本地参数.第二个有两个块参数.我知道 - 块和块本地参数 - 都有自己的范围.但两者之间有什么区别?

    x = 10
    5.times do |y; x|
    x = y
    puts "x inside the block: #{x}"
    end
    
    puts "x outside the block: #{x}" # <-- gives 10
    
    Run Code Online (Sandbox Code Playgroud)

    x = 10
    5.times do |y, x|
    x= y
    puts "x inside the block: #{x}"
    end
    
    puts "x outside the block: #{x}" # <-- gives also 10
    
    Run Code Online (Sandbox Code Playgroud)

    ruby block

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

    删除最近查看的magento内容

    我正在尝试从主页中删除"最近查看过的",但我不知道该块的调用位置.我试图删除,reports.xml但块留在那里.然后我试图删除所有代码home_product_viewed.phtml并且它工作,但我不想删除代码.我只想删除对该文件的调用,但我不知道该文件的调用位置.

    php block magento

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

    yield如何访问传递给方法的块?

    产量似乎既不是对象也不是方法.它是什么?它如何访问作为方法参数传递的块?

    ruby yield block

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

    Ruby - 为什么使用Block作为参数?

    我在ruby中理解Blocks vs Procs时遇到了麻烦.我得到一个基本的想法,即proc是一个保存为对象的方法,你可以反复调用,而不必一遍又一遍地继续编写相同的代码行.

    我的麻烦在于接受块作为方法中的参数.

    作业问题非常简单.

    编写一个接受块作为参数的方法,并反转字符串中的所有单词.

    以下是他们正在寻找的答案.

    def reverser(&prc)
      sentence = prc.call
      words = sentence.split(" ")
      words.map { |word| word.reverse }.join(" ")
    end
    
    Run Code Online (Sandbox Code Playgroud)

    我有两个问题 -

    1 你怎么称呼这种方法,因为我放了

    print reverser("Hello") 
    
    Run Code Online (Sandbox Code Playgroud)

    我得到一个错误"错误的参数数量(给定1,预期为0)"

    其次,为什么不写下面的方法呢?编写一个占用块的方法有什么好处?

    def reverser(string)
      string.split.map{|x| x.reverse}.join(" ")
    end 
    
    Run Code Online (Sandbox Code Playgroud)

    ruby block proc

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

    标签 统计

    block ×10

    ruby ×5

    magento ×2

    django ×1

    dsl ×1

    extends ×1

    if-statement ×1

    inheritance ×1

    insert ×1

    ip-address ×1

    iptables ×1

    layout ×1

    php ×1

    proc ×1

    reference ×1

    vim ×1

    xml ×1

    yield ×1