Назначение методов getEditLink и getObjectEditLink в модуле системы

Материал из Umicms
Версия от 13:08, 5 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Основное описание по методам getEditLink и getObjectEditLink присутствует на странице: api.umi-cms.ru

Продублируем примеры методов:

public function getEditLink($element_id, $element_type) {

            switch($element_type) {
                case "rubric": {
                    // ссылка на добавление страницы (page)
                    $link_add = $this->pre_lang . "/admin/mymodule/add/{$element_id}/page/";
                    // ссылка на редактирование рубрики (rubric)
                    $link_edit = $this->pre_lang . "/admin/mymodule/edit/{$element_id}/";

                    return Array($link_add, $link_edit);
                    break;
                }

                case "page": {
                    // ссылка на редактирование страницы
                    $link_edit = $this->pre_lang . "/admin/mymodule/edit/{$element_id}/";
                    // запрещаем добавлять подстраницы для типа "page", первый элемент списка = false
                    return Array(false, $link_edit);
                    break;
                }

                default: {
                    return false;
                }
            }
 }


public function getObjectEditLink($objectId, $baseTypeName) {
     return $this->pre_lang . "/admin/mymodule/editobject/{$objectId}/";
}

Один из этих методов, либо оба, должны находиться в файле classes/modules/название_модуля/class.php

Повторим основные моменты, которые необходимо знать при создании дополнительного модуля.

Метод getEditLink необходим для формирование ссылки на добавление и редактирование страниц. В зависимости от переданного в метод иерархического типа данных, $element_type, мы формируем ссылку на редактирование страницы, и в случае необходимости, ссылку на добавление новой страницы относительно выделенной. Добавление дочерних страниц необходимо для "Лент новостей", "Разделов каталога", "Фотогалерей" и аналогичных сущностей, которые группируют страницы. Метод getEditLink возвращает массив, первым элементом которого должна быть ссылка на добавление страницы, вторым - ссылка на редактирование страницы.

Метод getObjectEditLink необходим для модуля, который взаимодействует с объектами (пользователи, баннеры и т.п.). Метод возвращает всего одно значение, это ссылка для редактирования объекта.

В обоих метода используется $this->pre_lang, как не трудно догадаться это текущий языковой префикс системы.