Форуми / National / Russian / Модули и плагины / Как прикрепить статьи к другому модулю?

Виктор
#1 20.11.2017 13:17

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

в общем я так понимаю нужно создать в таблице page дополнительное поле например page_idfolio, где при добавлении новости сохранялось бы id портфоліо. Как вывести с этим я справлюсь. Проблема не понимаю как лучше сделать дописать в код модуля page или писать плагин, и как подойти к этому вопросу с чего начать, может есть похожие решения. Буду благодарен за любие подсказки.

Bandito
#2 23.11.2017 21:04

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

А по задачу, конкретно ,вы на верном пути. напишите маленький плагин который в таблице модуля "page" добавляет столбец для ID портфолио и добавьте  для  в hook  page.add .

 для более удобной прикрепление, (чтобы каждый раз не искать id portfolio) советую из базы вытащить все портфолио данного пользователя (кто добавляет пост по его id)  и вывести в  select на странице add page и edit далее пользователь выбирает из select portfolio​ за которым хочет прикрепить пост  и дальше уже выборка из базы с выводам по id. задача легкая думаю вы справитесь, если что обращайтесь.

Виктор
#3 24.11.2017 18:01

Спасибо за идею, даже лучше чем я планировал

сейчас есть такая выборка

$resq = $db->query("SELECT item_id, item_title FROM $db_folio WHERE item_userid = ".$usr['id']."");
 $re1 = array();
 $re2 = array();
 
    foreach ($resq->fetchAll() as $row)
    {
       $re1[]=$row['item_id'];
	   $re2[]=$row['item_title'];
    } 

 

Bandito
#4 25.11.2017 07:33

https://www.cotonti.com/reference/api%20-%20forms/package-functions.html   вам нужен функция  "cot_selectbox"

 

например:

"SELECT_FOLIOCATS"  => cot_selectbox($foliocats, 'foliocats', array_keys($re1), array_values($re2), false);

Added 1 minute later:

конечно же в нужном хуке и в tpl уже выводит {SELECT_FOLIOCATS}

 cot_selectbox($foliocats, 'foliocats', array_keys($re1), array_values($re2), false, ' тут можно еще для select задать class или id например  class="selectbox" ')

Added 8 minutes later:

require_once cot_incfile('forms');    если не подключено не забудь подключить,   чтобы функция "cot_selectbox" заработал


Відредаговано: Bandito (25.11.2017 07:47, 6 років тому)
Виктор
#5 25.11.2017 08:19

Спасибо, этот этап уже прошел, здесь все у меня уже работает,

'PAGEADD_FORM_IDFO' =>  cot_selectbox('', 'idfo', $re1, $re2, '  ', false),

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

 

 

Bandito
#6 25.11.2017 12:31

 cot_import('idfo', 'P', 'ARR');    и т.д

чтобы выбор передавалось на страницу добавления