|
beliyadm
|
 |
« : 16.08.2009, 00:03:03 » |
|
Зачастую нам требуется вывод простейший новостей, но стандартный модуль mod_latestnews версии движка 1.5 умеет показывать лишь заголовок. Начинаются поиски мега модулей для решения элементарной задачи. В этом примере расскажу как с помощью легкой модификации стандартного модуля вывести следующие данные: заголовок материала, дата создания, вступительный текст, ссылку "читать далее" Итак мы будем работать с двумя файлами modules\mod_latestnews\helper.php - подготовка данных (дальше хелпер) modules\mod_latestnews\tmpl\default.php (дальше шаблон) Открываем хелпер, находим строку $lists[$i]->text = htmlspecialchars ( $row->title ); под ней сразу добавляем $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 самое начало (можем изменить формат) и читаем справку по функции date2 - функция strip_tags используется, чтобы избавить вступительный текст от всего HTML мусора, что хорош в режиме блога, но очень мешает в обычном модуле Дальше переходим к шаблону, сразу приведу общий текст, сравнивайте с оригинальным и делайте выводы <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; ?> - ссылка на полный текст материала Пара примеров модификаций Интро текст у нас в 500 слов а мы хотим выводить первые 200 символов, но аккуратно обрезать последнее слово а не посередине, потому функция примитивная, первый параметр - вхождение собственно текста ($row->introtext в цикле нашего хелпера), второй - количество символов, по которому будем обрезать) function NewsCrop ($text, $str_len ) { $textCrop = strip_tags (mb_substr ($text, '0', $str_len) ); return $textCrop; }Пример применения примерно такой $str_len = '200'; $lists[$i]->introtext = NewsCrop ($row->introtext , $str_len); Дальнейшие возможные модификации безграничны (элементарные знания php + sql необходимы), но для большинства хотелок этого должно быть достаточно, временные затраты 5 минут и все готово. На пиво принимаю в профиле 
|
|
|
|
« Последнее редактирование: 18.08.2010, 08:17:00 от beliyadm »
|
Записан
|
|
|
|
Tu-144
Захожу иногда

Репутация: +3/-0
Offline
Пол: 
Сообщений: 19
|
 |
« Ответ #1 : 16.08.2009, 23:34:09 » |
|
Спасибо огромное! Прям сегодня потребовалось:)
|
|
|
|
|
Записан
|
|
|
|
ArtNick
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Пол: 
Сообщений: 40
|
 |
« Ответ #2 : 22.08.2009, 11:39:55 » |
|
Здравствуйте. Для joostina не подскажете как такое же провернуть?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #3 : 22.08.2009, 11:47:41 » |
|
Здравствуйте. Для joostina не подскажете как такое же провернуть?
там еще проще (добавить в нужный запрос выборку данных и в цикле вывести), создайте отдельную тему и задайте конкретный вопрос, не забудьте приложить код mod_latestnews.php, так как joostina не использую
|
|
|
|
|
Записан
|
|
|
|
Garun
Давно я тут
  
Репутация: +15/-3
Offline
Пол: 
Сообщений: 374
|
 |
« Ответ #4 : 24.08.2009, 20:07:28 » |
|
а чтобы не интро обрезать, а заголовок материала?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #5 : 25.08.2009, 00:35:33 » |
|
а чтобы не интро обрезать, а заголовок материала?
$str_len = '50'; $lists[$i]->title = NewsCrop ($row->title , $str_len);
|
|
|
|
|
Записан
|
|
|
|
faraon_x
Давно я тут
  
Репутация: +25/-1
Offline
Сообщений: 368
Чем смогу, тем помогу ))) SEO
|
 |
« Ответ #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 »
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #7 : 09.09.2009, 13:59:23 » |
|
с шаблоном именно так как написал, хелпер нельзя переместить, придется прыгать Хотя попробуй переопределить путь его подключения в mod_latestnews.php
|
|
|
|
|
Записан
|
|
|
|
faraon_x
Давно я тут
  
Репутация: +25/-1
Offline
Сообщений: 368
Чем смогу, тем помогу ))) SEO
|
 |
« Ответ #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 »
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #9 : 09.09.2009, 17:41:51 » |
|
1 - попробуй сохранить хелпер как UTF-8 2 - на сервере библиотека mb_substr точно работает нормально?
|
|
|
|
|
Записан
|
|
|
|
faraon_x
Давно я тут
  
Репутация: +25/-1
Offline
Сообщений: 368
Чем смогу, тем помогу ))) SEO
|
 |
« Ответ #10 : 09.09.2009, 17:46:16 » |
|
1 - попробуй сохранить хелпер как UTF-8 2 - на сервере библиотека mb_substr точно работает нормально?
1 - в UTF-8, пересохранил, без изменений 2 - а как проверить её работоспособность?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #11 : 09.09.2009, 17:49:25 » |
|
2 - а как проверить её работоспособность?
посмотри в phpinfo (в админке есть информация о системе)
|
|
|
|
|
Записан
|
|
|
|
faraon_x
Давно я тут
  
Репутация: +25/-1
Offline
Сообщений: 368
Чем смогу, тем помогу ))) SEO
|
 |
« Ответ #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
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #13 : 09.09.2009, 18:00:13 » |
|
mbstringMultibyte Support enabled - работает, странно приложи весь модуль целиком, чуть позже у себя полностью погоняю
|
|
|
|
|
Записан
|
|
|
|
faraon_x
Давно я тут
  
Репутация: +25/-1
Offline
Сообщений: 368
Чем смогу, тем помогу ))) SEO
|
 |
« Ответ #14 : 09.09.2009, 18:07:05 » |
|
Спасибо!
|
|
|
|
|
Записан
|
|
|
|
faraon_x
Давно я тут
  
Репутация: +25/-1
Offline
Сообщений: 368
Чем смогу, тем помогу ))) SEO
|
 |
« Ответ #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 »
|
Записан
|
|
|
|
faraon_x
Давно я тут
  
Репутация: +25/-1
Offline
Сообщений: 368
Чем смогу, тем помогу ))) SEO
|
 |
« Ответ #16 : 10.09.2009, 21:44:13 » |
|
Заметил ещё одну странность. При входе в PhocaGallery в раздел категорий, "читать далее" отображается вопросами, если войти в категорию с фотографиями, то опять все нормально отображается.
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #17 : 10.09.2009, 21:47:22 » |
|
модуль на кодировку никак не вляет, он получает и отдает данные в UTF-8, надо смотреть собственно PhocaGallery - где она портит кодировку страницы
|
|
|
|
|
Записан
|
|
|
|
faraon_x
Давно я тут
  
Репутация: +25/-1
Offline
Сообщений: 368
Чем смогу, тем помогу ))) SEO
|
 |
« Ответ #18 : 10.09.2009, 21:52:53 » |
|
модуль на кодировку никак не вляет, он получает и отдает данные в UTF-8, надо смотреть собственно PhocaGallery - где она портит кодировку страницы
Может подскажете где копать, просто стоит 4 компонента галерей и ArtForms, во всех нестандартных компонентах отображается вопросами?
|
|
|
|
|
Записан
|
|
|
|
|
googa
Гость
|
 |
« Ответ #19 : 22.09.2009, 21:03:58 » |
|
а можно ли запретить вывод в "последние новости" материала из определенного раздела?
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #20 : 22.09.2009, 21:59:39 » |
|
а можно ли запретить вывод в "последние новости" материала из определенного раздела?
да, легко в хелпере модуля в SQL запросе указываем в разделе WHERE условие s.id <> 10 где 10 - ID раздела, материалы которого не нужно выводить Либо в настройках модуля через запятую можно указать ID разделов\категорий, материалы которых нужно показывать и никакие другие
|
|
|
|
|
Записан
|
|
|
|
|
googa
Гость
|
 |
« Ответ #21 : 22.09.2009, 23:58:13 » |
|
да, легко в хелпере модуля в SQL запросе указываем в разделе WHERE условие s.id <> 10 где 10 - ID раздела, материалы которого не нужно выводить Либо в настройках модуля через запятую можно указать ID разделов\категорий, материалы которых нужно показывать и никакие другие
Спасибо =)
|
|
|
|
|
Записан
|
|
|
|
chesster
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 24
|
 |
« Ответ #22 : 25.09.2009, 20:30:26 » |
|
Подскажите пожалуйста, можно ли как-нибудь уменьшить размер адресной строки в ссылках модуля? SEO включен У меня отображается ссылки типа http://site.ru/component/content/article/1-latest-news/50-open
|
|
|
|
|
Записан
|
|
|
|
|
beliyadm
|
 |
« Ответ #23 : 25.09.2009, 20:35:52 » |
|
Подскажите пожалуйста, можно ли как-нибудь уменьшить размер адресной строки в ссылках модуля? SEO включен У меня отображается ссылки типа http://site.ru/component/content/article/1-latest-news/50-open
какое это имеет отношение к теме по модулю последних новостей? Создавайте новую тему и там спрашивайте (и используйте поиск по форуму с словом SEF)
|
|
|
|
|
Записан
|
|
|
|
chesster
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 24
|
 |
« Ответ #24 : 25.09.2009, 20:48:19 » |
|
какое это имеет отношение к теме по модулю последних новостей? Создавайте новую тему и там спрашивайте (и используйте поиск по форуму с словом SEF) потому что такого размера ссылки заметил только на mod_latestnews, в остальных случаях длина вроде устраивает.. ну да ладно, намек понял, переезжаю в другую тему
|
|
|
|
|
Записан
|
|
|
|
Светлана_1981
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 8
|
 |
« Ответ #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
|
 |
« Ответ #26 : 29.09.2009, 17:19:08 » |
|
Значит вам необходимо связаться с поддержкой хостинга, чтобы установили библиотеку php для работы с многобайтовыми строками php_mbstring.dll, тогда и функция mb_substr будет работать корректно Пока можете заменить ее на обычную substr (но могут быть проблемы при работе с UTF)
P.S. используйте, пожалуйста, ВВ коды для оформления постов, для кода [ code ] тут код [ /code ] (без пробелов)
|
|
|
|
|
Записан
|
|
|
|
Светлана_1981
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 8
|
 |
« Ответ #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
|
 |
« Ответ #28 : 08.10.2009, 17:23:13 » |
|
Наверно для module_menu2 задан где то в другом месте паддинг, либо вертикальный margin для module_menu2 ul Попробуйте для начала все это дело обнулить .module_menu2, .module_menu2 ul, .module_menu2 ul li {padding: 0px; margin: 0px; }И посмотреть что получится
|
|
|
|
|
Записан
|
|
|
|
Yugin
Новичок
Репутация: +0/-0
Offline
Сообщений: 4
|
 |
« Ответ #29 : 15.10.2009, 21:41:47 » |
|
а как через ксс модулю стили дате и отступы тексту от даты и между новостями задать?
|
|
|
|
|
Записан
|
|
|
|
|