LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
28.06.2016, 20:47:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Плагин контент-конструктора - MiniCCK для контента Joomla  (Прочитано 22185 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« : 05.02.2013, 08:54:01 »

Решил и я добавить в эту копилку. Итак - ловите!

MiniCCK - это плагин к компоненту com_content Joomla, позволяющий добавить контенту произвольное количество дополнительных полей разного типа.

Поддерживаемые типы полей:

  • Выпадающий список
  • Радиокнопки
  • Чекбоксы
  • Строка
  • Большое текстовое поле
  • Изображение

 Плагин писался по мотивам статьи Adding custom fields to the article component Franz Korntner. Получилось гибкое и простое решение проблемы добавления полей к контенту Joomla.

Из недостатков я вижу только два - необходимость применять патч к компоненту com_content и единственный тип контента, который можно создать. Но второй недостаток - это не совсем недостаток, для Joomla есть достаточно компонентов CCK которые могут делать просто невообразимые вещи с контентом, а наш плагин занмает нишу между обычным контентом и компонентом CCK, которая достаточно востребована. Многие из-за одного дополнитеьного поля устанавливают CCK что зачастую не оправдано.

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

Описание плагина, скачать здесь.

Установка, настройка и работа плагина описана в этой статье.

Старница проекта на гитхабе здесь.

MiniCCK на JED здесь.
« Последнее редактирование: 02.02.2015, 19:01:45 от Arkadiy » Записан
 
Sergey Romanov
Завсегдатай
*****

Репутация: +18/-0
Offline Offline

Пол: Мужской
Сообщений: 583



« Ответ #1 : 05.02.2013, 21:29:46 »

Удачного вам плаванья.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #2 : 06.02.2013, 04:53:41 »

Спасибо Azn.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #3 : 06.02.2013, 04:57:52 »

Посмотрел пакет обновления с 2.0.8 на 2.0.9 и огорчился. В пакете присутствуют все php файлы Joomla без разбора, правленные они или нет, так-что патч с каждым обновлением будет затираться. Сравнил файлы патча с файлами пакета обновления, оказалось что только в одном файле есть изменения (относительно непатченных файлов 2.0.6, для которой изготовлен патч) и то незначительные, можно накатывать старый патч, хотя я сделал новый.
Записан
voland
Профи
********

Репутация: +474/-82
Offline Offline

Пол: Мужской
Сообщений: 8102


любит наш народ всякое гавно...


« Ответ #4 : 06.02.2013, 05:26:50 »

Патчи увы не айс.
Может есть возможность вынести всё в системные плагины?
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #5 : 06.02.2013, 07:15:54 »

Смысла нет, этот патч продвигается и с большой долей вероятности триггеры, которыми отличается патч от исходных файлов, появятся в Joomla 3. Ну а переспектива ессно за ней.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #6 : 06.02.2013, 07:26:51 »

К тому-же в тех местах, где установлены триггеры для MiniCCK, нет никаких триггеров, в т.ч. и системных. А если обрабатывать каким-то образом весь контент страницы, для выискивания места куда вставлять свое содержимое, всеравно необходимо поставить какую-то метку. Ну или я чего-то не понимаю.
Записан
Sergey Romanov
Завсегдатай
*****

Репутация: +18/-0
Offline Offline

Пол: Мужской
Сообщений: 583



« Ответ #7 : 06.02.2013, 07:36:16 »

Смысла нет, этот патч продвигается и с большой долей вероятности триггеры, которыми отличается патч от исходных файлов, появятся в Joomla 3. Ну а переспектива ессно за ней.
Я тоже сильно верил в Joomla очень долго. В то что ни сделают то и то уже в следующей версии. Но оказалось что даже с разумными довадами этого до сих пор нету. Поэтому и пришлось делать ССК не основаный на Joomla. И честно сказать рад что принял такое решение когда читаю посты как эти. Azn Извините конечно за иронию Azn
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #8 : 06.02.2013, 07:47:25 »

Ну я не намерен останавливаться на этом CCK, у меня в планах, правда не очень определенных, полноценный ССК, ориентированный на профессионалов, аналог информационных систем в HostCMS, простой в управлении и создании пользовательского интерфейса.
Записан
Sergey Romanov
Завсегдатай
*****

Репутация: +18/-0
Offline Offline

Пол: Мужской
Сообщений: 583



« Ответ #9 : 06.02.2013, 17:38:13 »

Ну я не намерен останавливаться на этом CCK, у меня в планах, правда не очень определенных, полноценный ССК, ориентированный на профессионалов, аналог информационных систем в HostCMS, простой в управлении и создании пользовательского интерфейса.
Это прекрасно. Но вот главный вопрос всеже остается. Будет ли это расширение контента Joomla как у сиблод или это будет самостоятельное расширение. Я советую второе.
Записан
voland
Профи
********

Репутация: +474/-82
Offline Offline

Пол: Мужской
Сообщений: 8102


любит наш народ всякое гавно...


« Ответ #10 : 06.02.2013, 17:41:09 »

Блин.
CCK это хорошо.

Но когда их уже штук 10 изобретать очередной велосипед?

Либо что-то, принципиально отличающееся от конкурентов, либо даром не надо, только внимание распылять. ИМХО
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #11 : 06.02.2013, 17:42:34 »

Думаю про второе. Так всем удобнее.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #12 : 06.02.2013, 17:44:59 »

Блин.
CCK это хорошо.

Но когда их уже штук 10 изобретать очередной велосипед?

Либо что-то, принципиально отличающееся от конкурентов, либо даром не надо, только внимание распылять. ИМХО
Ну так вот я и думаю, хотя резон есть и большой, я бы сравнил нынешние ССК для Joomla и информационные системы HostCMS как кирпичики и пластелин.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #13 : 09.02.2013, 20:59:56 »

Выложил патч для Joomla 2.5.9
Записан
slepoy
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Сообщений: 689


Тотальная шизофазия


« Ответ #14 : 09.03.2013, 23:33:34 »

Во времена Joomla 1.5 использовал хак ядра для добавления доп. полей и после миграции на J2.5 все было прос*ано.
Т.к. сайт существующий и материалов много, то "переносить" их из com_content в K2, SebLod и тому подобное просто не имеет смысла - не только изменятся ссылки на материалы, но и в модулях (работающих только с com_content) "перенесенные" материалы отображаться не будут.

Потому MiniCCK - это идеальный вариант для меня.

Но пока на тестовом сайте не удалось добиться работоспособности плагина с типами следующих полей: чекбоксы и выпадающий список (см. скриншот). Не разобрался куда вставлять двойные двоеточия

Буду благодарен за помощь. Спасибо.

Обновлено: следовало сделать так:
Цитировать
PC::PC
Mac::Mac
PS3::PS3

ПС: а рассматриваете ли возможность разработки плагина для поиска по данным полям?

[вложение удалено Администратором]
« Последнее редактирование: 09.03.2013, 23:48:15 от slepoy » Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #15 : 10.03.2013, 21:23:46 »

Это сделать не проблема, проблема в том, что с каждым релизом готовить новый хак не айс, по этому плагин пока в подвешенном состоянии, будут внедрены изменения из хака в ядро - будет продолжение банкета, не будут - видимо придется свертывать.
Записан
Sergey Romanov
Завсегдатай
*****

Репутация: +18/-0
Offline Offline

Пол: Мужской
Сообщений: 583



« Ответ #16 : 11.03.2013, 11:06:18 »

видимо придется свертывать.
Задесь других вариантов нет. Зря надеешся что они что то сделают что тебе надо. Даже если ты попытаешься убедить что это важная вещь тебя могут просто проигнорировать. И даже если они это поправят то завтра тебе понадобится что то еще. И рано или позно все равно придется сворачивать или жить с этим и выпускать хаки.

Именно по этому мы свое ССК делаем не зависимым от Joomla.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #17 : 11.03.2013, 12:59:41 »

Ну пока надежда есть. А потраченного на этот плагин вечера не так жалко. Так что будем подождать  Azn
Записан
Sergey Romanov
Завсегдатай
*****

Репутация: +18/-0
Offline Offline

Пол: Мужской
Сообщений: 583



« Ответ #18 : 11.03.2013, 16:51:59 »

Продолжать обязательно надо просто надо поменять вектор. Надо стать независимым от Joomla.
Записан
NightGuard
Практически профи
*******

Репутация: +377/-7
Offline Offline

Пол: Мужской
Сообщений: 3035


вжжж-вжжж


« Ответ #19 : 11.03.2013, 16:53:20 »

Продолжать обязательно надо просто надо поменять вектор. Надо стать независимым от Joomla.
Хватит флудить.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #20 : 11.03.2013, 21:21:43 »

Продолжать обязательно надо просто надо поменять вектор. Надо стать независимым от Joomla.
Сергей, а вам зачем очередной конкурент? Azn
Записан
Sergey Romanov
Завсегдатай
*****

Репутация: +18/-0
Offline Offline

Пол: Мужской
Сообщений: 583



« Ответ #21 : 12.03.2013, 10:35:40 »

Сергей, а вам зачем очередной конкурент? Azn
Не смеши Azn И не льсти себе так Azn

О конкуренции ни какой речи не идет.
Записан
Очередной вебмастер
Завсегдатай
*****

Репутация: +54/-0
Offline Offline

Пол: Мужской
Сообщений: 782


лысый умный дядя


« Ответ #22 : 14.05.2013, 14:47:50 »

Блин, как раз то что нужно для простого каталога на com_content.
Можно ли как то добавить возможность исключать категории? Чтоб не во всех крепились поля?
Как на сайте можно манипулировать выводом полей(местом расположения и т.п.)
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #23 : 14.05.2013, 21:37:13 »

Сделать все можно, но я все жду когда джумловцы триггеры нужные поставят в систему. Вроде обещали, а вроде и не делают. А хаки к каждому апдейту делать мне как-то не с руки, по этому и разработка здесь врядли продолжится. Разве что совсем скучно станет.
Поля на фронт выводятся скопом,
Код:
$article->text = $html.$article->text;
$html - это вывод плагина. Т.е. он цепляется перед контентом.
« Последнее редактирование: 14.05.2013, 21:42:37 от Arkadiy » Записан
smart
Администратор
*******

Репутация: +1308/-14
Offline Offline

Пол: Мужской
Сообщений: 6855


снова дома...


« Ответ #24 : 14.05.2013, 21:45:07 »

Сделать все можно, но я все жду когда джумловцы триггеры нужные поставят в систему.
А каких именно событий не хватает?
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #25 : 14.05.2013, 22:05:59 »

Эх, я сейчас уже и не помню, надо сделать новый хак на 3.1.1 - в процессе все будет видно. Как сделаю - отпишусь. Но не быстро, занят очень.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #26 : 15.05.2013, 06:31:12 »

Изменения для Joomla версии 3.1.1:
\administrator\components\com_content\models\article.php со строки 318 прямо перед
Код:
return $item;
Код:
//Arkadiy huck
        // Get the dispatcher and load the content plugins.
        $dispatcher = JDispatcher::getInstance();
        JPluginHelper::importPlugin('content');
        // Trigger the data preparation event.
        $dispatcher->trigger('onContentPrepareData', array('com_content.article', $item));
        //End of Arkadiy huck

\components\com_content\models\article.php после 233 строки перед
Код:
$this->_item[$pk] = $data;
Код:
//Arkadiy huck
                // Get the dispatcher and load the content plugins.
                $dispatcher = JDispatcher::getInstance();
                JPluginHelper::importPlugin('content');

                // Trigger the data preparation event.
                $dispatcher->trigger('onContentPrepareData', array('com_content.article', &$data));
                //End of Arkadiy huck

\components\com_content\models\form.php после 142 строки перед
Код:
return $value;

Код:
//Arkadiy huck
        // Get the dispatcher and load the content plugins.
        $dispatcher = JDispatcher::getInstance();
        JPluginHelper::importPlugin('content');

        // Trigger the data preparation event.
        $dispatcher->trigger('onContentPrepareData', array('com_content.article', &$value));
        //End of Arkadiy huck

\components\com_content\views\form\tmpl\edit.php после строки 71 в список
Код:
<!-- Arkadiy huck -->
                <?php
                // Get the form fieldsets.
                $fieldsets = $this->form->getFieldsets();
                foreach ($fieldsets as $name => $fieldset) :
                    if (in_array($fieldset->name, array('image-intro', 'image-full'))) :
                        // this set has already been displayed
                        continue;
                    endif;
                    ?>
                    <li><a href="#extrafield-<?php echo $name; ?>" data-toggle="tab"><?php echo JText::_($fieldset->label);?></a></li>
                    <?php endforeach;?>
                <!-- End of Arkadiy huck -->

перед <div class="tab-pane" id="metadata"> в районе 320 строки
Код:
<!-- Arkadiy huck-->
                <?php
                // Get the form fieldsets.
                $fieldsets = $this->form->getFieldsets();
                foreach ($fieldsets as $name => $fieldset) :
                    if (in_array($fieldset->name, array('image-intro', 'image-full'))) :
                        // this set has already been displayed
                        continue;
                    endif;
                    ?>
                <div class="tab-pane" id="extrafield-<?php echo $name;?>">
                    <?php
                    foreach($this->form->getFieldset($fieldset->name) as $field): ?>
                        <?php if ($field->hidden): ?>
                            <?php echo $field->input; ?>
                            <?php else: ?>
                            <div class="control-group">
                                <div class="control-label">
                                    <?php echo $field->label; ?>
                                </div>
                                <div class="controls">
                                    <?php echo $field->input; ?>
                                </div>
                            </div>
                            <?php endif; ?>
                        <?php endforeach; ?>
                </div>
                    <?php endforeach;?>
                <!-- End of Arkadiy huck -->
\administrator\components\com_content\views\article\tmpl\edit.php
после 73 строки
Код:
<!-- Arkadiy huck -->
<ul class="nav nav-tabs">
                <?php
                // Get the form fieldsets.
                $fieldsets = $this->form->getFieldsets();
                foreach ($fieldsets as $name => $fieldset) :
                if (in_array($fieldset->name, array('basic', 'editorConfig', 'basic-limited', 'attribs'))) :
                // this set has already been displayed
                continue;
                endif;
                ?>
                    <li><a href="#extrafield-<?php echo $name; ?>" data-toggle="tab"><?php echo JText::_($fieldset->label);?></a></li>
                <?php endforeach;?>
</ul>
            <!-- End of Arkadiy huck -->

после 242 строки
Код:
//Arkadiy huck
           // Get the form fieldsets.
           $fieldsets = $this->form->getFieldsets();
           foreach ($fieldsets as $name => $fieldset) :
                            if (in_array($fieldset->name, array('basic', 'editorConfig', 'basic-limited', 'attribs'))) :
                                // this set has already been displayed
                                continue;
                            endif;
                            ?>
                        <div class="tab-pane" id="extrafield-<?php echo $name;?>">

                            <?php if (isset($fieldSet->description) && trim($fieldSet->description)) : ?>
                            <p class="tip"><?php echo $this->escape(JText::_($fieldSet->description));?></p>
                            <?php endif;

                            foreach($this->form->getFieldset($fieldset->name) as $field): ?>
                                <?php if ($field->hidden): ?>
                                    <?php echo $field->input; ?>
                                    <?php else: ?>
                                        <div class="control-group">
                                            <div class="control-label">
                                                <?php echo $field->label; ?>
                                            </div>
                                            <div class="controls">
                                                <?php echo $field->input; ?>
                                            </div>
                                        </div>
                                    <?php endif; ?>
                                <?php endforeach; ?>


                        </div>
                        <?php endforeach;
                        //End of Arkadiy huck

На 3.1.1 не проверял, только сделал, скорее всего потребуется небольшая доработка там, где выводится HTML (форматирование панели управления изменилось).
Ну и поскольку плагин писался по мотивам статьи Adding custom fields to the article component Franz Korntner http://docs.joomla.org/Adding_custom_fields_to_the_article_component, возможно он сделан не оптимально и все можно улучшить или упростить, в частности это касается вывода HTML в панель управения, возможно достаточно будет вывести туда какое-либо дополнительное свойство, которое плагин будет заполнять готовым HTML.
« Последнее редактирование: 15.05.2013, 07:00:35 от Arkadiy » Записан
smart
Администратор
*******

Репутация: +1308/-14
Offline Offline

Пол: Мужской
Сообщений: 6855


снова дома...


« Ответ #27 : 15.05.2013, 11:16:01 »

Кстати интересно, а почему ContentModelForm наследовали от ContentModelArticle (JModelItem), когда логичнее было бы от JModelForm. Это позволило бы обойти как минимум одну модификацию - JModelForm есть событие onContentPrepareForm.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #28 : 15.05.2013, 13:49:02 »

Сам патч, проверенный, вид редактирования контента изменен т.к. табы теперь перешли в JHTML http://argens.ru/my-extension/skachat/minicck/minicck-1-0/patch-3-1-1-zip?format=raw
Кстати интересно, а почему ContentModelForm наследовали от ContentModelArticle (JModelItem), когда логичнее было бы от JModelForm. Это позволило бы обойти как минимум одну модификацию - JModelForm есть событие onContentPrepareForm.
Это я не знаю, возможно не подумали.
Записан
Arkadiy
Группа развития
*****

Репутация: +423/-0
Offline Offline

Пол: Мужской
Сообщений: 5133


Крепитесь, други.


« Ответ #29 : 30.08.2013, 13:34:43 »

Выпущена версия 1.1 плагина. С этой версии плагин не требует хака ядра. Совместим с Joomla 3.1.5.
Новые плюшки:
1. Вывод фронта сделан через шаблон. 
2 .В настройки добавлены опции выбора шаблона и места вывода плагина (сверху или снизу контента).
Записан
Страниц: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet