cot_page_import
| Roffun |  | 
|---|---|
| Добрый вечер, уважаемые разработчики. При разработке плагина расширяющего возможности pages, столкнулся с необходимостью работы с функцией cot_page_import. Заметил что в некоторых функциях хуки есть, а в некоторых нет. Как насчет того чтобы добавить хук page.import.query в функцию cot_page_import перед $parser_list = cot_get_parsers(); чтобы можно было коннектиться сторонними плагинами. 
 
   	/* === Hook === */
	foreach (cot_getextplugins('page.import.query') as $pl)
	{
		include $pl;
	}
	/* ===== */   
Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts Dieser Beitrag wurde von Roffun (am 8. Juli 2016, 09:27, vor 9 Jahre) bearbeitet | 
| 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 Dieser Beitrag wurde von Roffun (am 8. Juli 2016, 09:28, vor 9 Jahre) bearbeitet | 
| Macik |  | 
|---|---|
| На мой взгляд это проще реализовать добавлением экстра-полей (естественно не ручным, а внутри твоего плагина — смотри API экстаполей). Это позволит автоматом системе их обрабатывать как на вывод, так и на импорт (без дополнительного кода). С чем мы можем дополнительно столкнуться в данном варианте: 
 https://github.com/macik правильный хостинг — https://goo.gl/fjCa1F | 
| Roffun |  | 
|---|---|
| Понял, спасибо, у меня изначально и было реализовано экстраполями, просто хотел вынести в отдельный плагин. Значит попробую поработать с хуками которые Булат подсказал. Добавлено 15 часов спустя: #41899 Yusupov: Вопрос решен, спасибо. Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts Dieser Beitrag wurde von Roffun (am 8. Juli 2016, 08:58, vor 9 Jahre) bearbeitet |