Перейти к публикации

Передать данные дополнительного поля в модуль


Рекомендованные сообщения

Всем привет.

Подскажите, как можно получить данные дополнительного поля в модуле?

Таким методом, если вставить шаблон полной новости, не получается
{include file="engine/modules/mymod.php?url=[xfvalue_vkontakte]"}

Заранее всем признателен за подсказку!

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Gameer сказал:

Почему не получается?

Вы имеете в виду, почему не получается таким методом?
{include file="engine/modules/mymod.php?url=[xfvalue_vkontakte]"}

Не знаю почему.

Например в файле mymod.php единственная строчка
echo $url;

На сайте выводится Array

Ссылка на сообщение
Поделиться на других сайтах

А если вместо url использовать другое имя переменной? Просто судя по всему в данном месте данное имя переменной уже занято другими данными, а ваши параметры не будут переписывать существующие данные.

Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, celsoft сказал:

А если вместо url использовать другое имя переменной? Просто судя по всему в данном месте данное имя переменной уже занято другими данными, а ваши параметры не будут переписывать существующие данные.

Всё получилось. Спасибо за подсказку)

Ссылка на сообщение
Поделиться на других сайтах

Не получается реализовать если в дополнительном поле содержится ссылка с https://.

Например, дополнительное поле содержит ссылку https://test.ru. По какой-то причине выводит только https

Ссылка на сообщение
Поделиться на других сайтах
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 который для простых интеграций и передачи простых значений, а не сложный требующих предварительной обработки.

Ссылка на сообщение
Поделиться на других сайтах
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;

Буду благодарен, если подскажите

Ссылка на сообщение
Поделиться на других сайтах

Кодировать нужно до отправки данных, т.е. до того как оно появится в {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 к таким запросам и никак иначе.

Ссылка на сообщение
Поделиться на других сайтах
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 к таким запросам и никак иначе.

Не подскажете, как можно реализовать редирект на основе дополнительного поля?

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, radrigo сказал:

Не подскажете, как можно реализовать редирект на основе дополнительного поля?

Я не пишу плагинов на заказ, поэтому готового плагина вам предоставить не могу.

Ссылка на сообщение
Поделиться на других сайтах
14 часов назад, radrigo сказал:

Не подскажете, как можно реализовать редирект на основе дополнительного поля?

Что вам вообще сделать то нужно?

Ссылка на сообщение
Поделиться на других сайтах
12.09.2022 в 15:48, Gameer сказал:

Что вам вообще сделать то нужно?

У меня на сайте в объявлениях пользователи могут добавлять ссылку на свой сайт через дополнительное поле.
https://gusev-online.ru/obyavleniya/rabota/24651-obrazovatelnyj-centr-ischet-administratora.html

Пользователи добавляют ссылку то с http, то без. Если в адресе ссылки в rel="" сама ссылка без http, кто добавляется адрес сайта, что мне не надо. Поэтому хочу при помощи модуля проверять, если в ссылке, которая вставлена через дополнительное поле, http. Если нет, то добавлять. Пока эту задачу решил при помощи js. Но хотелось бы, чтобы проверка осуществлялась через php

Изменено пользователем radrigo
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...