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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Зачастую нам требуется вывод простейший новостей, но стандартный модуль mod_latestnews версии движка 1.5 умеет показывать лишь заголовок. Начинаются поиски мега модулей для решения элементарной задачи. В этом примере расскажу как с помощью легкой модификации стандартного модуля вывести следующие данные: заголовок материала, дата создания, вступительный текст, ссылку "читать далее"
Итак мы будем работать с двумя файлами
modules\mod_latestnews\helper.php - подготовка данных (дальше хелпер)
modules\mod_latestnews\tmpl\default.php (дальше шаблон)

Открываем хелпер, находим строку
Код: php
$lists[$i]->text = htmlspecialchars ( $row->title );
под ней сразу добавляем
Код: php
$lists[$i]->created = JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC2'));
$lists[$i]->introtext = strip_tags ( $row->introtext );
Комментарии:
1 - конструкция DATE_FORMAT_LC2 используется чтобы привести выводимую дату к приличному виду, смотрим файл language\ru-RU\ru-RU.ini самое начало (можем изменить формат) и читаем справку по функции date
2 - функция strip_tags используется, чтобы избавить вступительный текст от всего HTML мусора, что хорош в режиме блога, но очень мешает в обычном модуле

Дальше переходим к шаблону, сразу приведу общий текст, сравнивайте с оригинальным и делайте выводы
Код: html4strict
<ul class="latestnews<?php echo $params->get ('moduleclass_sfx'); ?>">
<?php foreach ($list as $item) :  ?>
<li class="latestnews<?php echo $params->get ('moduleclass_sfx'); ?>">
<span class="date"><?php echo $item->created; ?></span>
<a href="<?php echo $item->link; ?>" class="latestnews<?php echo $params->get ('moduleclass_sfx'); ?>">
<?php echo $item->text; ?></a>
<br />
<?php echo $item->introtext; ?>
<a href="<?php echo $item->link; ?>" title="read more">read more</a>
</li>
<?php endforeach; ?>
</ul>

Комментарии:
1 - если мы не используем на сайте многоязычность, то фразу "read more" можно написать по русски но не забыть сохранить файл в кодироке UTF-8
2 - справка по используемым элементам массива
<?php echo $params->get ('moduleclass_sfx'); ?>- CSS суффикс, заданный в настройках модуля
<?php echo $item->text; ?> - заголовок материала
<?php echo $item->introtext; ?> - текст вступительный материала
<?php echo $item->created; ?> - дата создания материала
<?php echo $item->link; ?> - ссылка на полный текст материала

[spoiler title=Пара примеров модификаций]
Интро текст у нас в 500 слов а мы хотим выводить первые 200 символов, но аккуратно обрезать последнее слово а не посередине, потому функция примитивная, первый параметр - вхождение собственно текста ($row->introtext в цикле нашего хелпера), второй - количество символов, по которому будем обрезать)
Код: php
function NewsCrop ($text, $str_len ) {
$textCrop = strip_tags (mb_substr ($text, '0', $str_len) );
return $textCrop;
}
Пример применения примерно такой
Код: php
$str_len = '200';
$lists[$i]->introtext = NewsCrop ($row->introtext , $str_len);
[/spoiler]

Дальнейшие возможные модификации безграничны (элементарные знания php + sql необходимы), но для большинства хотелок этого должно быть достаточно, временные затраты 5 минут и все готово. На пиво принимаю в профиле :)
« Последнее редактирование: 18.08.2010, 08:17:00 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Tu-144

  • Осваиваюсь на форуме
  • 18
  • 4 / 0
Re: Модифицируем стандартный mod_latestnews
« Ответ #1 : 16.08.2009, 23:34:09 »
Спасибо огромное! Прям сегодня потребовалось:)
*

ArtNick

  • Осваиваюсь на форуме
  • 22
  • 2 / 0
Re: Модифицируем стандартный mod_latestnews
« Ответ #2 : 22.08.2009, 11:39:55 »
Здравствуйте. Для joostina не подскажете как такое же провернуть?
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #3 : 22.08.2009, 11:47:41 »
Здравствуйте. Для joostina не подскажете как такое же провернуть?
там еще проще (добавить в нужный запрос выборку данных и в цикле вывести), создайте отдельную тему и задайте конкретный вопрос, не забудьте приложить код mod_latestnews.php, так как joostina не использую
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Garun

  • Захожу иногда
  • 304
  • 17 / 3
Re: Модифицируем стандартный mod_latestnews
« Ответ #4 : 24.08.2009, 20:07:28 »
а чтобы не интро обрезать, а заголовок материала?
Готов к труду и обороне!
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #5 : 25.08.2009, 00:35:33 »
а чтобы не интро обрезать, а заголовок материала?
Код: php
$str_len = '50';
$lists[$i]->title = NewsCrop ($row->title , $str_len);
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Re: Модифицируем стандартный mod_latestnews
« Ответ #6 : 09.09.2009, 12:03:33 »
Отличная статья! +1

Вот здесь ошибка:
Код
<a href="<?php echo $item->link; ?">read more</a>
должно быть так:
Код
<a href="<?php echo $item->link; ?>">read more</a>

Вопросик по теме, как понимаю в папке своего шаблона можно создать папки templates\{template}\html\mod_latestnews\default.php в неё закинуть файл modules\mod_latestnews\tmpl\default.php  и в ней производить изменения, и шаблон модуля будет формироваться в ней, а не в первоначальной? И нельзя ли поместить helper.php в папку mod_latestnews в шаблоне, чтобы не прыгать по всем папкам, а менять в одном месте?
« Последнее редактирование: 09.09.2009, 13:21:31 от faraon_x »
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #7 : 09.09.2009, 13:59:23 »
с шаблоном именно так как написал, хелпер нельзя переместить, придется прыгать
Хотя попробуй переопределить путь его подключения в mod_latestnews.php
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Re: Модифицируем стандартный mod_latestnews
« Ответ #8 : 09.09.2009, 17:34:37 »
с шаблоном именно так как написал, хелпер нельзя переместить, придется прыгать
Хотя попробуй переопределить путь его подключения в mod_latestnews.php
Придеться так оставить, просто хотел все на шаблоне завязать, для обновления удобнее, а так все равно mod_latestnews.php надо будет менять.

Появилась странная проблема (подключил функцию обрезки текста до 200 символов), но в конце текста появляются знаки: черный ромб с вопросом, причем когда перехожу на страницу с другими компонентами. Например 1 картинка на ней модуль выводится на странице с ArtForms появляются эти знаки, пробовал с несколькими галереями, тоже самое.
На 2 картинки сама новость, отображается модуль нормально, если опубликован на странице со статьей тоже нормально.
Причем где появляется этот знак, обрезается текст больше чем на 200 символов.
Может подскажете где ошибка?

Код
<?php
/**
* @version $Id: helper.php 10857 2008-08-30 06:41:16Z willebil $
* @package Joomla
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined('_JEXEC') or die('Restricted access');

require_once (JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');


[b]function NewsCrop ($text, $str_len ) {
$textCrop = strip_tags (mb_substr ($text, '0', $str_len) );
return $textCrop;
}[/b]

class modLatestNewsHelper
{
function getList(&$params)
{
global $mainframe;

$db =& JFactory::getDBO();
$user =& JFactory::getUser();
$userId = (int) $user->get('id');

$count = (int) $params->get('count', 5);
$catid = trim( $params->get('catid') );
$secid = trim( $params->get('secid') );
$show_front = $params->get('show_front', 1);
$aid = $user->get('aid', 0);

$contentConfig = &JComponentHelper::getParams( 'com_content' );
$access = !$contentConfig->get('show_noauth');

$nullDate = $db->getNullDate();

$date =& JFactory::getDate();
$now = $date->toMySQL();

$where = 'a.state = 1'
. ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'
. ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'
;

// User Filter
switch ($params->get( 'user_id' ))
{
case 'by_me':
$where .= ' AND (created_by = ' . (int) $userId . ' OR modified_by = ' . (int) $userId . ')';
break;
case 'not_me':
$where .= ' AND (created_by <> ' . (int) $userId . ' AND modified_by <> ' . (int) $userId . ')';
break;
}

// Ordering
switch ($params->get( 'ordering' ))
{
case 'm_dsc':
$ordering = 'a.modified DESC, a.created DESC';
break;
case 'c_dsc':
default:
$ordering = 'a.created DESC';
break;
}

if ($catid)
{
$ids = explode( ',', $catid );
JArrayHelper::toInteger( $ids );
$catCondition = ' AND (cc.id=' . implode( ' OR cc.id=', $ids ). ')';
}
if ($secid)
{
$ids = explode( ',', $secid );
JArrayHelper::toInteger( $ids );
$secCondition = ' AND (s.id=' . implode( ' OR s.id=', $ids ). ')';
}

// Content Items only
$query = 'SELECT a.*, ' .
' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
' FROM #__content AS a' .
($show_front == '0' ? ' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' : '').
' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
' WHERE '. $where .' AND s.id > 0' .
($access ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid : '').
($catid ? $catCondition : '').
($secid ? $secCondition : '').
($show_front == '0' ? ' AND f.content_id IS NULL ' : '').
' AND s.published = 1' .
' AND cc.published = 1' .
' ORDER BY '. $ordering;
$db->setQuery($query, 0, $count);
$rows = $db->loadObjectList();

$i = 0;
$lists = array();

foreach ( $rows as $row )
{
if($row->access <= $aid)
{
$lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));
} else {
$lists[$i]->link = JRoute::_('index.php?option=com_user&view=login');
}


$lists[$i]->text = htmlspecialchars( $row->title );


[color=red]$lists[$i]->created = JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC2'));
$str_len = '200';
$lists[$i]->introtext = NewsCrop ($row->introtext , $str_len);[/color]
$i++;
}

return $lists;
}
}


[вложение удалено Администратором]
« Последнее редактирование: 09.09.2009, 17:41:26 от faraon_x »
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #9 : 09.09.2009, 17:41:51 »
1 - попробуй сохранить хелпер как UTF-8
2 - на сервере библиотека mb_substr точно работает нормально?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Re: Модифицируем стандартный mod_latestnews
« Ответ #10 : 09.09.2009, 17:46:16 »
1 - попробуй сохранить хелпер как UTF-8
2 - на сервере библиотека mb_substr точно работает нормально?
1 - в UTF-8, пересохранил, без изменений
2 - а как проверить её работоспособность?
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #11 : 09.09.2009, 17:49:25 »
2 - а как проверить её работоспособность?
посмотри в phpinfo (в админке есть информация о системе)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Re: Модифицируем стандартный mod_latestnews
« Ответ #12 : 09.09.2009, 17:55:19 »
Выдрал кусочек оттуда, не знаю оно нет:  ::)
Код
mbstringMultibyte Support 	enabled 
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 4.4.4
Multibyte regex (oniguruma) backtrack check On

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding no value no value
mbstring.language neutral neutral
mbstring.script_encoding no value no value
mbstring.strict_detection Off Off
mbstring.substitute_character
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #13 : 09.09.2009, 18:00:13 »
mbstringMultibyte Support    enabled  - работает, странно
приложи весь модуль целиком, чуть позже у себя полностью погоняю
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Re: Модифицируем стандартный mod_latestnews
« Ответ #14 : 09.09.2009, 18:07:05 »
Спасибо!


[вложение удалено Администратором]
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Re: Модифицируем стандартный mod_latestnews
« Ответ #15 : 09.09.2009, 18:59:06 »
Не пойму в чем проблема, но наверное не в модуле. Убрал функцию обрезки строки. В default.php заменил read more на читать далее>>>, в итоге если на главной странице или на странице со статьями все нормально, если на странице сторонних компонентов, то читать далее>>> превращается в ? ? >>>.
Как понимаю проблема с кодировкой, может быть и предыдущаю проблема отсюда, но не пойму откуда она всплывает?
И default.php и helper.php в UTF-8.
« Последнее редактирование: 09.09.2009, 23:08:41 от faraon_x »
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Re: Модифицируем стандартный mod_latestnews
« Ответ #16 : 10.09.2009, 21:44:13 »
Заметил ещё одну странность. При входе в PhocaGallery в раздел категорий, "читать далее" отображается вопросами, если войти в категорию с фотографиями, то опять все нормально отображается.
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #17 : 10.09.2009, 21:47:22 »
модуль на кодировку никак не вляет, он получает и отдает данные в UTF-8, надо смотреть собственно PhocaGallery - где она портит кодировку страницы
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Re: Модифицируем стандартный mod_latestnews
« Ответ #18 : 10.09.2009, 21:52:53 »
модуль на кодировку никак не вляет, он получает и отдает данные в UTF-8, надо смотреть собственно PhocaGallery - где она портит кодировку страницы
Может подскажете где копать, просто стоит 4 компонента галерей и ArtForms, во всех нестандартных компонентах отображается вопросами?
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей

Re: Модифицируем стандартный mod_latestnews
« Ответ #19 : 22.09.2009, 21:03:58 »
а можно ли запретить вывод в "последние новости" материала из определенного раздела?
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #20 : 22.09.2009, 21:59:39 »
а можно ли запретить вывод в "последние новости" материала из определенного раздела?
да, легко
в хелпере модуля в SQL запросе указываем в разделе WHERE условие s.id <> 10 где 10 - ID раздела, материалы которого не нужно выводить
Либо в настройках модуля через запятую можно указать ID разделов\категорий, материалы которых нужно показывать и никакие другие
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

Re: Модифицируем стандартный mod_latestnews
« Ответ #21 : 22.09.2009, 23:58:13 »
да, легко
в хелпере модуля в SQL запросе указываем в разделе WHERE условие s.id <> 10 где 10 - ID раздела, материалы которого не нужно выводить
Либо в настройках модуля через запятую можно указать ID разделов\категорий, материалы которых нужно показывать и никакие другие


Спасибо =)
*

chesster

  • Захожу иногда
  • 149
  • 0 / 0
Re: Модифицируем стандартный mod_latestnews
« Ответ #22 : 25.09.2009, 20:30:26 »
Подскажите пожалуйста, можно ли как-нибудь уменьшить размер адресной строки в ссылках модуля? SEO включен
У меня отображается ссылки типа http://site.ru/component/content/article/1-latest-news/50-open
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #23 : 25.09.2009, 20:35:52 »
Подскажите пожалуйста, можно ли как-нибудь уменьшить размер адресной строки в ссылках модуля? SEO включен
У меня отображается ссылки типа http://site.ru/component/content/article/1-latest-news/50-open
какое это имеет отношение к теме по модулю последних новостей? Создавайте новую тему и там спрашивайте (и используйте поиск по форуму с словом SEF)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

chesster

  • Захожу иногда
  • 149
  • 0 / 0
Re: Модифицируем стандартный mod_latestnews
« Ответ #24 : 25.09.2009, 20:48:19 »
какое это имеет отношение к теме по модулю последних новостей? Создавайте новую тему и там спрашивайте (и используйте поиск по форуму с словом SEF)
потому что такого размера ссылки заметил только на mod_latestnews, в остальных случаях длина вроде устраивает.. ну да ладно, намек понял, переезжаю в другую тему
*

Светлана_1981

  • Новичок
  • 9
  • 0 / 0
Re: Модифицируем стандартный mod_latestnews
« Ответ #25 : 29.09.2009, 16:31:14 »
Когда я вставляю следующий код:


function NewsCrop ($text, $str_len ) {
   $textCrop = strip_tags (mb_substr ($text, '0', $str_len) );
   return $textCrop;
}

то пишет Fatal error: Call to undefined function: mb_substr() in c:\program files\easyphp1-7\www\psu\modules\mod_latestnews\helper.php on line 19

вот мой весь код:
<?php
/**
* @version      $Id: helper.php 10857 2008-08-30 06:41:16Z willebil $
* @package      Joomla
* @copyright   Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license      GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined('_JEXEC') or die('Restricted access');

require_once (JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');
function NewsCrop ($text, $str_len ) {
      $textCrop = strip_tags (mb_substr ($text, '0', $str_len) );
      return $textCrop;
      }
class modLatestNewsHelper
{
   function getList(&$params)
   {
      global $mainframe;

      $db         =& JFactory::getDBO();
      $user      =& JFactory::getUser();
      $userId      = (int) $user->get('id');

      $count      = (int) $params->get('count', 5);
      $catid      = trim( $params->get('catid') );
      $secid      = trim( $params->get('secid') );
      $show_front   = $params->get('show_front', 1);
      $aid      = $user->get('aid', 0);

      $contentConfig = &JComponentHelper::getParams( 'com_content' );
      $access      = !$contentConfig->get('show_noauth');

      $nullDate   = $db->getNullDate();

      $date =& JFactory::getDate();
      $now = $date->toMySQL();

      $where      = 'a.state = 1'
         . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).'

)'
         . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >=

'.$db->Quote($now).' )'
         ;

      // User Filter
      switch ($params->get( 'user_id' ))
      {
         case 'by_me':
            $where .= ' AND (created_by = ' . (int) $userId . ' OR modified_by = ' . (int)

$userId . ')';
            break;
         case 'not_me':
            $where .= ' AND (created_by <> ' . (int) $userId . ' AND modified_by <> ' . (int)

$userId . ')';
            break;
      }

      // Ordering
      switch ($params->get( 'ordering' ))
      {
         case 'm_dsc':
            $ordering      = 'a.modified DESC, a.created DESC';
            break;
         case 'c_dsc':
         default:
            $ordering      = 'a.created DESC';
            break;
      }

      if ($catid)
      {
         $ids = explode( ',', $catid );
         JArrayHelper::toInteger( $ids );
         $catCondition = ' AND (cc.id=' . implode( ' OR cc.id=', $ids ). ')';
      }
      if ($secid)
      {
         $ids = explode( ',', $secid );
         JArrayHelper::toInteger( $ids );
         $secCondition = ' AND (s.id=' . implode( ' OR s.id=', $ids ). ')';
      }

      // Content Items only
      $query = 'SELECT a.*, ' .
         ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
         ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as

catslug'.
         ' FROM #__content AS a' .
         ($show_front == '0' ? ' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' : '').
         ' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
         ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
         ' WHERE '. $where .' AND s.id > 0' .
         ($access ? ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access

<= ' .(int) $aid : '').
         ($catid ? $catCondition : '').
         ($secid ? $secCondition : '').
         ($show_front == '0' ? ' AND f.content_id IS NULL ' : '').
         ' AND s.published = 1' .
         ' AND cc.published = 1' .
         ' ORDER BY '. $ordering;
      $db->setQuery($query, 0, $count);
      $rows = $db->loadObjectList();

      $i      = 0;
      $lists   = array();
      foreach ( $rows as $row )
      {
         if($row->access <= $aid)
         {
            $lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug,

$row->catslug, $row->sectionid));
         } else {
            $lists[$i]->link = JRoute::_('index.php?option=com_user&view=login');
         }
         $lists[$i]->text = htmlspecialchars( $row->title );
         $lists[$i]->created = JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC'));
                                 $str_len = '200';
         $lists[$i]->introtext = NewsCrop ($row->introtext , $str_len);
         $i++;
      }

      return $lists;
   }
}

где может быть ошибка?
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #26 : 29.09.2009, 17:19:08 »
Значит вам необходимо связаться с поддержкой хостинга, чтобы установили библиотеку php для работы с многобайтовыми строками php_mbstring.dll, тогда и функция mb_substr будет работать корректно
Пока можете заменить ее на обычную substr (но могут быть проблемы при работе с UTF)

P.S. используйте, пожалуйста, ВВ коды для оформления постов, для кода [ code ] тут код [ /code ] (без пробелов)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Светлана_1981

  • Новичок
  • 9
  • 0 / 0
Re: Модифицируем стандартный mod_latestnews
« Ответ #27 : 08.10.2009, 14:36:46 »
Подскажите, пожалуйста, почему в Opere появляется такой отступ сверху в модуле?

Вот мой css:

Код
.module_menu2 ul, .module_menu2 ul li
{


  list-style       :none;
  display:block;
  width             : auto !important;
  margin-left           : 3px;
  padding-left          : 1px;
  font-size        : 12px;


}

ul.menu2, ul.menu2 li
{
  background-image : none;
  list-style       :none;
 
 
}
.module_menu2 ul li a, .module_menu2 ul li a:link, .module_menu2 ul li a:visited
{
  display          : block; 
  font-size        : 12px;
  font-weight      : normal;
  padding          : 2px 10px;
  color            : #1d7ecf;
  padding-left     : 0px;
  text-decoration  : underline;
 
}

.module_menu2 ul li a:hover
{

  font-size        : 12px;
  font-weight      : normal;
  color            : #1d7ecf;
  text-decoration  : none;
  padding-left     : 0px;
  text-decoration : none;

}


[вложение удалено Администратором]
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Модифицируем стандартный mod_latestnews
« Ответ #28 : 08.10.2009, 17:23:13 »
Наверно для module_menu2 задан где то в другом месте паддинг, либо вертикальный margin для module_menu2 ul
Попробуйте для начала все это дело обнулить
Код: css
.module_menu2, .module_menu2 ul, .module_menu2 ul li {padding: 0px; margin: 0px; }
И посмотреть что получится
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Yugin

  • Новичок
  • 3
  • 0 / 0
Re: Модифицируем стандартный mod_latestnews
« Ответ #29 : 15.10.2009, 21:41:47 »
а как через ксс модулю стили дате и отступы тексту от даты и между новостями задать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Стандартный модуль случайного изображения не выводит фотографии

Автор strix

Ответов: 8
Просмотров: 6348
Последний ответ 19.10.2022, 16:07:11
от Andrej_777
Модуль mod_latestnews.php от Mambo 1.0.9

Автор Vaska

Ответов: 2
Просмотров: 729
Последний ответ 18.08.2018, 15:14:03
от Vaska
Стандартный модуль отображения меню

Автор Alex GOOD

Ответов: 4
Просмотров: 1103
Последний ответ 20.11.2016, 15:48:53
от Alex GOOD
Стандартный модуль случайное изображение чудит

Автор svetlovanton

Ответов: 0
Просмотров: 1084
Последний ответ 23.08.2015, 21:49:30
от svetlovanton
mod_latestnews j1, 5 - как реализовать автоматический/динамический вывод заголовков

Автор ang026

Ответов: 0
Просмотров: 956
Последний ответ 17.02.2014, 22:10:44
от ang026