标签: block

在Magento中创建一个新块

我昨天在Magento的主页上问了这个问题静态块,它回答了我关于将cms /块挂钩到现有块的问题(在该示例中为内容).

但现在我想知道如何创建自己的块.

我在.phtml模板中有这个:

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

这在我的cms.xml文件中

<reference name="home_flash">
  <block type="cms/block" name="home-page-flash" before="content">
    <action method="setBlockId"><block_id>home-page-flash</block_id></action>
  </block>
</reference>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

我也曾尝试创建自己的块类型,(通过复制面包屑声明)在page.xml文件:

<block type="page/html_home_block" name="home_block" as="home_block" template="page/template/home_block.phtml"/>
Run Code Online (Sandbox Code Playgroud)

该文件存在但未呈现.

但是当我像这样引用块时:

<block type="page/html_breadcrumbs" name="home_block" as="home_block" template="page/template/home_block.phtml"/>
Run Code Online (Sandbox Code Playgroud)

它使得我的家乡块模板,但原来的CMS /块不重视它.

希望所有的不同的情况表明正在发生的事情,并强调在我的知识缺口不够好,有人来回答,我必须为"注册"我的新"home_block"类型的地方?

php xml layout block magento

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

在 Ruby 中访问传递的块

我有一个接受块的方法,让我们称之为外部。它依次调用接受另一个块的方法,将其称为内部方法。

我希望发生的是外部调用内部,传递给它一个调用第一个块的新块。

这是一个具体的例子:

class Array
  def delete_if_index
    self.each_with_index { |element, i| ** A function that removes the element from the array if the block passed to delete_if_index is true }
  end
end

['a','b','c','d'].delete_if_index { |i| i.even? }
  => ['b','d']
Run Code Online (Sandbox Code Playgroud)

传递给 delete_if_index 的块被传递给 each_with_index 的块调用。

这在 Ruby 中是否可行,更广泛地说,我们对接收它的函数中的块有多少访问权限?

ruby block

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

用块链接的Ruby方法 - 容易混淆的语法错误

所以,我认为我很聪明,我添加这样的方法Object:

class Object
  def apply_if(cond)
    if cond
      yield self
    else
      return self
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这(我认为)允许我有条件地向方法链添加位,这简化了我的ActiveRecord查询操作.但它给出了语法错误,我可以将其简化为以下代码:

data = [1,2,3,4,5]
results = data.
  apply_if(true and false) do |q|
    q + [0,0]
  end
Run Code Online (Sandbox Code Playgroud)

同样这个错误:

results = data.apply_if(true and false){|q| q + [0,0]}
Run Code Online (Sandbox Code Playgroud)

但这有效:

results = data.apply_if ((true and false)) {|q| q + [0,0]}
Run Code Online (Sandbox Code Playgroud)

同样如下:

results = data.apply_if (true && false) {|q| q + [0,0]}
Run Code Online (Sandbox Code Playgroud)

我看到这些差异都与运算符优先级有关,但是如何在一对括号内的运算符的优先级重要?

为什么这里会出现语法错误?我没有看到任何可能的语法歧义,并且这种方法在形状上与Array#reduce方法相同.

我在这里尝试了许多组合 - 带有调用的显式块参数,方法定义中的各种类型的显式优先级.使用lambda而不是块工作正常,但显然太笨重,不能用于我的目的.

ruby syntax block method-chaining

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

Ruby yield示例解释?

我正在使用Ruby进行SaaS课程.在练习中,我被要求通过使用迭代器,块和产量来计算两个序列的笛卡尔积.

我最终得到了这个,通过纯粹的猜测和错误,它似乎工作.但我不确定如何.我似乎理解基本块和产量用法,但是这个?一点也不.

class CartProd
  include Enumerable
  def initialize(a,b)
        @a = a
        @b = b
  end
  def each
        @a.each{|ae|
                @b.each{|be|
                        yield [ae,be]
                }
        }
  end
end
Run Code Online (Sandbox Code Playgroud)

对我这样的菜鸟的一些解释好吗?

(PS:我将所需的课程名称更改为CartProd,因此人们通过Google搜索功能无法轻松找到答案)

ruby yield block enumerable

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

C/ObjC:如何对单元进行单元测试?

根据这个Stackoverflow帖子:Objective-C库中的回调选择器或块,

块似乎是ObjC的未来.然而,就像匿名函数一样,块感觉更像是"起草"一个实现.此外,由于其"嵌入式"性质,我担心过度使用它们会破坏单元测试或"可测试"OOP意义上的模块化.

我找不到关于如何测试块以及如何协调块和常规方法的测试的指南.这个主题有很好的资源吗?

unit-testing block objective-c

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

在Java方法中使用大括号会降低性能吗?

似乎双括号初始化增加了开销.

在方法中使用大括号是否也会降低性能?

例如.

public class DoIReducePerformanceToo {

    public void aMethod() {

        {
           // Is it a bad idea to use these?
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

我看了一下Java的语法,似乎这被归类为一个块:

Block: 
    { BlockStatements }

BlockStatements: 
    { BlockStatement }

BlockStatement:
    LocalVariableDeclarationStatement
    ClassOrInterfaceDeclaration
    [Identifier :] Statement
Run Code Online (Sandbox Code Playgroud)

但我不确定语法双括号初始化的位置在哪里.

我的问题:在方法中使用块语句会降低Java中的性能吗?这些块与双支撑初始化具有相同的性质吗?

编辑:

内课即时:

ClassCreatorRest: Arguments [ClassBody]

ClassBody: 
    { { ClassBodyDeclaration } }
Run Code Online (Sandbox Code Playgroud)

java performance block

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

什么是静态代码块?

我想问一下javap除了传递给它的类的公共字段和方法之外还显示什么。

我正在查看一个只有一个静态变量的类文件。正如预期的那样,javap 将静态变量和类构造函数显示为输出,但它也显示如下内容:

static {};
Run Code Online (Sandbox Code Playgroud)

这条线是什么意思?

java static block javap

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

如何检查字符串是否为rgb十六进制字符串

我试图创建一种校对命令控制台输入的方法,并检查以确保该字符串是一个rgb十六进制字符串.(例如:#FAF0E6)目前我正在尝试:除了:阻止.

def isbgcolor(bgcolor):
    #checks to see if bgcolor is binary
    try:
        float(bgcolor)
        return True
    except ValueError:
        return False
Run Code Online (Sandbox Code Playgroud)

我也试过使用.startswith('#').我已经看到了如何用Java编写这个函数的例子,但我仍然是初学者和Python我所知道的.救命?

python string hex function block

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

使内联块在顶部而不是底部对齐

我解释这个问题的最佳方法是使用以下图像.

这个: 在此输入图像描述

需要看起来像这样: 在此输入图像描述

我相信影响这两个容器对象(工作结果和结果查看器)的唯一代码是以下css片段.

.ItemCollection {
    display: inline-block;
    width: 45%;
}
Run Code Online (Sandbox Code Playgroud)

这是一个非常简单的css更改还是我需要添加更深入的编码来实现这一目标?

html css inline block

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

nil __weak self - 为什么会发生?

我想在块中使用弱自我,但是在块中这个 weakSelf 变为 nil

刚刚创建,在阻止之前(尝试使用不同的变体) - 看起来一切正常

在此处输入图片说明

但后来在块中 - 每个变体都为零

在此处输入图片说明

做错了什么?谁能解释一下?

编辑

SPHVideoPlayer *videoPlayer = [[SPHVideoPlayer alloc] initVideoPlayerWithURL:urlToFile];
[videoPlayer prepareToPlay];
Run Code Online (Sandbox Code Playgroud)

初始化

#pragma mark - LifeCycle

- (instancetype)initVideoPlayerWithURL:(NSURL *)urlAsset
{
    if (self = [super init]) {
        [self initialSetupWithURL:urlAsset];
    }
    return self;
}

- (void)initialSetupWithURL:(NSURL *)url
{
    NSDictionary *assetOptions = @{ AVURLAssetPreferPreciseDurationAndTimingKey : @YES };
    self.urlAsset = [AVURLAsset URLAssetWithURL:url options:assetOptions];
}
Run Code Online (Sandbox Code Playgroud)

还有使用块的方法

- (void)prepareToPlay
{
    __weak typeof(self) weakSelf = self;
    __weak SPHVideoPlayer *weakSealf2 = self;
    NSArray *keys = @[@"tracks"];
    [self.urlAsset loadValuesAsynchronouslyForKeys:keys completionHandler:^{ …
Run Code Online (Sandbox Code Playgroud)

null block objective-c weak ios

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