2011-11-22 23 views

回答

4

不,没有EE标签可以做到这一点。这将需要你创建你自己的插件,扩展或模块。但这很简单。

我的建议是创建一个plugin

在您的expressionengine/third_party文件夹中创建一个名为​​的文件夹。
在该文件夹中创建一个名为pi.guid.php,内容如下文件:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

$plugin_info = array(
    'pi_name'  => 'Uniqid', 
    'pi_version'  => '0.1', 
    'pi_author'  => 'John Doe', 
    'pi_author_url'  => 'http://example.org/', 
    'pi_description' => 'Returns uniqid() with parameters', 
    'pi_usage'  => Guid::usage() 
); 


class Guid { 

    public function __construct() 
    { 
     $this->EE =& get_instance(); 
    } 

    public function uniqid() 
    { 
     $prefix = $this->EE->TMPL->fetch_param('prefix'); 
     $more_entropy = (strtolower($this->EE->TMPL->fetch_param('more_entropy')) == "true") ? TRUE : FALSE; 

     return uniqid($prefix, $more_entropy); 
    } 

    public static function usage() 
    { 
     ob_start(); ?> 

     Simple use: 

    {exp:guid:uniqid} 

     Parameter use: 

    {exp:guid:uniqid prefix="yourprefix"} 
    {exp:guid:uniqid more_entropy="true"} 
    {exp:guid:uniqid prefix="yourprefix" more_entropy="true"} 
    <?php 
     $buffer = ob_get_contents(); 
     ob_end_clean(); 

     return $buffer; 
    }  
} 

你去那里,你自己的插件,通过标签来创建uniqid()。
用途?

{exp:guid:uniqid prefix="yourprefix"} 
{exp:guid:uniqid more_entropy="true"} 
{exp:guid:uniqid prefix="yourprefix" more_entropy="true"} 

太棒了吧?
I love EE ...

+0

'$ more_entropy'应该是'fetch_param('more_entropy')'。你把它当作'fetch_param('prefix')'。 – Pinkie

+0

Theres - 我修好了:) – Repox

0

没有内置的EE标签来输出唯一的ID,没有。