1 2012-06-02 18:58:07 (2012-06-02 19:07:45 отредактировано Mobelis)

Тема: Плагин Каталог

Это beta версия админки плагина. Если вам необходимо вывести данные, созданные в админке, на сайте, то можете править файл - catalog.plugin.php

Что реализовано:
1. Создание, редактирование,копирование, удаление  страниц(элементов).
2. Создание, редактирование, удаление разделов(каталогов).
3. Вывод списка разделов и элементов.
4. Управление сортировкой, активация/деактивация элементов,разделов.
5. Установка,удаление каталога с всеми данными.
6. Массовые действия (активация,деактивация,удаление).
7.Подсказка при наведении на элементы управления(tooltip)

Что необходимо реализовать:
Создать страницу управления настройками каталога такими как:
1. Количество элементов в списке в админке по умолчанию.
2. Шаблон по умолчанию.
3. Переключатели (статус публикации, переключатель меню, no Index,no Follow) по умолчанию.
4. Как перемещаться по каталогам (ajax или ссылки).
5. Настройка размеров и качества картинок и их превью.
6. URL параметр, определяющий, что на сайте должен подключаться и обрабатываться каталог.
7. Использовать наследование настроек родителя или те, что по умолчанию.
8. Генерировать slug из title.

Особенности:
1. Данные базы хранятся в отдельном файле catalog.table.xml.
2. Контент и его превью текст тоже отдельно хранятся в своей папке в storage.
3. Картинки и превью картинок хранятся в uploads в директории, которая указана по умолчанию как catalog.
4. Копировать можно только страницы.
5. Если деактивировать раздел, то все элементы и разделы внутри так же деактивируются.
6. При добавлении картинки, она сохраняется как cat_1_1338662880.jpg т.е. cat_ИД_время создания.расширение файла (допускаются gif,png,jpg,jpeg).

После установки плагина в разделе меню Контент появится новый пункт Каталог, перейдя в него, мы увидим форму по управлению каталогом:
http://mobelis.od.ua/plugins/catalog/img/list.png

Важно:
Чтобы работали правильно ajax запросы (не происходило дублирования страницы), необходимо в monstra/engine/plugins.php в строке 708 заменить

// isset arguments ?
   if (isset($args)) {

на

// isset arguments ?
   if (isset($args)&& count($args)>0) {

Загрузка плагина: Download

P.S. Времени все доделать и произвести рефакторинг кода не было. После, как все ошибки в админке будут доработаны и реализована форма настройки каталога, можно будет приступить к выводу каталога на сайте.

Поделиться

2

Re: Плагин Каталог

http://img1.uploadscreenshot.com/images/orig/6/15306593337-orig.png

Tabs_menu, Tabs_seo, Tabs_seting, .... ?

Follow me: Twitter | GitHub | Facebook | Вконтакте

Стань спонсором проекта!

Сайт Awilum

Поделиться

3

Re: Плагин Каталог

Я не делал перевода локализации на английский. Следовательно, если в админке выбран язык русский, тогда все нормально отображается. А это вкладки с остальными настройками.
http://mobelis.od.ua/plugins/catalog/img/new_page.jpg
http://mobelis.od.ua/plugins/catalog/img/new_page_2.jpg
http://mobelis.od.ua/plugins/catalog/img/new_page_3.jpg
http://mobelis.od.ua/plugins/catalog/img/new_page_4.jpg

Поделиться

4

Re: Плагин Каталог

Mobelis
Подход локализации в корне неправильный. т.к. __('значение') не ключ или какое либо другое обозначение.

    /**
     * Global Translation/internationalization function.
     * Accepts an English string and returns its translation
     * to the active system language. If the given string is not available in the
     * current dictionary the original English string will be returned.
     *
     *  
     *      // Display a translated message
     *      echo __('Hello, world');
     *
     *      // With parameter replacement
     *      echo __('Hello, :user', array(':user' => $username));
     *  
     *
     * @global array  $dictionary Dictionary
     * @param  string $string     String to translate
     * @param  array  $values     Values to replace in the translated text
     * @return string
     */
    function __($string, array $values = null) {          
        // Redefine arguments
        $string = (string) $string;        
        // Find string in dictionary
        $string = I18n::find($string);
        // Return string
        return empty($values) ? $string : strtr($string, $values);
    }
Follow me: Twitter | GitHub | Facebook | Вконтакте

Стань спонсором проекта!

Сайт Awilum

Поделиться

5

Re: Плагин Каталог

По возможности перепишу код.

Поделиться

6

Re: Плагин Каталог

подход к локализации в монстре тоже не очень.
слишком часто перекрываются одинаковые строки.

Страдание фигнёй на рабочем месте развивает боковое зрение, слух, скорость реакции и бдительность в целом.
Пишу плагины под заказ, конвертирую шаблоны под Монстра - пишите на email через ссылку в профиле.

Поделиться

7 2012-06-03 09:32:35

Re: Плагин Каталог

ха ха я вообще нифига не понял..... smile Как все енто дело выводиться на сайте... ( А идея мне нравиться smile

Лучше сгореть, чем истлеть...

Сайт kromverk

Поделиться

8

Re: Плагин Каталог

Касательно локализации есть трудности, в частности с подсказками (tooltip).

'T_C_tooltip_delete'=>'Удалить элемент'

, если написать это как задумано, то для того, чтобы не было перекрытия, необходимо писать нечто:

'Help: delete element '=>'Подсказка: Удалить элемент'

, что есть не логично.

kromverk пишет:

ха ха я вообще нифига не понял..... smile Как все енто дело выводиться на сайте... ( А идея мне нравиться smile

В самом начале я писал, что это лишь бета-версия админ части, т.е. та часть плагина, которая отвечает за ввод информации в плагине для cms Monstra. При желании и необходимом минимуме знаний можно это вывести на сайте любым способом, отредактировав файл catalog.plugin.php. Прежде чем самому приступать к реализации 2 части плагина (вывод информации на сайте), необходимо произвести ряд доработок и найти ошибки в текущей реализации.

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

Поделиться

9 2012-06-03 13:40:28

Re: Плагин Каталог

Mobelis

'delete element' => 'удалить элемент'
'Help: delete element '=>'Подсказка: удалить элемент'

логично. почему нет ?

Follow me: Twitter | GitHub | Facebook | Вконтакте

Стань спонсором проекта!

Сайт Awilum

Поделиться

10 2012-06-03 13:43:53 (2012-06-03 13:44:04 отредактировано Mobelis)

Re: Плагин Каталог

Ну, не хотелось бы лишнее слово  'Help:, Подсказка: использовать.

Поделиться

11

Re: Плагин Каталог

Такой способ локализации используется в современных фреймворках. Например в том же YII

Follow me: Twitter | GitHub | Facebook | Вконтакте

Стань спонсором проекта!

Сайт Awilum

Поделиться

12

Re: Плагин Каталог

В Yii поддерживаются разные варианты хранения перевода, одним из которых может быть ключ=>значение. Да, изначально I18N реализовано как

Но такой подход,  в моем понимании, хорош лишь в том случае, когда это системные сообщения, которые, если файла локализации нет, могут быть отображены корректно на исходном языке. И в Yii нет пересечений ключей. Как в нашем случае.

Поделиться

13

Re: Плагин Каталог

вот-вот. Yii - фреймворк, который используется в конечном проекте и его lang-файлы именно под него и просто в силу архитектуры не могут иметь пересечений.

монстра же, плагинная расширяемая цмс, где плагины просто не могут иметь функций контроля за такими пересечениями. это должна делать сама цмс.
а при написании плагинов, мне как-то влом искать с какой строкой и где пересекается моя новая строка. или лезть исправлять плагин стороннего автора, подключаемый позже, из-за такого же пересечения.
это гемор на пустом месте.

из этой ситуации можно выйти только двумя способами:
1. Отойти от нативных фраз и использовать их в виде '[название плагина] фраза' => 'перевод' для двух языков.
2. Перейти к использованию для плагинов локального (в пределах плагина) lang-массива.

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

Страдание фигнёй на рабочем месте развивает боковое зрение, слух, скорость реакции и бдительность в целом.
Пишу плагины под заказ, конвертирую шаблоны под Монстра - пишите на email через ссылку в профиле.

Поделиться

14

Re: Плагин Каталог

Все забили на этот плагин? Он выглядит очень красиво и функционально, автор можете закончить его за спасибо или $ smile

(c) RomanArt
Создание дизайнов любой сложности для Monstra cms

Поделиться

15 2012-12-11 13:42:20

Re: Плагин Каталог

Здравствуйте. Да думаю доделать его после нового года, появиться больше времени.

Поделиться

16 2012-12-13 16:11:13

Re: Плагин Каталог

Плагин очень нужный.
Присоединяюсь к RomanArt, тоже бы заплатил за рабочую версию.

Поделиться

17

Re: Плагин Каталог

Было бы не плохо, что бы написали список пожеланий к функционалу плагина. Я по возможности реализую.

Поделиться

18

Re: Плагин Каталог

Добавление\удаление\редактирование:
Категорий
Товаров(итемов) с фотографией
Цены
Краткого описания товара(итема)


Формы:
Для картинки.
Для цены.
Для текста описания.
Для полного описания.


Еще пару-тройку любых форм [например]:
цена1 -
цена2 -
цена3 -

(c) RomanArt
Создание дизайнов любой сложности для Monstra cms

Поделиться

19

Re: Плагин Каталог

Вложенность категорий, хотя бы на 1 уровень.

В остальном солидарен с RomanArt

Поделиться

20 2012-12-14 15:04:15

Re: Плагин Каталог

ну так-то хорошо бы сделать один большой плагин и для новостей и для блога и для каталога с возможностью добавления различных полей: для выбора изображения, для текста, для кода

Сайт olsv64

Поделиться

21

Re: Плагин Каталог

olsv64 пишет:

ну так-то хорошо бы сделать один большой плагин и для новостей и для блога и для каталога с возможностью добавления различных полей: для выбора изображения, для текста, для кода

если он сможет сделать плагин который я описал, то мы сможем легко из него хоть слона слепить smile))
специально попросил 3 дополнительных формы

з\ы удалить что-то проще чем добавить smile

(c) RomanArt
Создание дизайнов любой сложности для Monstra cms

Поделиться

22

Re: Плагин Каталог

Я думаю, если несложно, три поля фото - 1 главное и 2 дополительных.
И заглушка при выводе шаблона - Фотография отсутвует.

Ex ungue leonem

Поделиться

23

Re: Плагин Каталог

а я все-таки настаиваю на возможности просто выбирать и добавлять дополнительные поля

Сайт olsv64

Поделиться

24 2012-12-15 08:11:20

Re: Плагин Каталог

Плюс к этому надо реализовать добавление любого количества полей к объекту каталога.
Может даже в ручную в коде плагина (главное чтоб была инструкция)

Сайт loader

Поделиться

25 2013-01-16 12:17:35

Re: Плагин Каталог

не смог запустить на последней версии монстры.

Site | GitHub | Создание форумов/решений на базе PunBB/Monstra/OGMA

Плагины распространяются по Creative Commons Attribution-NonCommercial 3.0

Сайт KANekT

Поделиться