Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Шаблоны (TPL) Не отображается {image-1} в preview.tpl

Не отображается {image-1} в preview.tpl


     24.03.2014    Шаблоны (TPL)    2333

вопрос
Не отображается {image-1} в preview.tpl. Все стили работаю, всё отображается кроме {image-1}. Что сделать что бы этот тэг работал? Может хаки для dle есть на эту тему, или по шаманить в php файлах?

Ответа пока нет


Комментарии пользователей (8)

legallaz
4

51 | 11

legallaz - 24 марта 2014 03:28 - Гости

Может, за место "{image-1}" лучше - "[xfvalue_]" (дополнительное поле) использовать?
А вообще скинь код из preview.tpl

Selsh
9

Selsh - 24 марта 2014 11:16 - Юзер

legallaz,

[short-preview]
<article>
    <div class="img">
        <img src="{image-1}">
    </div>
    <div class="disc">
        <h2>{title limit="40"}</h2>
        <p>{short-story}</p>
        <div class="but">
            [xfgiven_download]
            <a href="[xfvalue_download]" style="margin-right: 10px;">Скачать</a>
            [/xfgiven_download]
            <a href="{full-link}">Подробнее</a>
        </div>
    </div>
</article>
[/short-preview]

[full-preview]
<strong class="title">{title}<p>{views}</p><p>{comments-num}</p></strong>
<div class="news">
    {related-news}
</div>
[xfgiven_video]
<iframe width="640" height="480" src="https://www.youtube.com/embed/[xfvalue_video]" frameborder="0" allowfullscreen></iframe>
[/xfgiven_video]
<div class="news">
    <div class="banner-fullstory"></div>
    {related-news}
    </div>
<div class="description">{full-story}</div>
<div class="action">
    [xfgiven_download]<a href="[xfvalue_download]" class="act-but">Скачать</a>[/xfgiven_download]
    [xfgiven_buy]<a href="[xfvalue_buy]" class="act-but">Купить</a>[/xfgiven_buy]
    <a href="#" class="networks" style="background-position: -116px 0;"></a>
    <a href="#" class="networks" style="background-position: -87px 0;"></a>
    <a href="#" class="networks" style="background-position: -58px 0;"></a>
    <a href="#" class="networks" style="background-position: -29px 0;"></a>
    <a href="#" class="networks"></a>
    <b>Расскажи о нас:</b>
</div>
[/full-preview]

vitnet
218

2174 | 930

vitnet - 24 марта 2014 11:52 - Эксперт

engine/preview.php
Нужно добавить обработку тега {image-x}

Selsh
9

Selsh - 24 марта 2014 12:24 - Юзер

Как? Я просто не знаю php.

vitnet
218

2174 | 930

vitnet - 24 марта 2014 23:07 - Эксперт

Как я и говорил ранее: engine/preview.php
найти 1-й
if ( preg_match( "#\\{title limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches ) ) {
    $count = intval($matches[1]);
    .....
    $tpl->set( $matches[0], $title );
}

добавить ниже
/* Обработка картинок для тега {image-x} by vitnet */
$preview['short_story'] = stripslashes( $short_story );

if (stripos ( $tpl->copy_template, "{image-" ) !== false) {
    $images = array();
    preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $preview['short_story'], $media);
    $data = preg_replace('/(img|src)("|\'|="|=\')(.*)/i', "$3", $media[0]);

    foreach($data as $url) {
        $info = pathinfo($url);
        if (isset($info['extension'])) {
            $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( '{image-' . $i . '}', str_replace( '/thumbs', '', $url ), $tpl->copy_template ); /* вырезаем "/thumbs" и получаем прямую ссылку на оригинал постера, если не нужно тогда "str_replace( '/thumbs', '', $url ), заменить на $url, */
            $tpl->copy_template = str_replace( '[image-' . $i . ']', "", $tpl->copy_template );
            $tpl->copy_template = str_replace( '[/image-' . $i . ']', "", $tpl->copy_template );
        }
    }

    $tpl->copy_template = preg_replace( "#\[image-(.+?)\](.+?)\[/image-(.+?)\]#is", "", $tpl->copy_template );            
    $tpl->copy_template = preg_replace( "#\\{image-(.+?)\\}#i", "{THEME}/dleimages/no_image.jpg", $tpl->copy_template );
}

найти 2-й
if ( preg_match( "#\\{title limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches ) ) {
    $count = intval($matches[1]);
    .....
    $tpl->set( $matches[0], $title );
}

добавить ниже
$preview['full_story'] = stripslashes( $full_story );

if (stripos ( $tpl->copy_template, "{image-" ) !== false) {
    $images = array();
    preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $preview['full_story'], $media);
    $data = preg_replace('/(img|src)("|\'|="|=\')(.*)/i', "$3", $media[0]);

    foreach($data as $url) {
        $info = pathinfo($url);
        if (isset($info['extension'])) {
            $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( '{image-' . $i . '}', str_replace( '/thumbs', '', $url ), $tpl->copy_template ); /* вырезаем "/thumbs" и получаем прямую ссылку на оригинал постера, если не нужно тогда "str_replace( '/thumbs', '', $url ), заменить на $url, */
            $tpl->copy_template = str_replace( '[image-' . $i . ']', "", $tpl->copy_template );
            $tpl->copy_template = str_replace( '[/image-' . $i . ']', "", $tpl->copy_template );
        }
    }

    $tpl->copy_template = preg_replace( "#\[image-(.+?)\](.+?)\[/image-(.+?)\]#is", "", $tpl->copy_template );            
    $tpl->copy_template = preg_replace( "#\\{image-(.+?)\\}#i", "{THEME}/dleimages/no_image.jpg", $tpl->copy_template );
}
Готово!

Selsh
9

Selsh - 25 марта 2014 09:09 - Юзер

Огромное спасибо :), Где ты учил PHP?

legallaz
4

51 | 11

legallaz - 24 марта 2014 16:16 - Гости

[short-preview]
<article>
    <div class="img">
        [xfgiven_poster]<center><img src="[xfvalue_poster] "width="600" height="480" /></center>[/xfgiven_poster]
    </div>
    <div class="disc">
        <h2>{title limit="40"}</h2>
        <p>{short-story}</p>
        <div class="but">
            [xfgiven_download]
            <a href="[xfvalue_download]" style="margin-right: 10px;">Скачать</a>
            [/xfgiven_download]
            <a href="{full-link}">Подробнее</a>
        </div>
    </div>
</article>
[/short-preview]


Я добавил значение

[xfgiven_poster]<center><img src="[xfvalue_poster] "width="600" height="480" /></center>[/xfgiven_poster]


Это дополнительное поле. Создай его "poster" и пользуйся).
Не забудь под себя изменить размер постера "width="600" height="480"
Нужно привыкать работать с дополнительными полями!

Selsh
9

Selsh - 25 марта 2014 09:08 - Юзер

Спасибо )

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

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