Запись юзерагента в БД реализовал уже давно, в шаблоне даже сделал вывод {$comment.useragent} строкой, но нужно вывести картинками браузеров и ОС. Был у меня такой плагин под Wordpress, не могу разобраться как его адаптировать под Инстант. Кто поможет?
Нужно примерно следующее:
Наверное примерно так:нужно вывести картинками браузеров и ОС
{if $comment.useragent == 'ЗНАЧЕНИЕ'}<img src="ССЫЛКА_НА_КАРТИНКУ">{/if}
Шутку оценил. Если что, useragent — это строка, имеющая примерно следующее значение:Наверное примерно так:
Код PHP:
1 {if $comment.useragent == 'ЗНАЧЕНИЕ'}<img src="ССЫЛКА_НА_КАРТИНКУ">{/if}
Mozilla/5.0 (X11; Arch Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.187 Safari/535.1
Прошу отписаться в теме тех, кто смыслит в программировании, в частности PHP, а также разбирается во внутренней структуре Инстанта.
Вы наверное и сами видели сколько там вариантов строк юзерагентов.
Плюс сегодня многие браузеры имеют плагины позволяющие менять эту строку на что угодно.
Собирать условия для цельной строки не имеет смысла. Единых правил у этой строки тоже нет.
— Что можно предложить?
— Если версии агентов не важны, перед записью в базу парсить строку на предмет знакомых слов (предварительно составив их список)
Браузеры, ОС и их версии — все это определяется без проблем (я в первом посте привел скриншот страницы с плагином для Wordpress, там определяется абсолютно все: браузер и версия, тип ОС и ее версия).
Вот архив скрипта для определения ОС и браузера: instantcms.ru/users/files/download1434.html
Вопрос в том, как это адаптировать под Инстант.
P.S. Скрипт изменен, не пытайтесь его на WP поставить, работать не будет, я оттуда уже половину функционала убрал за ненадобностью. Оттуда можно взять только само определение браузеров и осей, т.к. ни в одном скрипте я более полного списка еще не встречал.
Кроме полного описания оказывается и сам код полностью рабочий и его можно легко использовать.… Оттуда можно взять только само определение браузеров и осей, т.к. ни в одном скрипте я более полного списка еще не встречал.
Нужная строка для вывода формируется в переменной $ua
Я не смог разобраться, как организовать получение из БД строки с юзерагентом, и разобрав ее по кусочкам вывести в шаблоне комментариев. Плохо понимаю структуру Инстанта, да и со Смарти не работал. Я пока только в коде компонента комментариев дописал в запрос sql получение строки, а в шаблоне комментариев вывел ${comment.useragent} всплывающей подсказкой к аватару комментатора. Хотелось бы разобраться, как сделать то, что я описал выше, т.е. вывод под аватаром картинок с всплывающими подсказками с версиями ОС и браузеров.
Все что тебе осталось:
Перед тем как передать переменную $useragent смарти, прогнать ее через цепочку функций с твоего файла.
На выходе — в переменной $ua и будет нужная тебе строка (уже картинки с подписями os и браузера) которую и отдай смарти вместо прежнего значения $useragent.
Подключить — include, передать переменную — либо как аргумент функции либо объяви ее глобальной, что бы функция вернула значение — returnЯ не могу сообразить как подключить скрипт к компоненту комментариев и передать ему переменную $useragent.
По поводу include и require я в курсе, про возвращаемое значение функции тоже. Просто не могу сообразить, в каком месте там это вызывать, и какой аргумент передавать в сам скрипт (насколько я понял, это $con['useragent']).Подключить — include, передать переменную — либо как аргумент функции либо объяви ее глобальной, получить — return
Строку я получаю сейчас через модуль, вывожу в шаблон.
т.е. в БД уже надо записать готовую строку для вывода картинок.
Вот модуль комментариев: pastebin.com/5m3Xqi8C
Там я пытаюсь заинклудить скрипт и вызвать функцию. Но таким способом не получается. Даже если я задам так:
$useragent_title=$con['useragent'];
$con['useragent']="123";
то будет выведена все равно строка с юзерагентом, а не "123". ЧЯДНТ?
Пробовал и global $useragent_title=$con['useragent'];
Представь страницу с сотней комментов.В БД то зачем записывать строку для вывода картинок? В БД как раз хранится строка юзерагента. А уже разбирая ее нужно вывести картинки.
Для каждого коммента, при каждом просмотре придется вычислять то что можно получить 1 раз и потом просто брать с базы. Зачем же делать 100 разборов строки если можно сделать 1 ?
зы. Код сейчас гляну