小编Adr*_*eil的帖子

warden回调应该放在rails应用程序中的哪个位置?

我对铁杆比较陌生.我有Devise设置,并希望在用户登录后运行一些回调代码.

查看Warden wiki页面,我可以使用"after_set_user"回调来执行此逻辑,例如:

Warden::Manager.after_set_user do |user, auth, opts|
  unless user.active?
    auth.logout
    throw(:warden, :message => "User not active")
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,我不确定我应该在哪里存储这些东西.我的第一个想法是我可以把它放在config/initializers/devise.rb中.那是对的吗?在config目录中放置本质上是控制器代码的感觉并不合适.

ruby-on-rails devise warden

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

在HAML模板中使用:coffescript过滤器的性能影响?

所以HAML 4包含一个coffeescript过滤器,它允许我们爱好咖啡的人们做这样的整洁的事情:

- word = "Awesome."

:coffeescript
  $ ->
    alert "No semicolons! #{word}"
Run Code Online (Sandbox Code Playgroud)

我的问题:对于最终用户来说,这比使用等效:javascript过滤器慢吗?使用coffeescript过滤器是否意味着coffeescript将在每次加载页面时编译为javascript(这显然会造成性能灾难),或者这只会在应用程序启动时发生一次?

haml ruby-on-rails coffeescript

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

Twig有一个null coalesce运算符吗?

我正在使用Twig PHP模板引擎.

是否有可用的运算符输出第一个非空值(合并)?

例如(使用PHP伪代码):

{{ title ?: "Default Title" }}
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做,但有点啰嗦:

{% if title %}{{ title }}{% else %}{{ "Default Title" }}{% endif %}
Run Code Online (Sandbox Code Playgroud)

coalesce twig

8
推荐指数
3
解决办法
4033
查看次数

是否有充分的理由在ExpressionEngine模板中使用PHP?

我听说过这个问题很复杂.我知道当你坚持在模板中简单地启用PHP并解决问题时,这很容易.但是,它几乎总是会引入潜在的安全问题,并使您的模板混乱.

在使用PHP的大多数情况下,在PHP中编写一个简单的插件来实现您的需求会更加清晰.

我的问题是:在ExpressionEngine模板中使用PHP是否可以接受?或者这被认为是不好的做法?如果您是继承我编码的网站的开发人员,如果您在模板中看到PHP,您会感到畏缩吗?

expressionengine

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

如何调整ExpressionEngine搜索速率限制?

我使用标准的搜索模块标签为ExpressionEngine网站添加了搜索功能.但是,我偶尔会遇到此错误消息:

您只能每15秒搜索一次.

这似乎只有在我退出时才会发生.

我希望减少搜索之间所需的时间.我该怎么调整呢?

expressionengine

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

omn​​ipay paypal表示不归还地址

我在这里使用omnipay设置:https://github.com/adrianmacneil/omnipay来处理paypal快速结账.

该过程工作正常,用户被重定向到paypal - >他们登录并选择支付 - >他们返回我的网站,此时我捕获付款.

我遇到的问题是我需要将他们输入Paypal的地址作为他们的账单/送货地址.

要将用户发送到paypal,我有以下内容:

$gateway = GatewayFactory::create('PayPal_Express');
$gateway->setUsername('XX-USERNAME_XX');
$gateway->setPassword('XX_PASSWORDXX');
$gateway->setSignature('XX_SIG_XX');
$gateway->setTestMode(true);

$response = $gateway->purchase(
    array(
        'cancelUrl'=>'http://www.XXX.co.uk/',
        'returnUrl'=>'http://www.XXX.co.uk/paypalexpress_confirm',
        'amount' =>  $totalamount,
        'currency' => 'GBP'
    )
)->send();

$response->redirect(); 
Run Code Online (Sandbox Code Playgroud)

当用户返回时,我有以下内容:

$gateway = GatewayFactory::create('PayPal_Express');
$gateway->setUsername('XX-USERNAME_XX');
$gateway->setPassword('XX_PASSWORDXX');
$gateway->setSignature('XX_SIG_XX');
$gateway->setTestMode(true);

$response = $gateway->completePurchase(
    array(
        'cancelUrl'=>'http://www.XXX.co.uk/',
        'returnUrl'=>'http://www.XXX.co.uk/paypalexpress_confirm',
        'amount' =>  $totalamount,
        'currency' => 'GBP'
    )
    )->send();

    echo $responsemsg=$response->getMessage(); 

    echo '<br><br><br>';
    $data = $response->getData(); 
    print_r($data);
Run Code Online (Sandbox Code Playgroud)

响应消息或原始数据中的任何内容都不包含客户地址.

有没有人得到这个工作,因为我正在努力,这是完成交易的最后一步.

codeigniter paypal ci-merchant omnipay

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

如何使用条件来检查通道中是否有任何条目?

我有一个条件外的频道条目标签,应该确定一个频道是否有1.条目,2.过期条目,3.封闭条目:我试过{if channel_short_name == "news"} 但不知何故,无论条目是关闭还是过期,它都会返回包装内容.我有条件的原因是在频道标签之外是因为我不想重复h2标签.

{if there are a displayable entries in the "news" channel, display this whole package.}
   <h2>News</h2>
   <hr />
   {exp:channel:entries channel="news" limit="2"}
      <div class="entry panel">
         <h3>{title}</h3>
         {news_text}
         {if news_full OR news_bild}
            <div id="{entry_id}" class="toggleDiv">
               {news_full}
               {exp:ce_img:single src="{news_bild}" max_width="346" smart_scale="yes" alt="{name_orig}"}
            </div>
            <p><a class="show_hide" rel="#{entry_id}" href="#">Mehr…</a></p>
        {/if}
      </div>
   {/exp:channel:entries}
{/if}
Run Code Online (Sandbox Code Playgroud)

这让我想到另一个问题:

是否可以将过期的条目设置为"已关闭"?

conditional expressionengine

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

你如何在makefile中中止shell命令错误?

我正在尝试编写一个makefile来打包一些PHP脚本.我也想它来检查语法错误(使用内置的PHP皮棉工具)建立最终的zip文件之前,为了防止滑倒意外的错误.

到目前为止我有

all: dist
clean:
    rm -f output.zip
dist: clean
    for i in `find . -name "*.php"`; do php -l $$i; done
    zip -r output.zip src -x "*/.*" "*/tests*"
Run Code Online (Sandbox Code Playgroud)

这是有效的,但如果有PHP错误我希望它打破并且不继续构建zip文件(出于显而易见的原因).目前,他们可能只是在成功的lint运行和zip文件的输出页面中丢失.

我是以正确的方式来做这件事的吗?我应该使用make循环而不是shell循环吗?如何让make中止shell命令错误?

php makefile

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

选择 ID 匹配列表之一的位置

我只是在学习 MYSQL 查询的来龙去脉,但我遇到了一个项目的障碍,我很感激一些帮助达成解决方案。

我有两个表,第一个包含对条目(entry_id)和相关修改(mod_id)的引用以及它所指的修改类别(mod_name)

表 1:exp_store_product_options

mod_id      entry_id        mod_name
3           2919            COLOR
4           2311            SIZE
5           2311            COLOR
6           3301            COLOR
Run Code Online (Sandbox Code Playgroud)

第二个表包含两个相关字段,mod_id 和 opt_name

表 2:exp_store_product_modifiers

mod_id      opt_name
3           BLACK
4           EU 44
5           BROWN
6           BROWN
Run Code Online (Sandbox Code Playgroud)

我想要实现的是列出所有 DISTINCT opt_name 字段(通过 mod_id 上的连接)对应于我想作为一个整体传入的 entry_ids。

这是到目前为止我想出的代码,我相信除了要求我遍历每个条目 id 的查询之外,它还会做我需要的事情,并且在 DISTINCT 要求上失败,因为对于每次迭代,一切都是不同的. ({sale_products} 标签来自 ExpressionEngine,将在解析过程中循环,为我提供与此页面相关的 entry_id 结果列表

SELECT DISTINCT opt_name
FROM exp_store_product_options
INNER JOIN exp_store_product_modifiers
ON exp_store_product_options.product_mod_id=exp_store_product_modifiers.product_mod_id
{sale_products parse='inward'}entry_id = '{entry_id}' OR{/sale_products}
AND mod_name = 'SIZE'
Run Code Online (Sandbox Code Playgroud)

================================================== ==

尸检

以防万一其他人试图在 ExpressionEngine 的 expresso …

mysql expressionengine e-commerce expresso-store

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

是否有一个简单的ExpressionEngine联系表单插件,它支持内联错误处理?

我正在使用ExpressionEngine创建联系表单,但是内置的联系表单不支持safecracker样式的内联错误消息.

是否有任何插件可以改进标准EE联系表单,添加内联错误处理或AJAX验证等?实施简单联系表格的最佳方式是什么?

由于这是一个简单的联系人电子邮件表单,我不需要表单插件的全部功能 - 只是一个很好的表单,我可以模板发送电子邮件.

expressionengine

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

如何在ExpressionEngine模板中访问主机名

在ExpressionEngine模板中访问HTTP主机名的最简单方法是什么(不需要在模板中使用PHP).

是否已经创建了一个插件来执行此操作,还是应该使用某种全局变量?

如果有一种方法可以访问ExpressionEngine模板中的其他HTTP服务器变量,则可以获得奖励积分.

expressionengine

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

如何对ExpressionEngine {reverse_related_entries}进行分页

我很惊讶我以前没碰过这个,或者至少我忘记了我是如何工作的.

我有一个标准的EE关系领域.在这种情况下,我有一个"产品"频道,每个产品属于"设计师"频道中的一个条目.

我显然想要一个页面列出单个设计师的所有产品.我的第一次尝试看起来像这样:

{exp:channel:entries channel="designers" url_title="{segment_3}" limit="1"}

    {reverse_related_entries channel="products" limit="15"}
        {snippet_product_grid}
        {snippet_paginate}
    {/reverse_related_entries}

{/exp:channel:entries}
Run Code Online (Sandbox Code Playgroud)

根据EE文档中的轶事证据,您无法对反向相关条目进行分页.那么解决方案是什么?有没有办法轻松获取所有产品条目ID,给定url_title一个设计师?或者我是否必须使用SQL?

有什么方法可以使用Stash插件解决这个问题吗?

expressionengine

0
推荐指数
2
解决办法
813
查看次数

CartThrob中的优惠券代码字段在哪里?

CartThrob文档的此页面上列出了coupon_code变量:http://cartthrob.com/docs/tags_detail/coupon_info/index.html#coupon_code

这个变量的确切数据来自何处?默认优惠券渠道上没有"优惠券代码"字段可以设置.

有任何想法吗?

expressionengine cartthrob

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