Может кому пригодиться ...
-
- phpBB 2.0.5
- Сообщения: 477
- Стаж: 20 лет 9 месяцев
Олег
То, что я указал, это только форма входа на форум, и не более.
У нее есть свои и плюсы и минусы.
Если тебе нужна выборка данных из базы - имя юзера, кол-во сообщений, и тд, здесь несколько сложнее.
Все это уже не раз описывалось, и писать еще раз нет смысла.
Есть два варианта, если нужно, напишу позже, а пока дам только ссылку на вариант, как ЭТО сделать правильно:
http://www.ajquick.com/programming/phpbb/tutorial/
То, что я указал, это только форма входа на форум, и не более.
У нее есть свои и плюсы и минусы.
Если тебе нужна выборка данных из базы - имя юзера, кол-во сообщений, и тд, здесь несколько сложнее.
Все это уже не раз описывалось, и писать еще раз нет смысла.
Есть два варианта, если нужно, напишу позже, а пока дам только ссылку на вариант, как ЭТО сделать правильно:
http://www.ajquick.com/programming/phpbb/tutorial/
-
- phpBB 2.0.5
- Сообщения: 477
- Стаж: 20 лет 9 месяцев
В течении 24-ех часов, наш форум посещали ...
Незнаю, может кому и пригодиться ...
Собственно, вырезка из мода:
## MOD Author: rhs98 < russ@isitaboat.co.uk > (Russell Smith) http://russ.isitaboat.co.uk/
## MOD Description: Shows which users have been online today.
## MOD Version: 1.1.2
Отличие от мода - список посетивших, выводится не на главную страницу, а в отдельную.
При посещаемом форуме, оригинальный мод будет сильно подгружать главную страницу, поэтому, передал.
Создаете два файла, и в index_body.tpl делаете ссылку на today.php.
today.php (в корень форума)
today.tpl в (templates/xxxxxxx/today.tpl)
Шаблон, естественно, подгоните под себя.
К сожалению, оформлять по правилам, нет времени, но на вопросы, по возможности, отвечу ...
Незнаю, может кому и пригодиться ...
Собственно, вырезка из мода:
## MOD Author: rhs98 < russ@isitaboat.co.uk > (Russell Smith) http://russ.isitaboat.co.uk/
## MOD Description: Shows which users have been online today.
## MOD Version: 1.1.2
Отличие от мода - список посетивших, выводится не на главную страницу, а в отдельную.
При посещаемом форуме, оригинальный мод будет сильно подгружать главную страницу, поэтому, передал.
Создаете два файла, и в index_body.tpl делаете ссылку на today.php.
today.php (в корень форума)
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = "php";
include($phpbb_root_path . 'common.'.$phpEx);
// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management
// Lets build a page ...
$page_title = $l_title;
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'today.tpl')
);
make_jumpbox('viewforum.'.$phpEx);
// Begin USERS ONLINE TODAY
// http://russ.isitaboat.co.uk/
$uot_this_timestamp_array = getdate();
$uot_when_from = mktime ( 0 , 0 , 0 , $uot_this_timestamp_array[mon] , $uot_this_timestamp_array[mday] , $uot_this_timestamp_array[year] );
$sql = "SELECT count(*) cnt
FROM ".USERS_TABLE." u
WHERE u.user_session_time >= ". $uot_when_from . "
ORDER BY u.username ASC";
if ( !($uot_result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain regd user/online information', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($uot_result);
$uot_count = $row['cnt'];
$sql = "SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, user_session_time
FROM ".USERS_TABLE." u
WHERE u.user_session_time >= ". $uot_when_from . "
ORDER BY u.username ASC";
if ( !($uot_result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain regd user/online information', '', __LINE__, __FILE__, $sql);
}
$users_online_today=array();
while ( $row = $db->sql_fetchrow($uot_result) )
{
//counter stuff
$$which_counter++;
$row_color = ( $$which_counter % 2 ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( $$which_counter % 2 ) ? $theme['td_class1'] : $theme['td_class2'];
//generate the user name (robbed from the code above)
$uot_user_id = $row['user_id'];
//reset the style...
$uot_style = '';
if ( $uot_user_id != $prev_user )
{
$uot_username_plain = $uot_username = $row['username'];
if ( $row['user_level'] == ADMIN )
{
$uot_style = 'style="color:#' . $theme['fontcolor3'] . ';"';
$uot_username = '<b>' . $uot_username . '</b>';
}
else if ( $row['user_level'] == MOD )
{
$uot_style = 'style="color:#' . $theme['fontcolor2'] . ';"';
$uot_username = '<b>' . $uot_username . '</b>';
}
if ( !$row['user_allow_viewonline'] )
{
$view_online = ( $userdata['user_level'] == ADMIN ) ? true : false;
$uot_username = $lang['UOT_hidden_start'] . $uot_username . $lang['UOT_hidden_end'];
}
else
{
$view_online = true;
}
}
//annon does not have a profile...
if($row['user_id']>0){
$uot_username = sprintf('<a href="profile.php?mode=viewprofile&u=%d" title="%s последнее посещение в: %s" %s>%s</a>',$uot_user_id,$uot_username_plain,create_date('d-m-Y H:i', $row['user_session_time'], $board_config['board_timezone']),$uot_style,$uot_username);
}
//this will show just the user's name, with the time in the tool tip.
if($view_online)
{
array_push($users_online_today,$uot_username);
}
}
if(count($users_online_today)==0){
array_push($users_online_today,$lang['UOT_none']);
}
$template->assign_vars(array(
'UOT_COUNT' => $uot_count,
'UOT_LIST' => implode(", ",$users_online_today)
)
);
//end of UOT
// Generate the page
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
today.tpl в (templates/xxxxxxx/today.tpl)
Код: Выделить всё
<br><table width=100% cellspacing=2 cellpadding=2 border=0><tr><td><a class=topictitle href="{U_INDEX}">{L_INDEX}</a></td></tr></table>
<table class=forumline width=100% cellspacing=1 cellpadding=3 border=0>
<tr><th>В течении 24-ех часов, наш форум посещало участников - <font color="bb1100">{UOT_COUNT}</font></th></tr>
<tr class=postbody>
<td class=row1 align=left> {UOT_LIST} </td>
</tr>
</table>
<br>
<table width=100% height=30 border=0 cellpadding=2 cellspacing=0 align=center>
<tr class=postbody><td align=left valign=top>{JUMPBOX}</td></tr>
</table>
К сожалению, оформлять по правилам, нет времени, но на вопросы, по возможности, отвечу ...
Последний раз редактировалось Jovani 30.05.2005 5:38, всего редактировалось 1 раз.
-
- Поддержка
- Сообщения: 5389
- Стаж: 20 лет
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 728 раз
Jovani
кстати, есть мод такой - вот весь его код
кстати, есть мод такой - вот весь его код
Код: Выделить всё
########################################################
##
## MOD Title: Users of the day
## MOD Version: 2.0
## Author: ZoZo <zozo@etoiles.net>
##
## Description:
## Displays, under the online users list, a list of the users
## who come during the last XX hours. Can also display the list
## of the users who didn't come. (see "Edit below")
##
## Installation Level: easy
## Installation Time: 2-3 minutes
##
## Files To Edit: 3
## - /templates/subSilver/index_body.tpl
## - /language/lang_english/lang_main.php
## - /includes/page_header.php
##
## Included Files: None
##
########################################################
## VERSION HISTORY:
##
## June 20th 2003: v2.0
## 1. The list's delay is customizable, but you must give a number in hours, 24 by default.
## 2. There's now a counter for each list.
## 3. The MOD doesn't display the list of the users who didn't visit by default.
##
## October 28th 2002: v1.1
## 1. The MOD uses the database variable "user_session_time" instead of "user_lastvisit", which is updated only when the user logs out.
##
## October 15th 2002: v1.0
## 1. Created main features.
##
########################################################
## TODO LIST:
##
## 1. Don't restrict the time unit to hours.
##
########################################################
## PLEASE REPORT ANY BUGS OR SUGGESTIONS ##
########################################################
#
#-----[ ACTION: open ]---------------------------------
#
/templates/subSilver/index_body.tpl
#
#-----[ ACTION: find ]---------------------------------
#
<td class="row1" align="center" valign="middle" rowspan="2"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
#
#-----[ ACTION: replace by ]---------------------------
#
<td class="row1" align="center" valign="middle" rowspan="3"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
#
#-----[ ACTION: find ]---------------------------------
#
<td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE} [ {L_WHOSONLINE_ADMIN} ] [ {L_WHOSONLINE_MOD} ]<br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
#
#-----[ ACTION: add after ]----------------------------
#
</tr>
<tr>
<td class="row1" align="left"><span class="gensmall">{USERS_OF_THE_DAY_LIST}</span></td>
#
#-----[ ACTION: repeat for all templates ]-------------
#
#
#-----[ ACTION: open ]--------------------------------
#
/language/lang_english/lang_main.php
#
#-----[ ACTION: find ]--------------------------------
#
$lang['Registered_users'] =
#
#-----[ ACTION: add before ]--------------------------
#
$lang['Day_users'] = '%d registered users visit during the last %d hours:';
$lang['Not_day_users'] = '%d registered users <span style="color:red">DIDN\'T</span> visit during the last %d hours:';
#
#-----[ ACTION: repeat for all languages ]------------
#
#
#-----[ ACTION: open ]--------------------------------
#
/includes/page_header.php
#
#-----[ ACTION: find ]--------------------------------
#
'LOGGED_IN_USER_LIST' => $online_userlist,
#
#-----[ ACTION: add after ]---------------------------
#
'USERS_OF_THE_DAY_LIST' => $day_userlist,
#
#-----[ ACTION: find ]--------------------------------
#
//
// Obtain number of new private messages
// if user is logged in
//
#
#-----[ ACTION: add before ]--------------------------
#
//
// Users of the day MOD
//
// ############ Edit below ############
// #
$display_not_day_userlist = 0; // change to 1 here if you also want the list of the users who didn't visit to be displayed
$users_list_delay = 24; // change here to the number of hours wanted for the list
// #
// ############ Edit above ############
$sql = "SELECT user_id, username, user_allow_viewonline, user_level, user_session_time
FROM ".USERS_TABLE."
WHERE user_id > 0
ORDER BY user_level DESC, username ASC";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
}
$day_userlist = '';
$day_users = 0;
$not_day_userlist = '';
$not_day_users = 0;
while( $row = $db->sql_fetchrow($result) )
{
$style_color = '';
if ( $row['user_level'] == ADMIN )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
}
else if ( $row['user_level'] == MOD )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
}
if ( $row['user_allow_viewonline'] )
{
$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
}
else
{
$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
}
if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
{
if ( $row['user_session_time'] >= ( time() - $users_list_delay * 3600 ) )
{
$day_userlist .= ( $day_userlist != '' ) ? ', ' . $user_day_link : $user_day_link;
$day_users++;
}
else
{
$not_day_userlist .= ( $not_day_userlist != '' ) ? ', ' . $user_day_link : $user_day_link;
$not_day_users++;
}
}
}
$day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Day_users'], $day_users, $users_list_delay) ) . ' ' . $day_userlist;
$not_day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Not_day_users'], $not_day_users, $users_list_delay) ) . ' ' . $not_day_userlist;
if ( $display_not_day_userlist )
{
$day_userlist .= '<br />' . $not_day_userlist;
}
//
// End of MOD
//
#
#-----[ ACTION: save/close all ]----------------------
#
#
#-----[ ACTION: upload the modified files ]-----------
#
#
#-----[ ACTION: enjoy ]-------------------------------
#
#
#-----[ PLEASE REPORT ANY BUGS OR SUGGESTIONS]--------
#
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- phpBB Maniac
- Сообщения: 1464
- Стаж: 20 лет
- Откуда: Novosibirsk,RU
Siava
он же сказал, что выводится не на главную, а на отдельную страницу...
он же сказал, что выводится не на главную, а на отдельную страницу...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 20 лет 10 месяцев
- Поблагодарили: 2 раза
Siava
Загрузку этим модом себе представляешь? Тем более он очень неоптимальный - считает данные для каждой страницы...
Загрузку этим модом себе представляешь? Тем более он очень неоптимальный - считает данные для каждой страницы...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- Поддержка
- Сообщения: 5389
- Стаж: 20 лет
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 728 раз
Xpert
Да, представляю - он у меня одно время был установлен
Да, представляю - он у меня одно время был установлен
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- phpBB Maniac
- Сообщения: 1464
- Стаж: 20 лет
- Откуда: Novosibirsk,RU
Xpert
кста... загрузка им действительно большая =) у мя стоит =)))
кста... загрузка им действительно большая =) у мя стоит =)))
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
-
- phpBB 1.0.0
- Сообщения: 2
- Стаж: 18 лет 11 месяцев
- Откуда: Н. Новгород
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 20 лет 10 месяцев
- Поблагодарили: 2 раза
-
- phpBB 2.0.5
- Сообщения: 477
- Стаж: 20 лет 9 месяцев
Еще один типа, мини-мод
Суть - в многостраничных темах, отмечать номер страницы в <title> HTML-а. Полезно, когда кто-то сохраняет все или выборочные страницы из большой темы.
В общем, открываем viewtopic.php
Находим:
Ваш код может несколько отличаться, но смысл думаю, понятен.
Кстати, вышеуказанный код можно оптимизировать, но уж не стал ...
Суть - в многостраничных темах, отмечать номер страницы в <title> HTML-а. Полезно, когда кто-то сохраняет все или выборочные страницы из большой темы.
В общем, открываем viewtopic.php
Находим:
Заменяем на:// Output page header
//
$page_title = str_replace ('\'', '', $topic_title);
PS// Output page header
//
$page_number = floor( $start / intval($board_config['posts_per_page']) ) + 1;
if (($page_number == 1) and ($total_replies < intval($board_config['posts_per_page'])))
{
$page_number = '';
}
else
{
$page_number = ' [' . $page_number . ']';
}
$page_title = str_replace ('\'', '', $topic_title . "$page_number");
Ваш код может несколько отличаться, но смысл думаю, понятен.
Кстати, вышеуказанный код можно оптимизировать, но уж не стал ...
-
- phpBB 2.0.7
- Сообщения: 573
- Стаж: 19 лет 8 месяцев
- Откуда: Moscow
Re: Может кому пригодиться ...
а мод учитывает версию языка шаблона профиле?Jovani писал(а):На "мод" это не тянет, а если и тянет, то возможно, что он уже существует.
В общем, кидаю во флейм, кому нужно, разбирайтесь ...
Кратко, о том, что ЭТО:
В phpBB, меня не устроил вывод соглашения с условиями регистрации, поэтому немного переделал:
1 - убрано "менее 13-ти лет"
2 - ссылки переделаны на кнопки
3 - и самое главное - кнопка "Согласен", не активна 20 секунд, для "принудительного" прочтения условий регистрации.
Редактируется файл шаблона agreement.tpl
Меняетеся код ссылок "согласия".
К сожалению, сейчас нет времени подробно расписывать - что на что менять, думаю поймете, и кому нужно, заточит код под себя.
Если не понятно, спрашивайте, по появлению времени - отвечу.
Код: Выделить всё
<div align=center> <form name=agree> <input onclick=ok(); type=button value="Прочтение условий не менее 20-ти секунд!" name=agreeb> <input onclick="self.location.href=''" type=button value="Не согласен"> </form> <script> function ok() { window.location="profile.php?mode=register&agreed=true"; } var secs = 20; document.agree.agreeb.disabled=true; for(i=1;i<=secs;i++) { window.setTimeout("update(" + i + ")", i * 1000); } function update(num) { if(num == secs) { document.agree.agreeb.value ="Согласен"; document.agree.agreeb.disabled=false; } else { printnr = secs-num; document.agree.agreeb.value = "Внимательно читаем условия, осталось " + printnr +" сек "; } } </script> </div>
-
- phpBB 2.0.5
- Сообщения: 477
- Стаж: 20 лет 9 месяцев