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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


Добрый вечер!
Собственно, нужно вывести картинки из полной новости в краткую на 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


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


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

Сообщение отредактировал taxi2008 - 23.6.2012, 23:04


--------------------
ХОСТИНГ, на котором держу свои сайты
Своим рефералам предоставлю 3 месяца хостинга бесплатно!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Сергуня
Сергуня
сообщение 24.6.2012, 2:06; Ответить: Сергуня
Сообщение #4


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

Открываете 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


Обьясню по другому, т.к. многие не поняли..
Есть нынче макрос {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 );
                    }
    
                }


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
ХОСТИНГ, на котором держу свои сайты
Своим рефералам предоставлю 3 месяца хостинга бесплатно!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
29 freeax 4806 17.4.2024, 1:19
автор: sergio11
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыКто и зачем покупает картинки обезьян по $200 тысяч?
NFT
167 metvekot 27409 6.3.2024, 21:58
автор: Boymaster
Открытая тема (нет новых ответов) DLE xProtect
2 xoopw 5977 15.1.2024, 21:06
автор: Diana_Wesley
Открытая тема (нет новых ответов) Обновить сайт на CMS DLE
1 Sawich 1661 2.9.2023, 10:10
автор: WoWeb
Открытая тема (нет новых ответов) Изготовление красивых сайтов на DLE под ключ | Доступные цены
от 2000 руб.
1 Admiral_ukr 1598 20.11.2022, 10:08
автор: Webmaster24


 



RSS Текстовая версия Сейчас: 19.4.2024, 5:25
Дизайн