Как настроить добавление сообщения в двойке?

#1 12 марта 2017 в 10:53
Здравствуйте! Как самое важное перенести на верх?
мне надо, чтобы под заголовком было самое важное:

1. Заголовок (хотя и от него избавляюсь
2. Поле для ввода текста

все остальное — не так важно, и регулируется в настройках типа контента.
Но под заголовком кто-то влепил наглухо "категории" и "личные папки"
которые очень хочется убрать вникуда (читай вниз)

#2 12 марта 2017 в 21:42
Последовательность вывода этих блоков задана в функции getItemForm() файла \system\controllers\content\frontend.php (строка 472 и далее).
Там всё прокомментировано и достаточно наглядно. Можете поменять под себя. Это отразится сразу на все типы контента. Но учтите, это будет хак ядра и при следующем обновлении нужно будет восстанавливать нужную последовательность заново.
#3 12 марта 2017 в 22:25

Но учтите, это будет хак ядра

WebMan
Можно изобразить православный хук 'content_item_form', в котором изменить форму до любого вида, но я так понимаю топикстартеру нужно просто максимально упростить форму, а это можно сделать из админки не городя огородов.

@iKrym,
Если хотите избавиться от ввода всяких папок, категорий и даже заголовков, просто выключите в настройках типа контента папки, категории и в полях выключите заголовок. И получите форму предельной простоты:
#4 12 марта 2017 в 22:32

Можно изобразить православный хук 'content_item_form', в котором изменить форму до любого вида

Ris
А как в хуке поменять последовательность? Например, сначала вывести все поля контента, а после них категории, папки и т.д., если этот порядок жёстко прописан в файле фронтенда?
#5 12 марта 2017 в 22:50

А как в хуке поменять последовательность?

WebMan
Ну, изобразить что-нибудь типа
  1. $category = $form['category'];
  2. $content = $form['content'];
  3. unset($form['category'], $form['content']);
  4. $form['category'] = $content;
  5. $form['content'] = $category;
Я понимаю, что в хук отсылается не массив, а объект. laugh
Это так… схематично.
Непонятно, зачем городить такое суровое извращение, если все можно просто отключить.
#6 12 марта 2017 в 23:49
Да, Ris, получилось без хака фронтенда через хук. Спасибо за подсказку!

В хуке нужно сделать перемещение наборов полей. Например, для перемещения набора с личными папками в конец нужно в хуке 'content_item_form' сделать так:
  1. // Получаем структуру формы
  2. $structure = $form->getStructure();
  3.  
  4. // Перемещаем личные папки после всех наборов
  5. if (isset($structure['folder'])){
  6. $folder = $structure['folder'];
  7. unset($structure['folder']);
  8. $structure['folder'] = $folder;
  9. }
  10.  
  11. // Сохраняем структуру обратно
  12. $form->setStructure($structure);
При необходимости можно по этому же принципу между получением структуры и её сохранением переместить любые наборы полей. Но нужно учесть, что именованные индексы имеют только наборы: category — категории, folder — личные папки, is_comment — управление комментариями. Для остальных наборов нужно искать их цифровые индексы.
Про обработку событий хуками можно почитать в документации: Обработка событий
#7 13 марта 2017 в 00:01
WebMan,
Круто! v
Спасибо за информацию!
Надо мне тоже почитать про работу с объектами.

Есть еще рабоче-крестьянский вариант.
Вытащить всю (или часть) функцию в хук, убить на входе структуру (или всю форму) и в хуке сформировать свою форму.
#8 13 марта 2017 в 00:55


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

Ris


Спасибо! Сейчас попробую

А, и еще. Хорошо бы иметь виджет, в который можно задать в какой тип контента писать
который будет выводиться над заголовком — наподобие формы "написать быстро",

По принципу социальных сетей )
#9 13 марта 2017 в 01:05
Залез в код и поменял. Все, ушли папки вниз.
теперь бы их спрятать к… под ссылку — дополнительные опции или "расширенные опции" чтобы они не мешались совсем
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.