Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать SSDForums
Скачать SSDForums 1.0.1 Скачать SSDForums 1.0.1
Скачать SSDForums 1.0.1 SP1 Скачать SSDForums 1.0.1 SP1
Скачать SSDForums 1.0.1 SP2 Скачать SSDForums 1.0.1 SP2
SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro
SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro
Jewelry Сase Team
Скачать Ruby Chat 0.1.1 Скачать Ruby Chat 0.1.1
Меню
Главная
Форум
Магазин цифровых товаров

Новости
Подписка на новости
Темы новостей
Добавить новость

Каталог файлов
Карта файлового архива
Публикации
Вопросы и ответы

Опросы
Анкета пользователя
Чат

BestMaker
Викторина
Архив новостей
Карманный оракул
Поиск по сайту с помощью Яндекс
Поиск по сайту с помощью Google
Фото дня
Для души
Погода на 3 дня
IndexCat
IndexTop
Map_Pages
Поиск по сайту









Интересное в сети

Sape — это система купли-продажи ссылок
с главных и внутренних страниц сайтов
Публикации
News
Убираем «Подробнее», если нет расширенного текста новости (Slaed 2.1 Lite)


Цитата
Vovich90
Я предлагаю написать урок, чтобы в модуле Новостей, если не имеется расширенного текста, не было кнопки подробнее.

Что же, давайте разработаем хак под это дело, заодно поучимся искать нужное место в коде.




Итак, у нас есть слово Подробнее.
Можно, конечно, сразу пойти в модуль News и начать его искать там, но иногда бывает, что искомое слово зарезервировано в константах для всей системы сразу или может всплыть в служебных функциях, а так же в шаблонах (темах оформления), поэтому начнем искать от корня сайта.


1. Запускаем полнотекстовый поиск по всем файлам и ищем Подробнее, причем в опциях поиска поставим Учитывать регистр.

Результат поиска таков:
…/admin/language/lang-russian.php
…/modules/News/language/lang-russian.php

Ну в админке сайта нам делать нечего, а вот второй файл - это про нас.


2. Файл modules/News/language/lang-russian.php опять ищем Подробнее с учетом регистра.
Это строка define("_READMORE","Подробнее");

Небольшое лирическое отступление: define - определяет именованную константу, в данном случае используется для перевода служебных слов на сайте на различные языки посредством языковых файлов-помошников.


3. Админка модуля нам сейчас не интересна, поэтому сразу открываем modules/News/index.php и ищем там _READMORE.

Имеем два вхождения: function news и function cat. Первая у нас работает, когда мы находимся на главной модуля, вторая - когда смотрим новости, принадлежащие какой либо категории (по ссылке вида index.php?name=News&op=cat&catid=1).


Примечание: если посмотреть на код внимательно, то видно, что данные набираются в $morelink, а потом уходят в themeindex. Закомментируйте строку $morelink = … , что бы понять за что отвечает эта переменная.


4. Нашли, теперь вопрос: что с ней делать. Предлагаю использовать метод "Длинных единиц", т.е. окружим нашу переменную как показано ниже, так будет более понятно, что нам скрывать, если нет расширенного описания к новости.

Итак было
<td align=\"left\">$story_link<b>"._READMORE."</b></a> | "._PDATE.":

сделаем так
<td align=\"left\">1111 $story_link 22222222 <b> 3333333 "._READMORE." 4444444 </b> 5555555 </a> 66666666 | 7777777777 "._PDATE.":

Обновив главную модуля теперь хорошо видно, что всё "лишнее" находится между единичками и семерками.
Для начала просто разобьем набор переменной $morelink на 3 части: первая - начало таблицы, вторая - ссылка Подробнее, третье, всё, что идет после Подробнее.

Итак было
Код
1
$morelink = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td align=\"left\">$story_link<b>"._READMORE."</b></a> | "._PDATE.": $datetime | "._POSTEDBY.": $posted | "._READS.": $counter $m_com <td align=\"right\"><a href=\"index.php?name=News&op=printpage&sid=$s_sid\"><img src=\"images/blocks/Print.gif\" border=\"0\" alt=\""._PRINTER."\" title=\""._PRINTER."\" align=\"center\"></a>  <a href=\"index.php?name=News&op=friendsend&sid=$s_sid\"><img src=\"images/blocks/Contact.gif\" border=\"0\" alt=\""._FRIEND."\" title=\""._FRIEND."\" align=\"center\"></a></td></tr></table>";


сделаем так
Код
1
2
3
$morelink = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td align=\"left\">";
$morelink .= "$story_link<b>"._READMORE."</b></a> | ";
$morelink .= ""._PDATE.": $datetime | "._POSTEDBY.": $posted | "._READS.": $counter $m_com <td align=\"right\"><a href=\"index.php?name=News&op=printpage&sid=$s_sid\"><img src=\"images/blocks/Print.gif\" border=\"0\" alt=\""._PRINTER."\" title=\""._PRINTER."\" align=\"center\"></a>  <a href=\"index.php?name=News&op=friendsend&sid=$s_sid\"><img src=\"images/blocks/Contact.gif\" border=\"0\" alt=\""._FRIEND."\" title=\""._FRIEND."\" align=\"center\"></a></td></tr></table>";


И теперь повесим условие на вторую часть нашего кода
if ($bodytext != "") {$morelink .= "$story_link<b>"._READMORE."</b></a> | ";}

Т.е. "если Расширенный текст не пуст, то добавить в $morelink ссылку Подробнее".


5. Окончательно код будет выглядеть так
Код
1
2
3
$morelink = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td align=\"left\">";
if ($bodytext != "") {$morelink .= "$story_link<b>"._READMORE."</b></a> | ";}
$morelink .= ""._PDATE.": $datetime | "._POSTEDBY.": $posted | "._READS.": $counter $m_com <td align=\"right\"><a href=\"index.php?name=News&op=printpage&sid=$s_sid\"><img src=\"images/blocks/Print.gif\" border=\"0\" alt=\""._PRINTER."\" title=\""._PRINTER."\" align=\"center\"></a>  <a href=\"index.php?name=News&op=friendsend&sid=$s_sid\"><img src=\"images/blocks/Contact.gif\" border=\"0\" alt=\""._FRIEND."\" title=\""._FRIEND."\" align=\"center\"></a></td></tr></table>";

И в заключение, как узнать, что в условии надо проверять именно $bodytext. Создайте новость, запомните, что писали в заголовке, тексте и расширенном тексте, посмотрите в таблице через phpMyAdmin в какие поля что попало, вот вам и ориентир. Переменная в коде обычно совпадает с названием поля таблицы.


Дата публикации: 01.03.2007
Прочитано: 12369 раз
[ Назад | Начало | Наверх ]
Комментарии

Serg_pnz
Дата: 03.05.2007 | Комментарий: 9
Serg_pnzТЮРЯГА, во-первых я вижу пробел между кавычками у тебя
Код
1
if ($bodytext != " ")


А во-вторых в тройке не запрашивается bodytext из таблицы.
Т.е. тебе необходимо немного расширить запрос
Код
1
2
$result = $db->sql_query("SELECT s.sid, s.catid, s.aid, s.title, s.time, s.hometext, s.comments, s.counter, s.acomm, s.score, s.ratings, c.id, c.title, c.description, c.img FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_categories AS c ON (s.catid=c.id) ".$order." LIMIT $offset, $newnum");
не забыв добавить переменную строкой ниже
Код
1
while (list($sid, $catid, $aid, $stitle, $time, $hometext, $comments, $counter, $acomm, $score, $ratings, $cid, $ctitle, $cdescription, $cimg) = $db->sql_fetchrow($result)) {

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
ТЮРЯГА
Дата: 28.04.2007 | Комментарий: 8
ТЮРЯГАСделал всё как описанно - шаг за шагом, но "Подробнее" так и не убралось :(

Думаю что проблемма с условием
Код
1
if ($bodytext != "") {$morelink .= "$story_link<b>"._READMORE."</b></a> | ";}
для 3.0 Pro изменил так:
Код
1
if ($bodytext != " ") {$link .= "<a href=\"index.php?name=$module_name&op=article&id=$sid\" title=\"$stitle\"><b>"._READMORE."</b></a> | ";}
В чём проблемма?

З.Ы.: Спасибо что Вы есть - Молодцы!
Serg_pnz
Дата: 22.03.2007 | Комментарий: 7
Serg_pnzТЮРЯГА, я нафига тут распинаюсь, непонятно?... Открой код и сделай всё по статье. Уж и единичек-двоек-семерок добавил...
Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
ТЮРЯГА
Дата: 22.03.2007 | Комментарий: 6
ТЮРЯГАНа 3.0 Pro пойдёт?
Akart
Дата: 15.03.2007 | Комментарий: 5
AkartПроверил, подходит. ТОлько вместо Print.gif надо поставить Topics.gif
Akart
Дата: 15.03.2007 | Комментарий: 4
AkartА для 1.6 этот вариант переделки подойдет?
AntDima
Дата: 02.03.2007 | Комментарий: 3
AntDimaSerg_pnz, спасибо!
ЗЫ ну почему в 3 про зазенденны комменты? Не удобно же!
Serg_pnz
Дата: 01.03.2007 | Комментарий: 2
Serg_pnzНадеюсь не очень запутанно получилось...
Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
Vovich90
Дата: 01.03.2007 | Комментарий: 1
Vovich90СПАСИБО!
Всего 19 на 2 страницах по 10 на каждой странице
[<<] [ 1 | 2 ]
Вы не можете отправить комментарий анонимно, пожалуйста зарегистрируйтесь.
Календарь 3 в 1
- М - Г + Г + М
Октябрь, 2019
пнвтсрчтптсбвс
123456
78910111213
14151617181920
21222324252627
28293031
Купить.
Можно в кредит на 90 дней!
Навигация
»» RSS
Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Вопросы и ответы | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул

Rambler's Top100

Генерация страницы: 0.079 сек. и 17 запросов к базе данных за 0.007 сек.
Web site engine code is Copyright © 2006 by SLAED CMS. All rights reserved.