标签: smarty2

Smarty获取var的子字符串,其中strpos为start,strlen为end

我在smarty中遇到格式化变量问题.我想知道最好的方法是什么.基本上我有一个字符串"ABC | DEFGH"我想要聪明地获得"DEFGH"的子串我将如何去做这个?

{$var|substr:strpos:"|":strlen}
Run Code Online (Sandbox Code Playgroud)

不起作用

php smarty smarty2

9
推荐指数
2
解决办法
3万
查看次数

如何检查Smarty 2中是否存在文件

如何检查Smarty 2中是否存在文件?我的意思是这样的:

{assign var="module_js" value="/js/modules/{$module}.js"}
{if file_exists($module_js)}
    <script type="text/javascript" src="{$module_js}"></script>
{/if}
Run Code Online (Sandbox Code Playgroud)

smarty include smarty2

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

替代动态JavaScript的Smarty {literal}标签

我有以下Smarty模板,其中显示了整个生成一些JavaScript的模板.

正如您所看到的,我在整个代码片段中打开{literal}和关闭{/literal}标记,这看起来有点混乱和不守规矩.是否有更好的方法来编写这个代码,如果将来必须更改代码,它将显得更整洁,更易于管理?

{literal}
<script type="text/javascript">
var _roi = _roi || [];

// Base Order Details 
_roi.push(['_setMerchantId', '{/literal}{$merchant_id}{literal}']); 
_roi.push(['_setOrderId', '{/literal}{$order_id}{literal}']);
_roi.push(['_setOrderAmount', '{/literal}{$order_total}{literal}']);
_roi.push(['_setOrderNotes', '{/literal}{$order_notes}{literal}']);

// Line Items
{/literal}
{foreach from=$line_items item=line name=items}
    {literal}
    _roi.push(['_addItem', 
    '{/literal}{$line.sku}{literal}',
    '{/literal}{$line.title}{literal}',
    '{/literal}{$line.category_id}{literal}',
    '{/literal}{$line.category}{literal}',
    '{/literal}{$line.price}{literal}',
    '{/literal}{$line.quantity}{literal}'
    ]);
    {/literal}
{/foreach}
{literal}

// Submit Transaction to SDC ROI tracker
_roi.push(['_trackTrans']);
</script>
<script type="text/javascript" src="{/literal}{$url}{literal}"></script>{/literal}
Run Code Online (Sandbox Code Playgroud)

javascript php analytics smarty smarty2

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

获得第一个Smarty Array-Element

我怎样才能获得第一个智能数组元素?

其实我知道怎么做...但我有以下问题.

我得到一个看起来像这样的数组

[DATA] => Array
        (
            [12] => Array
                (
                    [content] => foobar
                )

            [1] => Array
                (
                    [content] =>  
                )

            [2] => Array
                (
                    [content] =>  
                )

            [3] => Array
                (
                    [content] =>  
                )

 //this is a snipit of {$myVar|@print_r}
Run Code Online (Sandbox Code Playgroud)

这一直持续到 [11]

由于某种原因,没有[0][12]在这个位置.

我不知道这是否总是12,但我知道它总是在第一个位置.

我不能对这个数组进行排序,因为有另一个数组具有相同的排序顺序,我必须保留此顺序以便以后输出.

有没有办法选择第一个元素而不使用array[0]array.0

信息:我正在开发的项目使用Smarty 2

编辑

  • 如果我知道如何:)我会重新索引数组:)

由于现在几个小时后回答,我临时解决了我的问题.

为了解决这个问题,我{php}在smarty中打开,得到了我需要的数组,将它分成两个数组(当然重新索引它们就这样开始0).比我0 从每个数组临时保存pos 到临时数组.0用下划线(_)覆盖orig ,0然后将它们多重排序,将原始值放回并将它们传递回$this->_tpl_vars非常复杂的方式.(全部在tpl内)

{php}
    // get …
Run Code Online (Sandbox Code Playgroud)

arrays smarty smarty2

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

smarty将字符串转换为数字

我需要做出决定:

{math equation="x/y" x=$x y=$y} // $x = '2', $y = '3'
Run Code Online (Sandbox Code Playgroud)

如何在Smarty中完全将字符串转换为数字,因为我无法访问CMS的专有代码?感谢名单!

UPD:Smarty版本:2.6.18

php smarty smarty2

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

在Smarty 2中循环

我想知道是否可以使用Smarty 2做类似于循环的操作.

我想要这样的东西:

<select>
{for $i from 1950 to 2000 }
   <option value="{$i}">{$i}</option>
{/for}
</select>
Run Code Online (Sandbox Code Playgroud)

我应该使用什么功能?

smarty2

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

替换 smarty 模板中的 php file_get_contents?

我需要file_get_contents()在 smarty tpl 文件中使用 PHP 。我不能在 PHP 中使用它并将它分配给 smarty 模板。因为 URL 是通过 smarty 模板文件中的循环动态生成的。所以我使用 smarty 插件功能来完成这项任务。但我想知道是否有任何方法可以直接在模板文件中使用它,而不是从插件文件中解析它。

我附上了我用来实现这个功能的插件代码。请任何人让我知道如何直接在 smarty tpl 文件中使用它。

function smarty_function_getTitle($params)
{
if ($params['id']) {
    $content = file_get_contents("http://youtube.com/get_video_info?video_id=".$params['id']);
    parse_str($content, $ytarr);
    return $ytarr['title'];
}
}
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码在 smarty 模板中调用它:

{getTitle id=$videoId}
Run Code Online (Sandbox Code Playgroud)

欢迎提出建议!

php smarty youtube-api file-get-contents smarty2

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