[ALPHA] phpbb2_cutenews_2.5.4

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!

[ALPHA] phpbb2_cutenews_2.5.4

Сообщение avm 03.07.2006 4:38

Данный мод был написан по просьбе одного из участников форума phpBB, выкладываю его здесь а не в привате, поскольку я его не тестировал на phpBB вообще, и соответственно далее могут поползти правки, а где это делать удобнее чем здесь? :wink:
Код: Выделить всё
#
#---[ COPY ]---
#
copy usr_registration.php to includes/usr_registration.php
#
#-----[ DIY INSTRUCTIONS ]----------------------------------
#
Set correct path to your CuteNews 2.5.4 in file includes/usr_registration.php (line 10)
#
#---[ OPEN ]---
#
includes/usercp_register.php
#
#---[ FIND ]---
#
  if ( !$error )
  {
      $new_password = md5($new_password);
#
#---[ BEFORE, ADD ]---
#
                        $usr_username = $row['username'];
                        $usr_password = $new_password;
#
#---[ FIND (2x) ]---
# this would be found twice...
#
  message_die(GENERAL_MESSAGE, $message);
#
#---[ BEFORE, ADD ]---
#
                include($phpbb_root_path.'includes/usr_registration.'.$phpEx);
#
#---[ SAVE/CLOSE ALL FILES ]---
#


Особенности: CuteNews 2.5.4 (скрипт ленты новостей с администрированием) ныне является устаревшим и больше не поддерживается, поэтому у данного мода нет перспектив, но он может послужить "частичным" примером того как можно при регистрации/изменении_профиля пользователя phpBB вносить изменения в БД другого программного продукта...

"частичным" - потому что не предусматривает корректную отработку случаев активации учетной записи админом или по почте (он просто сразу при регистрации/изменнии_данных_профиля пользователя создает/обновляет его запись в БД CuteNews - это продиктовано самой программой CuteNews).
Вложения
phpbb2_cutenews_5.0.4.tar.gz
Мод интеграции phpbb2 и CuteNews 2.5.4 (устаревшая версия)
(1.39 Кб) Скачиваний: 431
Последний раз редактировалось avm 05.07.2006 17:37, всего редактировалось 3 раз(а).
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
avm
phpBB 2.0.13
 
Сообщения: 613
Зарегистрирован: 16.01.2005 10:40
Откуда: Москва


Сообщение PROhvost 03.07.2006 10:43

Я что то не правильно сделал, после регистрации на форуме, в новостях этот пользователь не появляется. Может быть путь к папке со скриптом новостей не правильный, у меня так mysite.ru/personal/, т.е. в папке personal стоит новостной скрипт, в файле usr_registration.php в строке 10 написал, ./personal , ничего не получилось, может не то совсем пишу?
PROhvost
phpBB 1.4.0
 
Сообщения: 36
Зарегистрирован: 11.12.2005 17:57

Сообщение avm 03.07.2006 10:47

PROhvost путь к папке новостей нужно писать полностью от корня...
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
avm
phpBB 2.0.13
 
Сообщения: 613
Зарегистрирован: 16.01.2005 10:40
Откуда: Москва

Сообщение PROhvost 03.07.2006 18:34

avm Нет конекта, не пойму в чем дело...
У меня так:
домен/personal : тут новости
домен/forum : тут форум
Получается что $cutepath = "./../personal";
PROhvost
phpBB 1.4.0
 
Сообщения: 36
Зарегистрирован: 11.12.2005 17:57

Сообщение Nikel 14.07.2006 17:20

PROhvost
Как подсказывают мне звезды , нужнобы попробывать
PROhvost писал(а):$cutepath = "../personal/";
Хочешь помочь коллеге- поделись опытом, хочешь помочь профессионалу-отойди и не мешай, хочешь помочь дураку... Сам дурак
Аватара пользователя
Nikel
phpBB 2.0.12
 
Сообщения: 554
Зарегистрирован: 24.04.2005 23:41
Откуда: Киев

Сообщение PROhvost 27.07.2006 20:28

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


Код: Выделить всё

#
#-----[ OPEN ]------------------------------------------
#

copy root/rmeConfig.php to forum/rmeConfig.php
copy root/rmeConfig.php to personal/rmeConfig.php
#
#-----[ OPEN ]------------------------------------------
#

personal/head.php
#
#-----[ FIND ]------------------------------------------
#

    if ($action == 'dologin'){
        $sql->update(array(
        'table'  => 'users',
        'where'  => array("username = $username"),
        'values' => array('last_visit' => (time() + $config_date_adjust * 60))
        ));

#
#-----[ AFTER, ADD ]------------------------------------------
#

   // [start] rmeMods
   include($cutepath . '/rmeConfig.php');
   define('IN_PHPBB', TRUE);
   $phpbb_root_path = $cutepath . '/' . $forum_root_path;
   include($cutepath . '/' . $forum_root_path . 'extension.inc');
   include($cutepath . '/' . $forum_root_path . 'config.php');
   include($cutepath . '/' . $forum_root_path . 'includes/constants.php');

   $prefix = $sql->prefix;
   $sql->prefix = '';
   $query = $sql->select(array('select' => array('user_id', 'username', 'user_password', 'user_active', 'user_level', 'user_login_tries', 'user_last_login_try'), 'table' => USERS_TABLE, 'where' => array("username = $username")));
   foreach ($query as $row)
   {
      list($sec, $usec) = explode(' ', microtime());
      mt_srand((float) $sec + ((float) $usec * 100000));
      $session_id = md5(uniqid(mt_rand(), true));
      $sql->insert(array(
         'table'  => SESSIONS_TABLE,
         'values' => array(
            'session_id'      => $session_id,
            'session_user_id'   => $row['user_id'],
            'session_start'      => time(),
            'session_time'      => time(),
            'session_ip'      => $user_ip,
            'session_page'      => 0,
            'session_logged_in' => 1,
            'session_admin'      => 0
            )
         )
      );

      $sql->update(array(
         'table'  => USERS_TABLE,
         'where'  => array("user_id = " . $row['user_id']),
         'values' => array('user_login_tries' => 0, 'user_last_login_try' => 0)
         )
      );

      $sessiondata['autologinid'] = '';
      $sessiondata['userid'] = $row['user_id'];

      $query = $sql->select(array('table' => CONFIG_TABLE));
      foreach ($query as $config)
      {
         if ( $config['config_name'] == 'cookie_domain' ) { $cookiedomain = $config['config_value']; }
         if ( $config['config_name'] == 'cookie_path' ) { $cookiepath = $config['config_value']; }
         if ( $config['config_name'] == 'cookie_name' ) { $cookiename = $config['config_value']; }
         if ( $config['config_name'] == 'cookie_secure' ) { $cookiesecure = $config['config_value']; }
      }

      setcookie($cookiename . '_data', serialize($sessiondata), time() + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
      setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
      $sql->update(array(
         'table'  => USERS_TABLE,
         'where'  => array("user_id = " . $row['user_id']),
         'values' => array('user_login_tries' => 0, 'user_last_login_try' => 0))
      );
   }

   $sql->prefix = $prefix;
   // [end] rmeMods

#
#-----[ OPEN ]------------------------------------------
#

forum/login.php

#
#-----[ FIND ]------------------------------------------
#

               $admin = (isset($HTTP_POST_VARS['admin'])) ? 1 : 0;
               $session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin, $admin);

#
#-----[ AFTER, ADD ]------------------------------------------
#

               // [start] rmeMods
               include($phpbb_root_path . 'rmeConfig.php');
               $cmd5_password = md5(md5($password));
               setcookie('lastusername', $username, time() + 1012324305, $news_cookie_path);
               setcookie('username', $username, time() + 3600 * 24 * 365, $news_cookie_path);
               setcookie('md5_password', $cmd5_password, time() + 3600 * 24 * 365, $news_cookie_path);
               // [end] rmeMods


Файл rmeConfig.php
Код: Выделить всё

<?php
$forum_root_path = '../forum/';
$news_root_path = '../personal/';
$news_cookie_path = '/int/personal';

if ( !isset($user_ip) )
{
   if ( !function_exists(encode_ip) )
   {
      function encode_ip($dotquad_ip)
      {
         $ip_sep = explode('.', $dotquad_ip);
         return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
      }
   }

   $client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR') );
   $user_ip = encode_ip($client_ip);
}

if ( !function_exists(GetID) )
{
   function GetID($size)
   {
      mt_srand((double) microtime() * 1000000);
      for ( $i = 1; $i <= $size; $i++ )
      {
         $random = mt_rand(1, 30);
         if ( $random <= 10 )
         {
            $sid .= chr(mt_rand(65, 90));
         }
         else if ( $random <= 20 )
         {
            $sid .= mt_rand(0, 9);
         }
         else
         {
            $sid .= chr(mt_rand(97, 122));
         }
      }

      return $sid;
   }
}

?>


но происходит следующая ошибка: при авторизации через сайт все проходит успешно, но если разлогинится и снова авторизовать то в таблицу phpbb_sessions идет повторная запись ID юзера который авторизовался, при этом получается две одинаковых записи и при выходе с форума логин остается в списке онлайн и соответственно остается запись в таблице phpbb_sessions. Как можно это поправить?
PROhvost
phpBB 1.4.0
 
Сообщения: 36
Зарегистрирован: 11.12.2005 17:57

Сообщение avm 28.07.2006 0:06

PROhvost писал(а):но если разлогинится и снова авторизовать то

разлогиниться где? на сайте опять же? ну так и нужно в том куске где происходит обработка разлогинивания сделать запрос на удаление записи "FROM SESSIONS_TABLE WHERE session_user_id = $user_id"
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
avm
phpBB 2.0.13
 
Сообщения: 613
Зарегистрирован: 16.01.2005 10:40
Откуда: Москва

Сообщение PROhvost 29.07.2006 11:05

когда разлогиневаешься на сайте, то на форуме остаешься залогиненым, и если не зайти на форум, и не разлогинется то получается вышеописаная ситуация.
PROhvost
phpBB 1.4.0
 
Сообщения: 36
Зарегистрирован: 11.12.2005 17:57



Вернуться в Бета-версии модов для phpBB 2.0.x

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0