Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать 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
Публикации
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
Прочитано: 14842 раз
[ Назад | Начало | Наверх ]
Комментарии

Serg_pnz
Дата: 03.09.2007 | Комментарий: 19
Serg_pnzkeeper, будет работать и на 3.0 - смотри чуть ниже посты под ником ТЮРЯГА, и мой ответ ему в "комментарие №9"
Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
keeper
Дата: 03.09.2007 | Комментарий: 18
keeperВ 2.4 Lite работает на ура.
Даже разбираться нет надобности.
Респект! http://kolobok.us/smiles/icq/good.gif
keeper
Дата: 03.09.2007 | Комментарий: 17
keeperСпасибо.
Как нибудь поиграюсь.
Пока нет на это времени, поэтому и спросил.
Не рабочие идеи я как правило откладываю на неопределённый срок.
А жаль хотелось уже подключить эту функцию. А у меня она не работает.
Ещё раз спасибо за помощь.


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
отредактированно 03.09.2007г.
Serg_pnz
Дата: 02.09.2007 | Комментарий: 16
Serg_pnzkeeper, по моему яснее не напишешь.
Тут важен сам принцип: расставляем 111111111 и смотрим где эти единички вылезли, если вообще вылезли.
Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
keeper
Дата: 02.09.2007 | Комментарий: 15
keeperСерж подскажите плиз

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
отредактированно 02.09.2007г.
keeper
Дата: 02.09.2007 | Комментарий: 14
keeperверсия 3.0

Ничего не понял.
Так как в не подходит обучение под мою версию.
Sнэйк
Дата: 25.05.2007 | Комментарий: 13
SнэйкСпасибо. Буду знать )))
Serg_pnz
Дата: 24.05.2007 | Комментарий: 12
Serg_pnzSнэйк, ну во-первых есть еще строка (слово) "комментарии". Хотя это во-вторых.
А во-первых голосование так же можно вывести на страницу общего предварительного просмотра, и т.д. и т.п. всё зависит от фантазии веб-мастера.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
отредактированно 24.05.2007г.

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
Sнэйк
Дата: 24.05.2007 | Комментарий: 11
SнэйкА зачем убирать подробнее, если в подробнее можно голосовать за новость/файл и т.д. ??? Или я чёго-то не понимаю ???
SeGAD
Дата: 24.05.2007 | Комментарий: 10
SeGADВсё отлично работает!!!!!!!!! СПАСИБО!!!
Всего 19 на 2 страницах по 10 на каждой странице
[ 1 | 2 ] [>>]
Вы не можете отправить комментарий анонимно, пожалуйста зарегистрируйтесь.
Календарь 3 в 1
- М - Г + Г + М
Ноябрь, 2024
пнвтсрчтптсбвс
123
45678910
11121314151617
18192021222324
252627282930
Купить.
Можно в кредит на 90 дней!
Навигация
»» RSS
Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул


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