Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

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

Тема в разделе "Хаки DLE", создана пользователем byroot, 13 дек 2016.

13.12.16 в 18:55
29.03.21 в 15:10
15
2.061
4
  1. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
    Иногда приходилось делать подобное, чтобы оптимизировать загрузку и кастомизировать вывод кадров на фильмах, которые загружены в дополнительное поле.

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

    1. В файле show.full.php поред
    PHP:
            $category_id $row['category'];
            
    $tpl->compile'content' );
    добавить
    PHP:
            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 прописываем код аналогичный этому:
    HTML:
    [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.3
     
    #1 byroot, 13 дек 2016
    Последнее редактирование: 7 июн 2017
    • Нравится Нравится x 4
  2. Romantv

    Забанен

    Регистрация:
    17 июл 2015
    Сообщения:
    6.992
    Лучших ответов:
    6
    Рейтинги:
    +2.000 / 141 / -0
    поставил на локалке отлично все работает.сейчас на хост поставлю
     
    • Нравится Нравится x 1
  3. alexlip

    alexlip Бывалый

    Регистрация:
    3 мар 2016
    Сообщения:
    344
    Лучших ответов:
    0
    Рейтинги:
    +54 / 2 / -0
    Что-то у меня не заработало. В дополнительном поле загружаются фото. А вот в полной новости не выводятся
     
  4. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
    версия ДЛЕ какая? Как картинки загружаются в доп поле?
     
  5. alexlip

    alexlip Бывалый

    Регистрация:
    3 мар 2016
    Сообщения:
    344
    Лучших ответов:
    0
    Рейтинги:
    +54 / 2 / -0
    Версия 11.2. Создал дополнительное поле "Тип поляЗагружаемая галерея изображений" . Уже при добавлении загружаю в ручную 3 картинки они загружаются. Вставил предложенный код в полную новость но фото ни одного нет
     
  6. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
    ставь тип поля "несколько строк" и добавляй в него фото как [img*** или [thumbs***
     
    • Нравится Нравится x 1
  7. Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.840
    Лучших ответов:
    4
    Рейтинги:
    +257 / 56 / -0
    не могу найти вот это $category_id = $row['category']; $tpl->compile( 'content' ); на 12.1...
     
  8. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
    плохо ищешь:
    2018-03-15_01-31-52.png
     
  9. Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.840
    Лучших ответов:
    4
    Рейтинги:
    +257 / 56 / -0
    byroot да нашел... все вывелось только почему то минипостер суётся и создает тоже копии
    может из за того что выше выводится изображение на постер через poster доп поле?
     
  10. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
    Defoz если минипостеру не указывать что сжимать и выводить - он не должен работать (возможно в последней версии что-то изменилось - не проверял!).
     
  11. Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.840
    Лучших ответов:
    4
    Рейтинги:
    +257 / 56 / -0
    byroot я думаю тут конфликт какой то... так как делал все по инструкции с данной темы и получается.
    Так выводится минипостером картинки которые стоят -
    HTML:
    <img src="{poster src='{include file="engine/mods/get_src.php?f=[xfvalue_poster]"}' width='220' height='310' q='70' zoom='no' jpg='yes'}" alt="" title="" />
    А так выводятся скрины по твоей инструкции
    HTML:
    [xfimage-1]<a href="{xfimagelarge-1}" rel="highslide" class="highslide"><img src="{poster src='{xfimagelarge-1}' width='220' height='132'}" alt='' title=''  /></a>[/xfimage-1]
     
  12. iteam

    iteam Посетитель

    Регистрация:
    1 дек 2016
    Сообщения:
    51
    Лучших ответов:
    0
    Рейтинги:
    +15 / 3 / -0

    Вот что выходит( тут
    dle 14.1
     
  13. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
    доп поле "screens" сменил на своё?
    2021-03-29_18-58-40.png
     
  14. iteam

    iteam Посетитель

    Регистрация:
    1 дек 2016
    Сообщения:
    51
    Лучших ответов:
    0
    Рейтинги:
    +15 / 3 / -0
    Да, я даже доп поле назвал screens
     
  15. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
    и ещё: {poster... - это минипостер_в_2. Вместо него нужно прописывать ссылку на картинку без него, т.е.
    Код:
    {poster src='{xfimagelarge-1}' width='187' height='143'}
    заменить на
    Код:
    {xfimagelarge-1}
     
  16. iteam

    iteam Посетитель

    Регистрация:
    1 дек 2016
    Сообщения:
    51
    Лучших ответов:
    0
    Рейтинги:
    +15 / 3 / -0
    Код:
     
        [xfimage-1]<a href="{xfimagelarge-1}" rel="highslide" class="highslide"><img src="{xfimagelarge-1}" alt='{title}' title='{title}'  /></a>[/xfimage-1]
        [xfimage-2]<a href="{xfimagelarge-2}" rel="highslide" class="highslide"><img src="{xfimagelarge-2}" alt='{title}' title='{title}'  /></a>[/xfimage-2]
        [xfimage-3]<a href="{xfimagelarge-3}" rel="highslide" class="highslide"><img src="{xfimagelarge-3}" alt='{title}' title='{title}' /></a>[/xfimage-3]
        
    У меня так
     
Похожие темы
  1. Serhii
    Ответов:
    16
    Просмотров:
    1.772
  2. aeneas
    Ответов:
    7
    Просмотров:
    835
  3. ba1ance
    Ответов:
    6
    Просмотров:
    1.380
Загрузка...
Яндекс.Метрика