» » Хак Аналог {image-x} для дололнительного поля

Хак Аналог {image-x} для дололнительного поля

Хак Аналог {image-x} для дололнительного поля


Иногда приходилось делать подобное, чтобы оптимизировать загрузку и кастомизировать вывод кадров на фильмах, которые загружены в дополнительное поле. Для создания тегов аналогичных {image- {fullimage-, но только для доп поля, делаем следующее.

1. В файле show.full.php перед!
$category_id = $row['category'];
$tpl->compile( 'content' );


добавить:
if (stripos ( $tpl->copy_template, "{xfimage-" ) !== false || stripos ( $tpl->copy_template, "{xfimageLarge-" ) !== false ) {
            $xfieldsdata = xfieldsdataload( $row['xfields'] );
            $images = array();
            preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $xfieldsdata['screens'], $media);
            $data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]);
   
            foreach($data as $url) {
                $info = pathinfo($url);
                if (isset($info['extension'])) {
                    if ($info['filename'] == "spoiler-plus" OR $info['filename'] == "spoiler-minus" ) continue;
                    $info['extension'] = strtolower($info['extension']);
                    if (($info['extension'] == 'jpg') || ($info['extension'] == 'jpeg') || ($info['extension'] == 'gif') || ($info['extension'] == 'png')) array_push($images, $url);
                }
            }
   
            if ( count($images) ) {
                $i=0;
                foreach($images as $url) {
                    $i++;
                    $tpl->copy_template = str_replace( '{xfimage-'.$i.'}', $url, $tpl->copy_template );
                    $tpl->copy_template = str_replace( '[xfimage-'.$i.']', "", $tpl->copy_template );
                    $tpl->copy_template = str_replace( '[/xfimage-'.$i.']', "", $tpl->copy_template );
                    $tpl->copy_template = str_replace( '{xfimagelarge-'.$i.'}', str_replace('thumbs/','',$url), $tpl->copy_template );   
                    $tpl->copy_template = str_replace( '[xfimagelarge-'.$i.']', "", $tpl->copy_template );
                    $tpl->copy_template = str_replace( '[/xfimagelarge-'.$i.']', "", $tpl->copy_template );
                }
   
            }
   
            $tpl->copy_template = preg_replace( "#\[xfimage-(.+?)\](.+?)\[/xfimage-(.+?)\]#is", "", $tpl->copy_template );
            $tpl->copy_template = preg_replace( "#\\{xfimage-(.+?)\\}#i", "{THEME}/dleimages/no_image.jpg", $tpl->copy_template );
            $tpl->copy_template = preg_replace( "#\[xfimagelarge-(.+?)\](.+?)\[/xfimagelarge-(.+?)\]#is", "", $tpl->copy_template );
            $tpl->copy_template = preg_replace( "#\\{xfimagelarge-(.+?)\\}#i", "{THEME}/dleimages/no_image.jpg", $tpl->copy_template );
        }

где screens меняет на название своего доп поля, где у нас загружены картинки.

2. В шаблоне fullstory.tpl прописываем код аналогичный этому:
[xfimage-1]<a href="{xfimagelarge-1}" rel="highslide" class="highslide"><img src="{poster src='{xfimagelarge-1}' width='187' height='143'}" alt='{title}' title='{title}'  /></a>[/xfimage-1][xfimage-2]<a href="{xfimagelarge-2}" rel="highslide" class="highslide"><img src="{poster src='{xfimagelarge-2}' width='187' height='143'}" alt='{title}' title='{title}'  /></a>[/xfimage-2][xfimage-3]<a href="{xfimagelarge-3}" rel="highslide" class="highslide"><img src="{poster src='{xfimagelarge-3}' width='187' height='143'}" alt='{title}' title='{title}' /></a>[/xfimage-3]


Проверено на 11.0-11.2
  • 0



7-05-2017, 19:31 609 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.