0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 306 Просмотров
*

bantell

  • Захожу иногда
  • 88
  • 2 / 0
Избранное для материала
« : 20.02.2018, 17:51:12 »
Доброго времени, уважаемые сторожилы!
Ребят, кто разбирается в php - очень нужна ваша помощь  :'(
Появилась необходимость сделать избранные материалы, вопрос сессии пока не стоит - хотябы для зарегистрированных. Потратил много часов на поиски но так ничего и не нашел. " расширения всего и то платные. Помогите пжлст с написанием, практически 0 в PHP. Структурно я понимаю как оно должно выглядеть и скорее всего модуль осилю - а вот с плагином полная беда.
1. Через onContentAfterTitle я вставил форму, в которой лежит кнопка, которая будет и сохранять материал. Но возник затык - который час смотрю в монитор и понимаю, что ничего не понимаю. Мы можем $user = JFactory::getUser(); - прямо в плагине вызывать? (скажем ниже $input = JFactory::getApplication()->input; который уже в public function onContentAfterTitle() находится ) как я понял - нам требуется только id пользователя и id материала чтобы форма могла передать значения. По большому счету то больше вроде ничего и не нужно. и а экшене формы мы указываем другой файл в котором уже будет мучить БД? или можно сразу все это как-то делать? Помогите пжлст разобраться с азами - как происходит процесс отправки инфы в базу?
2.Когда данные запишутся - там проше, с модулем я вроде нашел похожие примеры которые подключаются прямым запросом к БД и берут оттуда значения.
3. Вопрос по БД - насколько сильно плохо, если мы работаем с 2мя таблицами? (если вгружить будем только ID материала, а потом по этому id коннектиться к другой таблице чтобы брать оттуда картинку и заголовок). Может будет лучше передавать данные сразу те что нужны - раз в материале находимся, а потом брать их с одного места?
« Последнее редактирование: 20.02.2018, 18:17:17 от bantell »
*

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
Re: Избранное для материала
« Ответ #1 : 20.02.2018, 19:46:14 »
В плагине можете вызвать что угодно. Используйте var_dump(ваша переменная);, чтоб смотреть, что получили
Форму сабмитить лучше на туже страницу, на которой вы находитесь. Как передать данные - гуглите, что такое post запросы. Там же, в своём плагине вы их можете принять и обработать
Не понятно, что вы там нашли. Вам действительно понадобится модуль, чтобы выводить свои материалы из таблицы, в которую записали. Но модуль придётся делать свой. Точнее перепилить стандартный вывод новостей под свои нужды
База рассчитана на то, что в ней будут связи между таблицами. Поэтому вам достаточно в своей таблице хранить 2 значения : user_id и article_id
*

beliyadm

  • Легенда
  • 8936
  • 1625 / 63
  • Севастополь == Россия
Re: Избранное для материала
« Ответ #2 : 20.02.2018, 21:28:06 »
kern.USR - мне вот интересно, как ты понял его задачу?

Избранные материалы уже есть в коробке
Сохранять пользователю его избранные материалы в отдельную таблицу? Это делается одной кнопкой в шаблоне, чуть JS и пхп обработчик (да, таблица два столбца по проектированию таблиц третьего типа)
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

bantell

  • Захожу иногда
  • 88
  • 2 / 0
Re: Избранное для материала
« Ответ #3 : 20.02.2018, 21:57:33 »
kern.USR - мне вот интересно, как ты понял его задачу?

Избранные материалы уже есть в коробке
Сохранять пользователю его избранные материалы в отдельную таблицу? Это делается одной кнопкой в шаблоне, чуть JS и PHP обработчик (да, таблица два столбца по проектированию таблиц третьего типа)
kern.USR - спасибо! ответ был общий, но натолкнул на решение. В таблицу уже пишет и из нее берет. Есть маленькое но, не могу найти как избавиться от дублей. Если оба поля уже есть одинаковые то не писать значения. Можно это както совместить в одном запросе? в Факе Joomla не оч понятно. Я могу одним запросом инсерта воткнуть - но пока бродил по форумам, натыкался что вроде как инъекциями такой топорный подход череват. вот код
Код
}
$html .= '</form>';
if($_POST){
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$columns = array('userid', 'item');
$values = array($user->id,$id);
$query
->insert($db->quoteName('#__addfavor'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->execute();
}

return $html;
}
   


beliyadm - в коробке я такого не нашел. Конечно был бы рад... поэтому уже почти готова таблица в плагине. Только давайте не будем мериться что-там у вас... Я впервые в Joomla залез и мой вопрос был не из разряда как надпись с синего на красный поменять. Есть чем помочь - предлагайте, а вот эти - чуть то чуть се - не особо умесны. Не судите всех по своим знаниям.
*

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
Re: Избранное для материала
« Ответ #4 : 21.02.2018, 09:31:29 »
kern.USR - мне вот интересно, как ты понял его задачу?
Лежал на диване, втыкал в телефон. Был вечер. Я устал после работы.
Так и понял. В лоб! Человек про плагин спросил - я ответил.
Избранные материалы уже есть в коробке
Ну так иногда полезно повторить стандартный функционал по-своему. Понимание приходит. Человек же не претендует на то, чтоб своё расширение оформить и распространять (с принципиально новыми обоями =) ). А для себя изобрести велосипед - это удовольствие и опыт.

Это делается одной кнопкой в шаблоне
Ну что за методы? Функционал во вьюхах пилить? Поменют шаблон, и что дальше? Искать, откуда ноги росли?
*

beliyadm

  • Легенда
  • 8936
  • 1625 / 63
  • Севастополь == Россия
Re: Избранное для материала
« Ответ #5 : 21.02.2018, 15:46:16 »
Ну что за методы? Функционал во вьюхах пилить? Поменют шаблон, и что дальше? Искать, откуда ноги росли?
Ну так можно же плагином\модулем воткнуть кнопку, чтоб не привязываться к въюшкам, не суть принципиальная разница )
Просто те сайты что я делаю целиком и потом веду - мне проще на уровне шаблона что-то прописать, чем выносить куда-то (неправильный подход, знаю, но когда я единственный кто этим занимается - мне так проще)
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

bantell

  • Захожу иногда
  • 88
  • 2 / 0
Re: Избранное для материала
« Ответ #6 : 21.02.2018, 18:37:58 »
Кнопку победил, модуль вывода тоже  :D  :D :D
« Последнее редактирование: 21.02.2018, 18:56:38 от bantell »
*

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
Re: Избранное для материала
« Ответ #7 : 21.02.2018, 23:29:37 »
но когда я единственный кто этим занимается - мне так проще

Ну вы же далеко не новичёк! Вам ли не знать, что рано или поздно сайт попадает на сопровождение к кому-то другому. И начинаются пляски с поиском чего-либо в модулях, а оно, оказывается в шаблоне захардкоджено.
*

beliyadm

  • Легенда
  • 8936
  • 1625 / 63
  • Севастополь == Россия
Re: Избранное для материала
« Ответ #8 : 23.02.2018, 21:53:52 »
И начинаются пляски с поиском чего-либо в модулях, а оно, оказывается в шаблоне захардкоджено.
И мне такое попадало, и аналогично искал концы. Может это плагин, может модуль, да нет же в шаблоне должно быть.
А черт, оказывается это подгружается AJAX из какого то левого модуля где разраб написал базовый функционал сайта.
В общем может быть все что угодно. Свои сайты я документирую и если уходят на сторону в плане поддержки - такие хвосты легко отследить.
Скажем так - это меньшее из зол, что встречается в работе.

Подобные вещи легко находятся в консоли и поиском по файлам с названием тега\класса.
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести миниатюру материала Joomla через background-image?

Автор Merk

Ответов: 5
Просмотров: 167
Последний ответ 14.11.2018, 17:18:35
от Efanych
Найти программу для импорта материала

Автор webrapinfo

Ответов: 1
Просмотров: 89
Последний ответ 29.10.2018, 17:44:00
от xpank
Поля field types - Вывод материала

Автор Шмайсер

Ответов: 11
Просмотров: 230
Последний ответ 25.10.2018, 12:51:54
от NewUsers
Опрос / голосование для каждого материала Joomla 3

Автор mrmagic

Ответов: 4
Просмотров: 229
Последний ответ 01.10.2018, 15:16:31
от lexxbry
Не могу получить title материала

Автор Pryan

Ответов: 6
Просмотров: 158
Последний ответ 27.09.2018, 16:08:16
от effrit