Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Вывод дополнительных полей в main.tpl

Вывод дополнительных полей в main.tpl


     11.01.2014    Общие вопросы по PHP, Хаки    11956

вопрос
Доброго времени!
На сайте небызвестного АлаичЪа нашел хак, позволяющий выводить допполя в main,tpl
Открыть index.php и найти:
$tpl->load_template ( 'main.tpl' );

После вставить:
if ( $subaction == 'showfull' AND isset( $xfieldsdata['имя_поля'] ) ) $tpl->set( '{pole1}', $xfieldsdata['имя_поля'] );
else $tpl->set('{pole1}', '' );

В main.tpl вставить в нужном месте тег {pole1}.

Но он не работает на DLE 10.1 (может и на более ранних тоже, не проверял).
Подскажите пожалуйста, как это исправить?

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


21 комментарий

rocksmart
Юзер

rocksmart - 11 января 2014 10:55 -


ravchik
Юзер

ravchik - 11 января 2014 11:50 -

Не подошло... Хак не выводит значения допполей.

rocksmart
Юзер

rocksmart - 11 января 2014 15:04 -

Ты устанавливал хак?

В шаблоне fullstory.tpl помещаешь данные доп.полей в код

[transfer=fullxfields]
[xfgiven_one] [xfvalue_one] [/xfgiven_one]
[xfgiven_two] [xfvalue_two] [/xfgiven_two]


[/transfer]


В main.tpl вставляешь тег


{transfer_fullxfields}

ravchik
Юзер

ravchik - 11 января 2014 15:37 -

устанавливал.
Решение вывода последнего введенного значения допполя я нашел.
Мне необходим вывод всех введенных значений допполя на главной... вот этого нигде не могу найти...

FastFud
Юзер

FastFud - 11 января 2014 12:46 -

Зайдите в show.short.php

Найдите там строку


// Обработка дополнительных полей

ravchik
Юзер

ravchik - 11 января 2014 12:59 -

Зашел. Нашел. Что делать дальше?

FastFud
Юзер

FastFud - 11 января 2014 13:12 -

Копируйте от


// Обработка дополнительных полей

до
ниже еще 1 строка такая же
// Обработка дополнительных полей


Если ничего не меняли в show.short.php то 421-486 строка. В index.php после


$tpl->load_template ( 'main.tpl' );


вставьте

ravchik
Юзер

ravchik - 11 января 2014 13:17 -

нашел решение от Sander'a - ссылка. Оно работает, но выводит только одно значение из дополнительного поля.
А мне нужно, чтобы выводились все имеющиеся значения этого поля.
Если есть небесплатное решение - пишите в личку.

zemekis
Юзер

zemekis - 19 июля 2014 19:40 -

Так скажите трансфером вопрос решается или нет?

ravchik
Юзер

ravchik - 19 июля 2014 21:23 -

нет, но есть другой вариант - нажать
сохраните код в файле engine/modules/xfarray.php
вывод значений допполя:
{include file="engine/modules/xfarray.php?=pole"}

zemekis
Юзер

zemekis - 20 июля 2014 16:45 -

Спасибо, сейчас попробую.

zemekis
Юзер

zemekis - 20 июля 2014 16:31 -

To ravchik:
Сделал так, как Вы посоветовали:
Файл положил в папку modules, а в main.tpl прописал {include file="engine/modules/xfarray.php?=sidebar"} - где sidebar название доп.поля. Результата нет. В папке кеш появился пустой файл. Подскажите пожалуйста, что не так.
Версия 10.2. Тип поля - список

ravchik
Юзер

ravchik - 20 июля 2014 18:56 -

Вот рабочий код, правда он с использованием dle api, я пытался сделать без него, но кэш получается пустым... решения проблемы не нашел... Так что придется пользоваться тем что есть (с dle api)вывод такой же

zemekis
Юзер

zemekis - 20 июля 2014 20:53 -

Я заменил код в файле xfarray.php на новый. Теперь в кеше появился файл с данными, среди которых есть и нужные. Но в страницу все равно не подставляются данные из доп поля. В том месте где стоит конструкция {include file="engine/modules/xfarray.php?=sidebar"} - пусто. Что я сделал не так?

ravchik
Юзер

ravchik - 20 июля 2014 21:38 -

очистите кэш.
а вообще в данное поле вбиты данные?

zemekis
Юзер

zemekis - 20 июля 2014 22:57 -

Кеш почистил первым делом.
Данные в поле вбиты. Специально проверил, в fullstory.tpl добавляю обычным методом, а в main.tpl - Вашим.
То что вставлено обычным методом выводится, а в main.tpl - ничего ((

zemekis
Юзер

zemekis - 21 июля 2014 01:00 -

Может еще какие-то правки в файлах нужны?

ravchik
Юзер

ravchik - 21 июля 2014 06:30 -

прошу простить меня великодушно.. я пропустил кое-что в строке вывода
{include file="engine/modules/xfarray.php?xfield=sidebar"} 

zemekis
Юзер

zemekis - 21 июля 2014 10:50 -

Не ошибается тот, кто ничего не делает ©.
Теперь выводит данные, только не выбранные в новости, а все вместе.
У меня там выбор left или right. Так их оба через пробел и выводит.

ravchik
Юзер

ravchik - 21 июля 2014 10:54 -

В этом и суть модуля - выводить ВСЕ введенные в опреденное доп.поле значения...
Если надо вводить какое-либо одно значение, то используйте {custom} и шаблон с [xfgiven_pole][xfvalue_pole][/xfgiven_pole]

zemekis
Юзер

zemekis - 21 июля 2014 15:42 -

Спасибо ravchik за потраченное время. Custom проблему тоже не решает. Как подставить ID новости я не нашел, а без этого вставляет значение от последней добавленной новости.
Наверное я неправильно подошел к вопросу. Может если я опишу проблему, Вы подскажете направление.
Хочу сделать так, что бы при добавлении новости можно было выбирать положение сайдбара.
Дополнительное поле: тип поля - список. Значения left и right.
В шаблоне это реализовано подставлением классов left и right в див который находится в main.tpl. Подставляться данные должны в при просмотре полной новости, так как во всех остальных случаях забито четко right.
На данный момент там стоит такая конструкция [not-aviable=showfull]right[/not-aviable][aviable=showfull]{include file="engine/modules/xfarray.php?xfield=sidebar"} [/aviable] и выводит оба поля.

Возможно custom и решит задачу но нужно четко подставлять ID той новости в которой он в данный момент находится.

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

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

наверх