Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Блог » Умная обрезка переменной дополнительного поля

Умная обрезка переменной дополнительного поля


 D0Gmatist    19.01.2014    хак, dle 10.1    Блог    3498    2 комментария

\engine\modules\show.full.php - после
                    $tpl->set( $matches[0], $xfieldsdata[$value[0]] );
        
                }

\engine\modules\show.short.php - после
                    $tpl->set( $matches[0], $xfieldsdata[$value[0]] );
        
                }

\engine\modules\show.custom.php - после
            $tpl->set( $matches[0], $xfieldsdata[$value[0]] );

        }

\engine\modules\topnews.php - после
                    $tpl->set( $matches[0], $xfieldsdata[$value[0]] );
        
                }


Дописываем
                if ( preg_match( "#\\[xfvalue_{$preg_safe_name} symbol=\"(.*)\".+?sum.+?\\]#iSu", $tpl->copy_template, $matches ) ) {
                
                    $matchesSy = $matches[1][0];
                    
                    preg_match( "#\\[xfvalue_{$preg_safe_name}.+?symbol.+?sum=\"(.*)\"\\]#iSu", $tpl->copy_template, $matches );
                    
                    $matchesSu = $matches[1][0];
                            
                    $xfieldsdataList = explode($matchesSy,$xfieldsdata[$value[0]]);
                    $xfieldsdataCount = count($xfieldsdataList);
                    
                    $xfieldsdataSum = "";
                    for ($ixs=0; $ixs<$matchesSu; $ixs++) {
                        $xfieldsdataSum .= trim($xfieldsdataList[$ixs]);
                        if ($ixs<$matchesSu - 1) $xfieldsdataSum .= ", ";
                    }

                    $tpl->set( $matches[0], $xfieldsdataSum );
                
                }


Где у нас
[xfvalue_X symbol="Y" sum="Z"]
X - Имя доп. поля
Y - Символ который будет считаться разделением переменной на массив
Z - Число сколько возвращать массивов

пример [xfvalue_actors]
Кэмерон Дуглас, Эммануэль Шрики, Чэд Линдберг, Джэйк Хоффман, Брайан Клагман, Брэндон Уильямс, Кортни Пелдон, Чина Шаверс, Лиза Уилхойт, Терри Гарбер

в хаке [xfvalue_actors symbol="," sum="3"]
Кэмерон Дуглас, Эммануэль Шрики, Чэд Линдберг

Код толь ка что написан .. так что могут быть изъяны требующие доработки .. жду ваших критик )))

Всем спасибо за внимание Ваш Сергей Геннадьевич (D0Gmatist)

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

D0Gmatist
Юзер

D0Gmatist - -

Кто поставил отпишитесь .. у себя тестировал работает на ура ...
но не применять к доп полям где лежат картинки, видео...

AlexK
Юзер

AlexK - -

А на DLE 10.2 нет таких строк, помогите реализовать.

наверх