Перейти к публикации

Усовершенствование модуля Он-лайн


Рекомендованные сообщения

Доброго времени суток форумчанам.

сайт

Хочу спросить у знатоков php. Помогите со вставкой нескольких строк кода.

Есть простенький модуль Он-лайн. Скачал давно, из себя представляет один файл и один tpl. В общем, меня устраивает.

Единственное "но". Хотелось бы усовершенствовать его для отображения названия тем, где находится пользователь.

Может кто подсказать, как реализовать это?

Привожу кусок кода, который отвечает за отображение нахождения пользователя:

switch($_REQUEST['do'])

{

	case 'addnews': $location = "Добавляет статью"; break;

	case 'tags': $location = "Просматривает облако тегов"; break;

	case 'lastnews': $location = "Просматривает последние статьи"; break;

	case 'static': $location = "Просматривает страницу: ".$titl_e; break;

	case 'favorites': $location = "Просматривает избранные статьи"; break;

	case 'rules': $location = "Просматривает правила сайта"; break;

	case 'stats': $location = "Просматривает статистику сайта"; break;

	case 'cat': $location = "Просматривает категорию: ".$cat_info[$category_id]['name']; break;

	case 'forum': $location = "Просматривает форум"; break;

	case 'board': $location = "Просматривает Доску объявлений"; break;

}


if (($subaction != '' or $newsid != '') and $news_found) { $location = "Читает статью: ".$titl_e; }

if($cstart != '') { $location = "Просматривает ".$cstart."-ю страницу"; }

if($_SERVER['REQUEST_URI']=='/index.php') { $location = "Просматривает главную страницу"; }

Как вы поняли, наверное, я только сумел добавить строчки "просматривает форум" и "просматривает доску объявлений".

Мне бы хотелось, чтобы можно было отобразить "просматривает тему на форуме: Съешь еще этих французских булочек"

Это сложно?

Да, форум DLE Forum

Изменено пользователем acelote
Ссылка на сообщение
Поделиться на других сайтах

Это сложно?

Да, форум DLE Forum

В принципе - нет. К сожалению, я не знаю как работает форум и какие там запросы, но выяснить это не сложно. Я в своем модуле для блока категорий подсветку сделал так:

1. написал в файле вывода код: echo $_SERVER['QUERY_STRING']; и определил запрос (как новости и категории без ЧПУ выводятся). Например, в новости N-ой категории узнал, что выводится, например, "newsid=1", значит, определить, что я нахожусь в новости, а не, например, в статической странице, странице обратной связи и т.д. можно так:

if (substr($_SERVER['QUERY_STRING'],0,6)=='newsid') {

  echo 'Я читаю новость.';

} else echo 'Я читаю что-то другуе.'; 
Подсветку текущей категории (можно чего угодно "текущего") сделал по аналогии. Ну, здесь по аналогии можно для вашего случая придумать как сделать. Надеюсь, помог, натолкнул на мысль :) Готовый код дать не могу - Денвер не пашет и ковырять форум долго очень. ---------- Судя по текущему форуму, здесь путь данной страницы такой: _http://forum.dle-news.ru/index.php?showtopic=51618&st=0&gopid=248515&#entry248515 Значит, тема у вас будет: "showtopic=51618", Вам нужно вписать "showtopic" в Ваш пример. Далее сделать выборку названия темы уже на русском языке. Если закините сюда скрины БД (чтоб было видно саму структуру) или просто напишите текстом какие там строки в таблице, я Вам запрос в БД напишу, тогда вместо "цифер" будет на русском языке "тема" форума написана. Полагаю, так нужно:
case 'showtopic': 

  {

    sql = "SELECT dle_title_post FROM dle_forum_post WHERE dle_post_id='51618'";

    $res = $db->query($sql);

    while ($r = $db->get_row($res)) $post_read = $r['dle_title_post'];

    $location = $post_read;

  }

  break;

Ну вот, думаю, по логике далее сами сообразите, привел весь вариант. ;)

Изменено пользователем zgr
Ссылка на сообщение
Поделиться на других сайтах

if (($subaction != '' or $newsid != '') and $news_found) { $location = "Читает статью: ".$titl_e; }

у вас все так сложно, зачем так делать? Ведь бы добавляете запрос к 1му юзеру, а если онлайн 800? Немереное количество запросов выходит...

Я конечно не знаток, но по коду выборка в его модуле делалась так:

if (($subaction != '' or $newsid != '') and $news_found) { $location = "Читает статью: ".$titl_e; }

сравнение идет как у вас, но без запроса... а название берется вообще из дефолт переменной, кажется...

Ссылка на сообщение
Поделиться на других сайтах

if (($subaction != '' or $newsid != '') and $news_found) { $location = "Читает статью: ".$titl_e; }

сравнение идет как у вас, но без запроса... а название берется вообще из дефолт переменной, кажется...

Я не знаю вообще ни форум, ни его структуру и т.д., поэтому написал простецкий пример... Бывает, когда сайт только запускают, то нужно просто "лишь бы работало", а про оптимизацию речи нет еще. Если имеется дефолтная переменная, то, конечно же, в разы упрощается код и он более оптимизированный получается, без лишних запросов.

ТС молчит, может, ему уже это и не нужно вовсе :) Ну а кто знает конкретный пример (модуль?), мог бы выложить для остальных, может, кому еще пригодится.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...