Функция cot_get_editors в Cotonti.

предназначена для получения списка доступных редакторов для работы с текстом (например, визуальных редакторов) в фреймворке Cotonti.

Функция cot_get_editors предназначена для получения списка доступных редакторов для работы с текстом (например, визуальных редакторов) в фреймворке Cotonti. Это может быть полезно для формирования выпадающего списка редакторов в интерфейсе пользователя или для других целей, где нужно знать, какие редакторы доступны для использования.


Давайте разберем эту функцию по шагам:


/**
 * Returns the list of available rich text editors
 *
 * @return array
 */
function cot_get_editors()
{
    global $cot_plugins;
    $list = array('none');
    if (is_array($cot_plugins['editor']))
    {
        foreach ($cot_plugins['editor'] as $k)
        {
            if (cot_auth('plug', $k['pl_code'], 'W'))
            {
                $list[] = $k['pl_code'];
            }
        }
    }
    return $list;
}

 


Подробное объяснение:

Функция возвращает массив:

Функция возвращает массив, который содержит список доступных редакторов. Этот массив начинается с одного элемента 'none', что означает отсутствие редактора. Если есть доступные редакторы, они добавляются к этому списку.
Глобальная переменная $cot_plugins:

Функция использует глобальную переменную $cot_plugins, которая содержит все плагины системы Cotonti. В частности, она интересуется разделом плагинов, связанным с редакторами. Конкретно, ключ 'editor' в массиве $cot_plugins указывает на список доступных редакторов.

Эта переменная обычно заполняется во время работы фреймворка и может содержать информацию о различных плагинах, включая текстовые редакторы.

Создание списка редакторов:

Мы начинаем с массива array('none'), который означает, что по умолчанию не используется ни один редактор.
Далее проверяется, является ли $cot_plugins['editor'] массивом (с помощью is_array($cot_plugins['editor'])). Это необходимо для того, чтобы избежать ошибок, если плагин редактора не установлен или не доступен.

Перебор плагинов-редакторов:

Если плагин редактора доступен, то с помощью цикла foreach мы проходим по всем элементам в массиве $cot_plugins['editor']. Каждый элемент $k представляет собой информацию о плагине редактора.
Внутри цикла проверяется, есть ли у пользователя права на редактирование через плагин с помощью функции

cot_auth('plug', $k['pl_code'], 'W')

Эта функция проверяет, есть ли у пользователя права на выполнение определенного действия (в данном случае — на редактирование) с конкретным плагином (указанным через его код 'pl_code').

Добавление доступных редакторов в список:

Если пользователь имеет права на использование редактора (функция cot_auth возвращает true), то код плагина ($k['pl_code']) добавляется в массив $list[].

Возврат списка редакторов:

По завершению цикла функция возвращает массив $list, который содержит все доступные редакторы (в том числе и 'none', если редакторов нет).


Пример работы функции:

Если в переменной $cot_plugins['editor'] есть следующие элементы:


$cot_plugins['editor'] = [
    ['pl_code' => 'ckeditor'],
    ['pl_code' => 'tinyMCE'],
    ['pl_code' => 'markItUp']
];


И у пользователя есть права на использование плагинов ckeditor и markItUp, но нет прав на tinyMCE:
Функция пройдет по всем редакторам и добавит в список только те, к которым у пользователя есть доступ. Итоговый список будет таким:

['none', 'ckeditor', 'markItUp']


Примечания:
Что такое cot_auth? Функция cot_auth проверяет, имеет ли текущий пользователь определенные права на доступ к плагину. В данном случае она проверяет права на запись ('W') для каждого редактора. Если у пользователя есть такие права, редактор добавляется в список доступных.

Глобальная переменная $cot_plugins: Эта переменная в Cotonti хранит информацию обо всех плагинах, включая редакторы. Это позволяет системе динамически подключать и использовать различные плагины, в том числе текстовые редакторы, в зависимости от доступности и настроек.

Итог:
Функция cot_get_editors создает и возвращает список доступных редакторов на основе установленных плагинов и прав пользователя. Это позволяет фреймворку динамически адаптировать интерфейс в зависимости от того, какие редакторы разрешены для использования.

 

3 minutes read Administrator

Comments (0)

No comments yet
Only registered users can post new comments

Content author

Administrator

Offline

Administrator

Last logged: 2026-07-21 00:03

  • Page published: 2025-01-22 20:48
  • Last update: 2025-01-22 20:49