cot_page_import
Roffun |
|
|
---|---|---|
Добрый вечер, уважаемые разработчики. При разработке плагина расширяющего возможности pages, столкнулся с необходимостью работы с функцией cot_page_import. Заметил что в некоторых функциях хуки есть, а в некоторых нет. Как насчет того чтобы добавить хук page.import.query в функцию cot_page_import перед $parser_list = cot_get_parsers(); чтобы можно было коннектиться сторонними плагинами.
Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
||
Отредактировано: Roffun (08.07.2016 09:27, 8 лет назад) |
Macik |
|
---|---|
Есть несколько вопросов и замечаний...
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Yusupov |
|
---|---|
Есть же хуки page.add.add.import и page.edit.update.import. |
Roffun |
|
---|---|
#41898 Macik: Задача была следующая: Написать плагин, который после установки создает N количество дополнительных ячеек в таблице cot_pages, на данный момент их 4, потом будет больше 10. Содержимое должно заполняться в добавлении, правиться в редактировании, выводиться на страницах модуля page. В приоритете использовать по максимуму возможности движка, а дописывать по минимуму. Плагин будет расширяться по мере развития. С содержимым потом будут работать функции, например слаживать результат вывода 2 полей и выводить готовый параметр и тд. Добавление проблем не вызвало, в setup папке файлы install и uninstall своё дело сделали, в Hooks=page.add.tags создались теги. Редактирование тоже проблем не вызвало Hooks=page.edit.tags. Вывод на страницу тоже проблем не вызывает Hooks=page.tags. Для того чтобы всё вышеперечисленное работало, осталось параметры скидывать в нужном направлении. Просмотрел весь код файла page.functions.php, код аналогичных модулей / плагинов, и пришел к выводу что во многих функциях есть хуки, а в этой нет. Так как в функцию нужно передать идентичные данные , например: $rpage['page_myone'] = (int)cot_import('rpage_page_myone', $source, 'INT'); $rpage['page_mytwo'] = (int)cot_import('rpage_page_mytwo', $source, 'INT');
Попробовал вариант с добавлением хука, и всё стало работать как часики. Если есть более продвинутые варианты решения подобной задачи, с удовольствием почерпну опыт, пригодится не один раз еще, и другим будет полезно почитать.
#41898 Macik: Мое мнение таково, что расширение функций хуками не очень хорошая практика (не смотря на то, что много где используется в нашем движке). Если есть более оптимальный способ решения подобных задач, то можно конечно и без этого хука обойтись, просто я исходил из того, что в других подобных функциях он есть. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
|
Отредактировано: Roffun (08.07.2016 09:28, 8 лет назад) |
Macik |
|
---|---|
На мой взгляд это проще реализовать добавлением экстра-полей (естественно не ручным, а внутри твоего плагина — смотри API экстаполей). Это позволит автоматом системе их обрабатывать как на вывод, так и на импорт (без дополнительного кода). С чем мы можем дополнительно столкнуться в данном варианте:
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Roffun |
|
---|---|
Понял, спасибо, у меня изначально и было реализовано экстраполями, просто хотел вынести в отдельный плагин. Значит попробую поработать с хуками которые Булат подсказал. Добавлено 15 часов спустя: #41899 Yusupov: Вопрос решен, спасибо. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
|
Отредактировано: Roffun (08.07.2016 08:58, 8 лет назад) |