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

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


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

вопрос
Доброго времени!
На сайте небызвестного АлаичЪа нашел хак, позволяющий выводить допполя в 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
64

307 | 115

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


ravchik
66

375 | 123

ravchik - 11 января 2014 11:50 - Юзер

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

rocksmart
64

307 | 115

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
66

375 | 123

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

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

FastFud
50

1599 | 588

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

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

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


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

ravchik
66

375 | 123

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

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

FastFud
50

1599 | 588

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

Копируйте от


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

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


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


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


вставьте

ravchik
66

375 | 123

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

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

zemekis
20

zemekis - 19 июля 2014 19:40 - Юзер

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

ravchik
66

375 | 123

ravchik - 19 июля 2014 21:23 - Юзер

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

zemekis
20

zemekis - 20 июля 2014 16:45 - Юзер

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

zemekis
20

zemekis - 20 июля 2014 16:31 - Юзер

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

ravchik
66

375 | 123

ravchik - 20 июля 2014 18:56 - Юзер

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

zemekis
20

zemekis - 20 июля 2014 20:53 - Юзер

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

ravchik
66

375 | 123

ravchik - 20 июля 2014 21:38 - Юзер

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

zemekis
20

zemekis - 20 июля 2014 22:57 - Юзер

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

zemekis
20

zemekis - 21 июля 2014 01:00 - Юзер

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

ravchik
66

375 | 123

ravchik - 21 июля 2014 06:30 - Юзер

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

zemekis
20

zemekis - 21 июля 2014 10:50 - Юзер

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

ravchik
66

375 | 123

ravchik - 21 июля 2014 10:54 - Юзер

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

zemekis
20

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 той новости в которой он в данный момент находится.

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

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