1 (22.06.2014 19:13 отредактировано vladimkrav)

Тема: Дополнительное поле

Приветствую !
У меня в шаблоне есть дополнительные файлы с расширением .tpl. Хочу в этих файлах выводить информацию из доп. поля, но при прописывании тегов [xfgiven_actors][xfvalue_actors][/xfgiven_actors] информация не выводится. Появляются разве что эти теги в тексте. Подскажите пожалуйста как подключить работу с дополнительными полями в этих файлах ?

2 (21.06.2014 23:39 отредактировано ExVood)

Re: Дополнительное поле

Походу только в short и full пашет.
Я актеров тегами сделал.

3 (22.06.2014 19:14 отредактировано vladimkrav)

Re: Дополнительное поле

Да в файле engine/modules/show.short.php есть часть кода "// Обработка дополнительных полей". Может скопировать и вставить в свой модуль?

Re: Дополнительное поле

vladimkrav пишет:

Может скопировать и вставить в свой модуль?

А что помешало попробовать до написания этого сообщения? smile

5

Re: Дополнительное поле

Я несколько дней экспериментирую, но увы, я не программист. Я даже не знаю в какую часть кода вставлять скопированное. Потом нужно еще подключить модуль в /engine/engine.php (наверное). Вот собираю данные с миру по нитке. Может что и получится.

Re: Дополнительное поле

vladimkrav, Я сам не программист, так что не подскажу. Но могу посоветовать обратиться к Паше Пафнутию, он поможет в этом вопросе!

7

Re: Дополнительное поле

admin, Спасибо за совет ! Я читал статьи на его сайте (вникал). Для меня пока это сложно. Попробую обратиться.

8

Re: Дополнительное поле

Что за модуль?

9

Re: Дополнительное поле

Парсер актеров.

10 (22.06.2014 19:58 отредактировано svetlana)

Re: Дополнительное поле

Я имею ввиду распространяется свободно или на заказ? Глянуть бы на модуль!

обычно достаточно
подключить

require_once ENGINE_DIR . '/classes/templates.class.php';

добавить

+ открыть спойлер
    if( strpos( $tpl->copy_template, "[xfvalue_" ) !== false OR strpos( $tpl->copy_template, "[xfgiven_" ) !== false ) { $xfound = true; $xfields = xfieldsload();}
    else $xfound = false;
if( $xfound ) {
            $xfieldsdata = xfieldsdataload( $row['xfields'] );
            
            foreach ( $xfields as $value ) {
                $preg_safe_name = preg_quote( $value[0], "'" );

                if ( $value[6] AND !empty( $xfieldsdata[$value[0]] ) ) {
                    $temp_array = explode( ",", $xfieldsdata[$value[0]] );
                    $value3 = array();

                    foreach ($temp_array as $value2) {

                        $value2 = trim($value2);
                        $value2 = str_replace("'", "'", $value2);

                        if( $config['allow_alt_url'] == "yes" ) $value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
                        else $value3[] = "<a href=\"$PHP_SELF?do=xfsearch&amp;xf=" . urlencode( $value2 ) . "\">" . $value2 . "</a>";
                    }

                    $xfieldsdata[$value[0]] = implode(", ", $value3);

                    unset($temp_array);
                    unset($value2);
                    unset($value3);

                }
        
                if( empty( $xfieldsdata[$value[0]] ) ) {
                    $tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
                    $tpl->copy_template = str_replace( "[xfnotgiven_{$preg_safe_name}]", "", $tpl->copy_template );
                    $tpl->copy_template = str_replace( "[/xfnotgiven_{$preg_safe_name}]", "", $tpl->copy_template );
                } else {
                    $tpl->copy_template = preg_replace( "'\\[xfnotgiven_{$preg_safe_name}\\](.*?)\\[/xfnotgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
                    $tpl->copy_template = str_replace( "[xfgiven_{$preg_safe_name}]", "", $tpl->copy_template );
                    $tpl->copy_template = str_replace( "[/xfgiven_{$preg_safe_name}]", "", $tpl->copy_template );
                }
                
                $xfieldsdata[$value[0]] = stripslashes( $xfieldsdata[$value[0]] );

                if ( preg_match( "#\\[xfvalue_{$preg_safe_name} limit=['\"](.+?)['\"]\\]#i", $tpl->copy_template, $matches ) ) {
                    $count= intval($matches[1]);
        
                    $xfieldsdata[$value[0]] = str_replace( "</p><p>", " ", $xfieldsdata[$value[0]] );
                    $xfieldsdata[$value[0]] = strip_tags( $xfieldsdata[$value[0]], "<br>" );
                    $xfieldsdata[$value[0]] = trim(str_replace( "<br>", " ", str_replace( "<br />", " ", str_replace( "\n", " ", str_replace( "\r", "", $xfieldsdata[$value[0]] ) ) ) ));
        
                    if( $count AND dle_strlen( $xfieldsdata[$value[0]], $config['charset'] ) > $count ) {
                            
                        $xfieldsdata[$value[0]] = dle_substr( $xfieldsdata[$value[0]], 0, $count, $config['charset'] );
                            
                        if( ($temp_dmax = dle_strrpos( $xfieldsdata[$value[0]], ' ', $config['charset'] )) ) $xfieldsdata[$value[0]] = dle_substr( $xfieldsdata[$value[0]], 0, $temp_dmax, $config['charset'] );
                        
                    }
        
                    $tpl->set( $matches[0], $xfieldsdata[$value[0]] );
        
                } else    $tpl->copy_template = str_replace( "[xfvalue_{$preg_safe_name}]", $xfieldsdata[$value[0]], $tpl->copy_template );

            }
        }

и к запросу дописать xfields

11

Re: Дополнительное поле

Платный.

12

Re: Дополнительное поле

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

Пробуйте.

13

Re: Дополнительное поле

Я много раз писал разработчику, но он не отвечает. Попробую Ваш совет.