如何在Expression Engine 2中生成唯一的ID?

3
有没有EE2标签可以生成唯一ID?还是我需要嵌入PHP的uniqid()函数来获取所需的唯一ID?谢谢。
2个回答

4
没有一个EE标签可以做到这一点。需要创建自己的插件、扩展或模块,但是这很简单。
我的建议是创建一个插件
在你的expressionengine/third_party文件夹中创建一个名为guid的文件夹。 在该文件夹中创建一个名为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"}

很棒,对吧?
我喜欢EE...


$more_entropy 应该是 fetch_param('more_entropy')。你现在写成了 fetch_param('prefix') - Pinkie

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接