Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Шаблоны (TPL) » Как получить второе значение доп-поля типа "список"?

Как получить второе значение доп-поля типа "список"?


     04.11.2016    Шаблоны (TPL), Общие вопросы по PHP, Хаки    1705

вопрос
Как известно добавляя новое дополнительное поле типа "список" есть возможность указывать 2 значения разделяя их знаком "|" первое значение для отображения в шаблоне, а второе отображается в редактировании или добавлении новости.
Так вот нужно вытащить оба значения по типу [xfvalue_X before] [xfvalue_X after]
Что можете предложить в качестве решения?

Ответа пока нет


4 комментария

karakymv
Юзер

karakymv - 8 ноября 2016 14:57 -

Подскажите хотя бы где найти обработку этого тега?

karakymv
Юзер

karakymv - 8 ноября 2016 15:06 -

В engine/inc/xfileds.php нашел код:
        foreach (explode("\r\n", $value[4]) as $index1 => $value1) {
          $value1 = str_replace("'", "'", $value1);
          $value1 = explode("|", $value1);
          if( count($value1) < 2) $value1[1] = $value1[0];
          $select .= "<option value=\"$index1\"" . ($fieldvalue == $value1[0] ? " selected" : "") . ">{$value1[1]}</option>\r\n";
        }

Вижу здесь $value1 я так понимаю он выводится на сайте, а как мне получить $value0 то что выводится при добавлении новости? И собсно как вывести и его на сайте?

karakymv
Юзер

karakymv - 8 ноября 2016 16:30 -

Посмотрев в таблице _post колонку xfields увидел, что в базу идет запись только одного значения.
Значит мне нужно найти кусок кода, который записывает в базу значение поля типа список и добавить в запись второе значение, что бы далее можно было вывести оба значения в шаблоне.
Неужели никто не сталкивался с данной проблемой?

karakymv
Юзер

karakymv - 8 ноября 2016 16:45 -

1363 строка того же файла
            if ($value[3] == "select") {
                $options = explode("\r\n", $value[4]);
                $options = explode("|", $options[$_POST['xfield'][$value[0]]] );
                $postedxfields[$value[0]] = $options[0];
            }

Здесь вроде бы записывает первое значение в переменную $postedxfields[$value[0]] = $options[0];
Попробую ниже добавить $postedxfields1[$value[0]] = $options[1];
другую переменную в которую запишет второе значение (после разделителя |)
Теперь буду искать куда уходит переменная $postedxfields[$value[0]]

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх