Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Настройка и Изменение (http://forum.mynuke.ru/forumdisplay.php?f=11)
-   -   Необходимо скрестить блок Who_online & login (http://forum.mynuke.ru/showthread.php?t=347)

mallen 21.06.2005 03:12

Необходимо скрестить блок Who_online & login
 
Необходимо скрестить блок Who_online & login
help!
Необходимо, чтобы в блоке Login, если пользователь авторизирован выводилась надпись кто онлайн (блок who_online) и ссылка на Logout.
я пробовал эксперементировать с кодом, но проподает то одна функция то другая :(
Буду очень благодарен.

Soniks 21.06.2005 03:30

mallen а чем вам блок User_Info не устраивает, там как раз это совмещено.

mallen 21.06.2005 03:46

там много лишнего. мне надо максимум просто.
хелп, а я код посмотрю и может разберусь. нужна подсказка профессионала.

Soniks 21.06.2005 04:45

mallen ну мне так кажется легче удалить нежели что-то добавить:lol:

mallen 21.06.2005 05:11

=) ну я лом- пожалей бедного или скажи что удалить хоть - это я умею

Soniks 21.06.2005 17:10

mallen вот http://mynuke.ru/modules.php?name=D...p=getit&lid=101, настройте как вам надо.

mallen 22.06.2005 06:10

спасибо! =)

evildead 11.03.2007 13:49

а мне просто нужно чтоб пользователи могли Выходить одним кликом,
а то сейчас разлогиниться можно только заядя в Личный кабинет и там нажав Выход.
в блоке Авторизация висит ввод логина и пароля (непонятно зачем если уже вошли в систему, как ее убрать то).


только под логином админа есть правильная запись в разделе
Авторизация

Администратор:
[ Выйти ]

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

p.s. скачал файл в этой теме выше заменил но ничего так и не получилось у меня и с Юзер Инфо...

Alie 12.03.2007 12:33

evildead, откройте файл nuke/blocks/block_Modules.php. Найдите:
Код:
/* Now we make the Modules block with the correspondent links */ asort($modules_info);

Ниже добавляете:
Код:
if(is_user($user)){$content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=Your_account&op=logout\">Выйти</a><br>\n";}else{};


успехов в работе :veuzesmil

Astrix 12.03.2007 13:34

Вложений: 1
evildead, посмотрите в архиве.

В админке настройте, чтобы блок всегда отображался. А какой вариант вам больше по душе (мой или Alie) - выбирайте сами...

Удачи!

evildead 12.03.2007 14:08

я ен силен в php :(
но нашелтолько текст ниже (asort($modules_info); - этого нет

вставлял строку кот вы показали ничего не изменилось, в авторизации так же логин и пароль ввести только :sad:


/* Now we make the Modules block with the correspondent links */

$content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"index.php\">"._HOME."</a><br>\n";
$result3 = $db->sql_query("SELECT title, custom_title, view FROM " . $prefix . "_modules WHERE active='1' AND title!='$def_module' AND inmenu='1' ORDER BY custom_title ASC");
while ($row3 = $db->sql_fetchrow($result3)) {
$m_title = stripslashes($row3['title']);
$custom_title = $row3['custom_title'];
$view = intval($row3['view']);
$m_title2 = ereg_replace("_", " ", $m_title);
if ($custom_title != "") {
$m_title2 = $custom_title;
}
if ($m_title != $main_module) {
if ((is_admin($admin) AND $view == 2) OR $view != 2) {
$content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=$m_title\">$m_title2</a><br>\n";
}
}
}

с кодом я запутался с блоком block-Modules не получилось.

а вот с block-Login выложеным получилось теперь работает, СПАСИБО
только там в коде Your_account заменил букву a на заглавную A а то не находилось не работало.

СПАСИБО ВАМ пока все работает отлично :cool:

Alie 12.03.2007 16:47

Коли запутались - можно и помочь:
Я так понимаю это кусок вашего кода из блока block_modules.php:
Код:
/* Now we make the Modules block with the correspondent links */ //Ссылка на главную страницу: $content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"index.php\">"._HOME."</a><br>\n"; //Запрос и вывод активных модулей из БД: $result3 = $db->sql_query("SELECT title, custom_title, view FROM " . $prefix . "_modules WHERE active='1' AND title!='$def_module' AND inmenu='1' ORDER BY custom_title ASC"); while ($row3 = $db->sql_fetchrow($result3)) { $m_title = stripslashes($row3['title']); $custom_title = $row3['custom_title']; $view = intval($row3['view']); $m_title2 = ereg_replace("_", " ", $m_title); if ($custom_title != "") { $m_title2 = $custom_title; } if ($m_title != $main_module) { if ((is_admin($admin) AND $view == 2) OR $view != 2) { $content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=$m_title\">$m_title2</a><br>\n"; } } }

Введём вышенаписаную мной строку непосредственно под ссылку на стартовую страницу:
Код:
/* Now we make the Modules block with the correspondent links */ //Ссылка на главную страницу: $content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"index.php\">"._HOME."</a><br>\n"; //Ссылка на выход: if(is_user($user)){$content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=Your_account&op=logout\">Выйти</a><br>\n";}else{}; //Запрос и вывод активных модулей из БД: $result3 = $db->sql_query("SELECT title, custom_title, view FROM " . $prefix . "_modules WHERE active='1' AND title!='$def_module' AND inmenu='1' ORDER BY custom_title ASC"); while ($row3 = $db->sql_fetchrow($result3)) { $m_title = stripslashes($row3['title']); $custom_title = $row3['custom_title']; $view = intval($row3['view']); $m_title2 = ereg_replace("_", " ", $m_title); if ($custom_title != "") { $m_title2 = $custom_title; } if ($m_title != $main_module) { if ((is_admin($admin) AND $view == 2) OR $view != 2) { $content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=$m_title\">$m_title2</a><br>\n"; } } }

Как это работает:
Я написала простое условие для зарегистрированого пользователя и прочих (гости): если посетитель авторизован - в навигации появляется ссылка "Выход", в противном случае ссылка не выводится.
Код:
if(is_user($user)){ //Условие правильно $content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=Your_account&op=logout\">Выйти</a><br>\n"; //Выполнение } else { //Условие неправильно //Выполнение };

Немного освоившись в php вы сможете, по аналогии, без труда создавать полезные элементы для сайта.

Astrix 12.03.2007 17:10

Цитата: Сообщение от evildead
а вот с block-Login выложеным получилось теперь работает, СПАСИБО
только там в коде Your_account заменил букву a на заглавную A а то не находилось не работало.

СПАСИБО ВАМ пока все работает отлично :cool:


Всегда пожаллста! Если что - обращайтесь

Alie, думаю, что стоило поместить ссылку на выход в конец блока. ИМХО выглядит красивше и юзеру промахнуться меньше вероятность. Не приятно при навигации по сайту нечаянно выход кликнуть. Потом входить по-новой...

PHP код:
 /* Now we make the Modules block with the correspondent links */

//Ссылка на главную страницу:

$content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"index.php\">"._HOME."</a><br>\n";

//Запрос и вывод активных модулей из БД: 

$result3 $db->sql_query("SELECT title, custom_title, view FROM " $prefix "_modules WHERE active='1' AND title!='$def_module' AND inmenu='1' ORDER BY custom_title ASC");
while (
$row3 $db->sql_fetchrow($result3)) {
$m_title stripslashes($row3['title']);
$custom_title $row3['custom_title'];
$view intval($row3['view']);
$m_title2 ereg_replace("_"" "$m_title);
if (
$custom_title != "") {
$m_title2 $custom_title;
}
if (
$m_title != $main_module) {
if ((
is_admin($admin) AND $view == 2) OR $view != 2) {
$content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=$m_title\">$m_title2</a><br>\n";
}
}
}
//Ссылка на выход:
if(is_user($user)){
$content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=Your_Account&op=logout\">Выйти</a><br>\n";



И еще, зачем лишний код в строчке?:
PHP код:
 //Ссылка на выход:
if(is_user($user)){$content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=Your_account&op=logout\">Выйти</a><br>\n";}else{}; 


Оператор else тут совсем ни к чему и неопытного программера только в заблуждение вводит. Ну и точку с запятой после условных операторов обычно не ставят.
Но это лишь стили программирования - ничего против не имею. Пусть каждый поступает, как ему удобнее.

evildead 16.03.2007 13:51

спасибо вроде бы потихонку разбираюсь,

p.s. с новостями траблы теперь http://forum.mynuke.ru/showthread.php?p=13190#post13190


Часовой пояс GMT +4, время: 02:35.

Copyright © 2005 by Soniks