Как мне сгенерировать уникальный идентификатор в Expression Engine 2? - PullRequest
3 голосов
/ 22 ноября 2011

Есть ли тег EE2, который генерирует уникальный идентификатор?Или мне нужно будет встроить вызов PHP uniqid (), чтобы получить желаемый уникальный идентификатор?Спасибо.

Ответы [ 2 ]

4 голосов
/ 22 ноября 2011

Нет, нет тега EE, который делает это.Это потребует, чтобы вы создали свой собственный плагин, расширение или модуль.Но это довольно просто.

Я предлагаю создать плагин .

Создать папку с именем guid в папке 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"}

Здорово, правда?
Я люблю ЭЭ ...

0 голосов
/ 22 ноября 2011

Нет встроенного тега EE для вывода уникального идентификатора, нет.

...