X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> [DLE] Вывести картинки из полной новости
taxi2008
taxi2008
Topic Starter сообщение 23.6.2012, 21:51; Ответить: taxi2008
Сообщение #1


Оптимизатор
******

Группа: Active User
Сообщений: 2034
Регистрация: 29.7.2008
Поблагодарили: 470 раз
Репутация:   114  


Добрый вечер!
Собственно, нужно вывести картинки из полной новости в краткую на DLE 9.6
На 9.2 выводил таким хаком (увы на 9.6 уже неработает):
Развернуть/Свернуть
1) Открываем engine/modules/show.full.php

Находим:
$news_found = TRUE;


и выше добавляем:

if ( $row['full_story'] != '' ) {
    preg_match_all( '/src="([^"]{1,300})"/si', $row['full_story'], $resultImg );
    if ( $resultImg ) {
        foreach ( $resultImg[1] as $val ) {
            $countImg++;
            $val = str_replace( 'thumbs/', '', $val );
            
            $nameImg = end( explode( '/', $val ) );
            $valThumb = str_replace( $nameImg, 'thumbs/' . $nameImg, $val );
            
            $tpl->set( '{src' . $countImg . '}', $val );
            $tpl->set( '{src' . $countImg . 't}', $valThumb );
            $hte_full = $row['full_story'];
        }
    }
}


2) Открываем index.php

Находим:
$tpl->load_template ( 'main.tpl' );


и ниже добавляем:

if ( $dle_module == 'showfull' && $hte_full != '' ) {
    preg_match_all( '/src="([^"]{1,300})"/si', $hte_full, $resultImg );
    if ( $resultImg ) {
        $countImg = 0;
        foreach ( $resultImg[1] as $val ) {
            $countImg++;
            $val = str_replace( 'thumbs/', '', $val );
            
            $nameImg = end( explode( '/', $val ) );
            $valThumb = str_replace( $nameImg, 'thumbs/' . $nameImg, $val );
        
            $tpl->set( '{src' . $countImg . '}', $val );
            $tpl->set( '{src' . $countImg . 't}', $valThumb );
        }
    }
}


----------------------------------------------------------
{src1} - ссылка на большую фотку
{src1t} - ссылка на уменьшенную


Подскажите, как подправить хак для DLE 9.6

ps: в долгу не останусь
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
hybrid
hybrid
сообщение 23.6.2012, 22:38; Ответить: hybrid
Сообщение #2


Завсегдатай
*****

Группа: Active User
Сообщений: 649
Регистрация: 29.6.2010
Поблагодарили: 127 раз
Репутация:   23  


taxi2008, этот вариант не подходит?

20. Для шаблонов вывода краткой и полной новости (shortstory.tpl и fullstory.tpl) добавлены новые теги: {image-x}, который выводит URL картинок находящихся в новости, где x это номер картинки в новости, например {image-1} выведет URL первой картинки в новости, [image-x] текст [/image-x] которые выводят текст, указанный в них только в случае если картинка с номером X присутствует в новости.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
taxi2008
taxi2008
Topic Starter сообщение 23.6.2012, 23:03; Ответить: taxi2008
Сообщение #3


Оптимизатор
******

Группа: Active User
Сообщений: 2034
Регистрация: 29.7.2008
Поблагодарили: 470 раз
Репутация:   114  


Сейчас картинки находяться в поле полной новости, а данное выше - выводит, если картинки находятся в поле краткой новости.
{image-x} неработает для поля полной новости, к сожелению!

Сообщение отредактировал taxi2008 - 23.6.2012, 23:04
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Сергуня
Сергуня
сообщение 24.6.2012, 2:06; Ответить: Сергуня
Сообщение #4


Бывалый
****

Группа: User
Сообщений: 284
Регистрация: 13.4.2008
Из: Подгорица
Поблагодарили: 48 раз
Репутация:   11  


Решение до безумности банально.

Открываете engine/modules/show.short.php и находите строку:

} else    $tpl->set( '{short-story}', "<div id=\"news-id-" . $row['id'] . "\" style=\"display:inline;\">" . $row['short_story'] . "</div>" );

Опосля вставляете:

$text = substr( stripslashes (strip_tags($row['short_story'], '<a><b><i><u><br></a><span>')), 0,999 )."...";        
$shortnews = $row['short_story'];
$noimage = "АДРЕСС ИЗОБРАЖЕНИЯ, ЕСЛИ ОТСУТСТВУЕТ В ПУБЛИКАЦИИ";
if (preg_match_all( '#<img[^>]*\\ssrc=(\'|")(.*?)\\1.*?>#i',$shortnews,$total))
foreach( $total[2] as $shortnews )
{
$tpl->set( '{imgshort}',$shortnews);
} else {
$tpl->set( '{imgshort}',$noimage);
}
$tpl->set( '{text}',$text);

Вывод картики shortstory.tpl:

<a href="{imgshort}" onclick="return hs.expand(this)">
<img src="{imgshort}" align="left" alt="{title}" title="{title}" style="margin-left: 2px; border: none;" border="0" width="ВАШЕ ЗНАЧЕНИЕ" height="ВАШЕ ЗНАЧЕНИЕ"></a>

Вывод текста в том же shortstory.tpl:

{text}


upd: Прошу прощения, написал чепуху ибо сразу не понял сути. Како принцип вывода из краткой в полную? Все картинки? Одну? Пять? Почему бы просто не скопировать их из полной новости? Или нужно чтобы для уже добавленных публикаций тоже работало?

Сообщение отредактировал Сергуня - 24.6.2012, 2:13


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
taxi2008
taxi2008
Topic Starter сообщение 24.6.2012, 11:50; Ответить: taxi2008
Сообщение #5


Оптимизатор
******

Группа: Active User
Сообщений: 2034
Регистрация: 29.7.2008
Поблагодарили: 470 раз
Репутация:   114  


Обьясню по другому, т.к. многие не поняли..
Есть нынче макрос {image-x} так? Он выводит картинки, если они присутствуют в поле короткой новости
Мне же, нужен точно тоже самое, но чтобы он мог выводить картинки из поля полной новости

Вот код макроса, однако изменить его сам не смог:
if (stripos ( $tpl->copy_template, "{image-" ) !== false) {

                $images = array();
                preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $row['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_count=0;
                    foreach($images as $url) {
                        $i_count++;
                        $tpl->copy_template = str_replace( '{image-'.$i_count.'}', $url, $tpl->copy_template );
                        $tpl->copy_template = str_replace( '[image-'.$i_count.']', "", $tpl->copy_template );
                        $tpl->copy_template = str_replace( '[/image-'.$i_count.']', "", $tpl->copy_template );
                    }
    
                }
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Адаптивная вёрстка и натяжка на Wordpress, DLE, Joomla и др. Создание мобильных версий.
Хороший код с оптимизацией по скорости. Сайты и лендинги "под ключ
15 Nell 1114 Вчера, 23:36
автор: Nell
Открытая тема (нет новых ответов) Чем сжимать картинки для сайта без потери качества
1st-finstep.ru - Заработок в сети и методы продвижения сайта
8 komarik_vlad 963 12.12.2017, 23:24
автор: komarik_vlad
Открытая тема (нет новых ответов) Новости mail.ru появятся в "рекомендациях" Вконтакте?
19 eduarddis 2760 12.12.2017, 20:37
автор: galikfor
Горячая тема (нет новых ответов) Регистрация Вашего сайта (профиля,DLE сайты,подписи на форумах,постинг Тиц 10> , ПР 1>)
277 kaartes 102576 7.12.2017, 9:55
автор: Tootkin
Горячая тема (нет новых ответов) Крупные новостные (СМИ) площадки, Яндекс Новости, Google News, анонсы, хорошая посещаемость.
37 NastyaLanPR 14166 7.12.2017, 9:46
автор: NastyaLanPR


 



RSS Текстовая версия Сейчас: 14.12.2017, 8:55
Дизайн