Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 18 Ответов
  • 22325 Просмотров
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Здравствуйте. Модуль новостей из категории имеет такую структуру, если настроить его по горизонтали:
Код: html4strict
<div class="latest-new">
<ul class="newsflash-horiz">
  <li>
    <h4 class="newsflash-title">  Материал </h4>
     <p>
        <img alt="image005" src="/images/image005.jpg">
    </p>
     <p>Текст материала.</p>
   <a class="readmore" href="/index.php/8-blog/1-material">Подробнее...</a>
 <span class="article-separator"> </span>
 </li>
</ul>
</div>

Вот у меня вопрос: Есть ли возможность переписать его в такой вид?
Код: html4strict
<div class="latest-new">
  <img alt="image005" src="/images/image005.jpg">
   <div class="mystyle">
      <h4 class="newsflash-title">  Материал </h4>
        <p>Текст материала.</p>
       <a class="readmore" href="/index.php/8-blog/1-material">Подробнее...</a>
   </div>
</div>
Если конкретнее сказать, мне нужно вывести  картинку за таблицу.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Хмм... а Вы разве его уже не переписали?
Переопределяйте модуль в шаблоне и модифицируйте, как Вам будет угодно.
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Хмм... а Вы разве его уже не переписали?
Переопределяйте модуль в шаблоне и модифицируйте, как Вам будет угодно.
Нет я его не переписывал, я еще вчера переопределил и со вчерашнего дня не могу модифицировать как не старался <img alt="image005" src="/images/image005.jpg"> и вывести его за  <li>. li поменять на div - это без проблем, а вывести никак не могу...
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Что мешает? опишите подробно.
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Что мешает? опишите подробно.
А выше разве не очень подробно...)
Подробнее: вывожу с бутстрапом 3 изображения по ширине:
Код: php
<div class="row<?php echo $params->get('moduleclass_sfx'); ?>">
<?php for ($i = 0, $n = count($list); $i < $n; $i ++) :
$item = $list[$i]; ?>
<div class="col-md-4">
<?php require JModuleHelper::getLayoutPath('mod_articles_news', '_item');

if ($n > 1 && (($i < $n - 1) || $params->get('showLastSeparator'))) : ?>

<span class="article-separator"> </span>

<?php endif; ?>
</div>
<?php endfor; ?>
</div>
Картинка попадает под col-md-4, а мне не нужно, чтобы она не входила в него. Структуру написал выше.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Код: php
<?php require JModuleHelper::getLayoutPath('mod_articles_news', '_item');

У вас тут подшаблон подключается. В нём нужно переопределять.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Правильно, картинка принадлежит итему, и выводится вместе с итемом, в отдельном шаблоне для итема _item.php
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
В стандартном модуле выводится изображение, содержащееся в тексте вступления, т.е вот здесь:
Код: php
$item->introtext;
и вытащить его достаточно проблематично.
Если вы в переопределенном макете выводите изображение для вступительного текста (вставили самостоятельно) - тогда можно
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Код: php
<?php require JModuleHelper::getLayoutPath('mod_articles_news', '_item');

У вас тут подшаблон подключается. В нём нужно переопределять.
В _item.php. А как? Можете помочь...
В стандартном модуле выводится изображение, содержащееся в тексте вступления, т.е вот здесь:
Код: php
$item->introtext;
и вытащить его достаточно проблематично.
Если вы в переопределенном макете выводите изображение для вступительного текста (вставили самостоятельно) - тогда можно
Вот именно на этом я и остановился, надо как-то отделить картинку от текста...
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Скорее всего файл называется default_item.php и находится там же, где и default.php. Выложите его листинг.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Как переделать структуру mod_articles_news?
« Ответ #10 : 01.05.2014, 10:16:50 »
Вот именно на этом я и остановился, надо как-то отделить картинку от текста...
Получаете в отдельную переменную значение записи (итема) $aitem = $item->introtext; выковыриваете регуляркой из $aitem картинку и уже потом выводите остаток во фронт. Как ковырять - не подскажу, только теоретически представляю ((

Файл называется _item.php, лежит рядом с default.php. оригинальное содержимое:

<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_articles_news
 *
 * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;
$item_heading $params->get('item_heading''h4');
?>
<?php 
if ($params->get('item_title')) : ?>

	
<<?php echo $item_heading?> class="newsflash-title<?php echo $params->get('moduleclass_sfx'); ?>">
	
<?php if ($params->get('link_titles') && $item->link != '') : ?>
	
	
<a href="<?php echo $item->link;?>">
	
	
	
<?php echo $item->title;?></a>
	
<?php else : ?>
	
	
<?php echo $item->title?>
	
<?php endif; ?>
	
</<?php echo $item_heading?>>

<?php endif; ?>

<?php if (!$params->get('intro_only')) :
	
echo 
$item->afterDisplayTitle;
endif; 
?>

<?php echo $item->beforeDisplayContent?>

<?php echo $item->introtext?>

<?php if (isset($item->link) && $item->readmore != && $params->get('readmore')) :
	
echo 
'<a class="readmore" href="'.$item->link.'">'.$item->linkText.'</a>';
endif; 
?>
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Re: Как переделать структуру mod_articles_news?
« Ответ #11 : 01.05.2014, 10:17:45 »
посмотрите здесь, может пригодится
http://www.wantweb.ru/mod-articles-news/mod-articles-news-date-image
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Как переделать структуру mod_articles_news?
« Ответ #12 : 01.05.2014, 10:24:17 »
В стандартном модуле выводится изображение, содержащееся в тексте вступления, т.е вот здесь:
Код: php
$item->introtext;
и вытащить его достаточно проблематично.
Если вы в переопределенном макете выводите изображение для вступительного текста (вставили самостоятельно) - тогда можно

Первый раз только проблемно. Потом привыкаешь. ^-^

Код: php
/*сперва найдём первую картинку, вернее только её адрес:*/
$src_regex = '#src\s*=\s*(["\'])(.*?)\1#'; //регулярка для поиска src картинки
preg_match_all($src_regex, $item->introtext, $matches); //где $item->introtext — переменная, в которой ищем.
$item->imgsrc = $matches[2][0];

/*потом удалим все теги, в том числе картинки из текста. Выборочные, например <p> можно оставить*/
$item->introtext = strip_tags($item->introtext);

/*подчистим:*/
$item->introtext = trim($item->introtext);

/*ещё можно подрезать строку до нужного количества символов без кромсания слов:*/
$txtcut = 600;
$item->introtext = strip_tags($item->introtext);
$item->introtext = substr(
$item->introtext, 0, (
strripos(
substr($item->introtext, 0, $txtcut), ' '
)
)
);

/*Всё, теперь можно выводить:*/

//$item->introtext = чистый, готовый текст для вывода.
//$item->imgsrc = значение src первой картинки
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Re: Как переделать структуру mod_articles_news?
« Ответ #13 : 01.05.2014, 10:35:56 »
посмотрите здесь, может пригодится
http://www.wantweb.ru/mod-articles-news/mod-articles-news-date-image
Интересная статья. но у меня вышло по две картинки. От вставленного кода и от стандартного кода. Автор не объяснил как заменить подробно.
Первый раз только проблемно. Потом привыкаешь. ^-^

Спойлер
[свернуть]


Как правильно этот код вставить? А то я вставил и у меня картинки пропали  ::)
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Как переделать структуру mod_articles_news?
« Ответ #14 : 01.05.2014, 10:40:53 »
Картинку вывести так:

Код: php
echo '<img src="'.$item->imgsrc.'" / >';
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Re: Как переделать структуру mod_articles_news?
« Ответ #15 : 01.05.2014, 10:50:34 »
Если я правильно понял, то нужно <?php echo $item->introtext; ?> заменить на :
Код: php
<?php $src_regex = '#src\s*=\s*(["\'])(.*?)\1#'; 
preg_match_all($src_regex, $item->introtext, $matches);
$item->imgsrc = $matches[2][0];
 

$item->introtext = strip_tags($item->introtext);
 
/*подчистим:*/
$item->introtext = trim($item->introtext);
 

$txtcut = 600;
$item->introtext = strip_tags($item->introtext);
$item->introtext = substr(
$item->introtext, 0, (
strripos(
substr($item->introtext, 0, $txtcut), ' '
)
)
);
echo '<img src="'.$item->imgsrc.'" / >' ?>
Если так, то пропал вступительный текст...
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Как переделать структуру mod_articles_news?
« Ответ #16 : 01.05.2014, 10:54:45 »
Я же файл не вижу.

Код: php
//выводим картинку:
echo '<img src="'.$item->imgsrc.'" / >';

//ниже выводим текст:
echo $item->introtext;
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Re: Как переделать структуру mod_articles_news?
« Ответ #17 : 01.05.2014, 11:12:03 »
Я же файл не вижу.

Код: php
//выводим картинку:
echo '<img src="'.$item->imgsrc.'" / >';

//ниже выводим текст:
echo $item->introtext;
Файл стандартный, я не использую готовые шаблоны ^-^. Спасибо большое! Получилось по вашему коду!
Спойлер
[свернуть]
Не обязательно было из-под col-md-4 выводить картинку, а достаточно было под div засунуть остальное))
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться