radrigo 182 Опубликовано: 10 сентября 2022 Рассказать Опубликовано: 10 сентября 2022 Всем привет. Подскажите, как можно получить данные дополнительного поля в модуле? Таким методом, если вставить шаблон полной новости, не получается {include file="engine/modules/mymod.php?url=[xfvalue_vkontakte]"} Заранее всем признателен за подсказку! Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 11 сентября 2022 Рассказать Опубликовано: 11 сентября 2022 Почему не получается? Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 11 сентября 2022 Рассказать Опубликовано: 11 сентября 2022 Автор 4 часа назад, Gameer сказал: Почему не получается? Вы имеете в виду, почему не получается таким методом? {include file="engine/modules/mymod.php?url=[xfvalue_vkontakte]"} Не знаю почему. Например в файле mymod.php единственная строчка echo $url; На сайте выводится Array Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 11 сентября 2022 Рассказать Опубликовано: 11 сентября 2022 А если вместо url использовать другое имя переменной? Просто судя по всему в данном месте данное имя переменной уже занято другими данными, а ваши параметры не будут переписывать существующие данные. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 11 сентября 2022 Рассказать Опубликовано: 11 сентября 2022 Автор 7 минут назад, celsoft сказал: А если вместо url использовать другое имя переменной? Просто судя по всему в данном месте данное имя переменной уже занято другими данными, а ваши параметры не будут переписывать существующие данные. Всё получилось. Спасибо за подсказку) Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 11 сентября 2022 Рассказать Опубликовано: 11 сентября 2022 Автор Не получается реализовать если в дополнительном поле содержится ссылка с https://. Например, дополнительное поле содержит ссылку https://test.ru. По какой-то причине выводит только https Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 11 сентября 2022 Рассказать Опубликовано: 11 сентября 2022 16 минут назад, radrigo сказал: Например, дополнительное поле содержит ссылку https://test.ru. По какой-то причине выводит только https Не стоит забывать что любой URL параметр должен быть URL кодирован https://ru.wikipedia.org/wiki/URL и соответственно передача всего в engine/modules/mymod.php?url=[xfvalue_vkontakte] также должна полностью соответствовать стандартам URL и передавать значения нужно предварительно приведя значение в соответствующий вид, или в доп. поле сразу написать его уже в соответствующем виде т.е. нельяз написать в URL "engine/modules/mymod.php?url=http://site.ru" нужно писать "engine/modules/mymod.php?url=http%3A%2F%2Fsite.ru" А вообще лучше пользоваться системой плагинов для написания подобного функционала и корректно все обрабатывать на PHP а не использовать модуль {include который для простых интеграций и передачи простых значений, а не сложный требующих предварительной обработки. Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 11 сентября 2022 Рассказать Опубликовано: 11 сентября 2022 Автор 40 минут назад, celsoft сказал: Не стоит забывать что любой URL параметр должен быть URL кодирован https://ru.wikipedia.org/wiki/URL и соответственно передача всего бы то не было в engine/modules/mymod.php?url=[xfvalue_vkontakte] также должна полностью соответствовать стандартам URL и передавать значения нужно предварительно приведя значение в соответствующий вид, или в доп. поле сразу написать его уже в соответствующем виде. Так можно вывести URL-адрес через модуль или нельзя? Допустим в дополнительном поле прописано следующее https://test.ru Данный код выводит адрес в шаблоне точно также, как и прописано [xfvalue_vkontakte] Создал php файл со следующим содержимым echo $obUrl; Прописал в шаблоне {include file="engine/modules/redirect.php?obUrl=[xfvalue_vkontakte]"} Выводит только до двоеточия https Пробовал кодировать при помощи urldecode(), htmlentities(), rawurlencode(), rawurldecode(), прописывая в файле примерно так, но ничего не менялось $obUrl = rawurlencode($obUrl); echo $obUrl; Буду благодарен, если подскажите Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 11 сентября 2022 Рассказать Опубликовано: 11 сентября 2022 Кодировать нужно до отправки данных, т.е. до того как оно появится в {include file="engine/modules/redirect.php?obUrl=[xfvalue_vkontakte]"} а не после. 2 часа назад, radrigo сказал: Так можно вывести URL-адрес через модуль или нельзя? Такой конструкцией как вы используете нет, потому как это нарушает стандарты URL и ваша строка не может быть обработана, потому как ваша конструкция получается как {include file="engine/modules/redirect.php?obUrl=http://site.ru"} а таким URL быть не может, параметр должен быть декодирован, и декодирован. Конструкция может быть только такой {include file="engine/modules/redirect.php?obUrl=http%3A%2F%2Fsite.ru"} Поэтому нужно использовать систему плагинов, и через систему плагинов уже делать вывод на страницу информации или тега или ссылки или делать редирект на основе вашего поля, предварительно все кодировав или декодировав и выполнив правильный код с соблюдением всех стандартов. В модуль {include file="engine/modules/redirect.php?obUrl=...."} можно передавать параметры только с соблюдением требований к GET запросам и соответственно с соблюдением стандарта URL к таким запросам и никак иначе. Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 11 сентября 2022 Рассказать Опубликовано: 11 сентября 2022 Автор 4 часа назад, celsoft сказал: Кодировать нужно до отправки данных, т.е. до того как оно появится в {include file="engine/modules/redirect.php?obUrl=[xfvalue_vkontakte]"} а не после. Такой конструкцией как вы используете нет, потому как это нарушает стандарты URL и ваша строка не может быть обработана, потому как ваша конструкция получается как {include file="engine/modules/redirect.php?obUrl=http://site.ru"} а таким URL быть не может, параметр должен быть декодирован, и декодирован. Конструкция может быть только такой {include file="engine/modules/redirect.php?obUrl=http%3A%2F%2Fsite.ru"} Поэтому нужно использовать систему плагинов, и через систему плагинов уже делать вывод на страницу информации или тега или ссылки или делать редирект на основе вашего поля, предварительно все кодировав или декодировав и выполнив правильный код с соблюдением всех стандартов. В модуль {include file="engine/modules/redirect.php?obUrl=...."} можно передавать параметры только с соблюдением требований к GET запросам и соответственно с соблюдением стандарта URL к таким запросам и никак иначе. Не подскажете, как можно реализовать редирект на основе дополнительного поля? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 12 сентября 2022 Рассказать Опубликовано: 12 сентября 2022 8 часов назад, radrigo сказал: Не подскажете, как можно реализовать редирект на основе дополнительного поля? Я не пишу плагинов на заказ, поэтому готового плагина вам предоставить не могу. Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 311 Опубликовано: 12 сентября 2022 Рассказать Опубликовано: 12 сентября 2022 14 часов назад, radrigo сказал: Не подскажете, как можно реализовать редирект на основе дополнительного поля? Что вам вообще сделать то нужно? Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 13 сентября 2022 Рассказать Опубликовано: 13 сентября 2022 (изменено) Автор 12.09.2022 в 15:48, Gameer сказал: Что вам вообще сделать то нужно? У меня на сайте в объявлениях пользователи могут добавлять ссылку на свой сайт через дополнительное поле. https://gusev-online.ru/obyavleniya/rabota/24651-obrazovatelnyj-centr-ischet-administratora.html Пользователи добавляют ссылку то с http, то без. Если в адресе ссылки в rel="" сама ссылка без http, кто добавляется адрес сайта, что мне не надо. Поэтому хочу при помощи модуля проверять, если в ссылке, которая вставлена через дополнительное поле, http. Если нет, то добавлять. Пока эту задачу решил при помощи js. Но хотелось бы, чтобы проверка осуществлялась через php Изменено 13 сентября 2022 пользователем radrigo Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.