Форум web-мастеров phpBB3

Модификации и расширения phpBB




Ответить на тему
Пред. тема | След. тема 
Автор Сообщение
Admin
Аватара пользователя

Карма
29
Стаж: 6 лет 4 месяца
Сообщения: 330
Россия

Ответить с цитатой

Автор: RMcGirr83
Соавторы: anybloodyid
Версия: 2.0.4
PHPBB версия 3.0.8 но работает и на последних.
Установите время около 10 минут.

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

Контрольная сумма: MD5 27f0edae2fd181041a58c8ab31ffe051

Скачать мод можно тут http://www.phpbb.com/customise/db/mod/national_flags/

Открыть: memberlist.php
Установка:
Содержимое папки root копируем в корень сайта.
Найти
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
После вставить:
//Begin: National Flag
include($phpbb_root_path . 'includes/functions_flag.' . $phpEx);
//End: National Flag

Найти
u.user_posts, u.user_allow_pm
После вставить
, u.user_flag
Чтобы получилось так
u.user_posts, u.user_allow_pm, u.user_flag

Найти
$result = $db->sql_query($sql);
После вставить
//Begin: National Flag
   $flag_count = 0;
//End: National Flag

Найти
$rank_title = $rank_img = '';
До вставить
//Begin: National Flag
         if (!empty($config['allow_flags']) && !empty($row['user_flag']))
         {
            $user_flag = get_user_flag($row['user_flag']);
            ++$flag_count;
         }
         else
         {
            $user_flag = '';
         }         
//End: National Flag

Найти
'U_VIEW_PROFILE'   => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
После вставить
//Begin: National Flag
     'USER_FLAG'         => $user_flag,
//End: National Flag

Найти
'PM_IMG'      => $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']))
Вставить до
//Begin: National Flag
   'S_USER_FLAG'   => $flag_count,
//End: National Flag

Найти
// Dump it out to the template
После вставить
//Begin: National Flag
   if (!empty($config['allow_flags']) && !empty($data['user_flag']))
   {
      $user_flag = get_user_flag($data['user_flag']);
      $template->assign_vars(array(
         'S_USER_FLAG'   => true,
      ));      
   }
   else
   {
      $user_flag = '';
   }         
//End: National Flag

Найти
'USER_JABBER_IMG'   => ($data['user_jabber']) ? $user->img('icon_contact_jabber', $data['user_jabber']) : '',
После вставить
//Begin: National Flag
     'USER_FLAG'      => $user_flag,
//End: National Flag
Открыть: viewtopic.php
Найти
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
После вставить
//Begin: National Flag
include($phpbb_root_path . 'includes/functions_flag.' . $phpEx);
//End: National Flag
Найти
'age'            => '',
После вставить
//Begin: National Flag
     'flag'            => '',
//End: National Flag

Найти
else
         {
            $user_cache[$poster_id]['icq_status_img'] = '';
            $user_cache[$poster_id]['icq'] = '';
         }
После вставить
//Begin: National Flag
         if (!empty($config['allow_flags']) && !empty($row['user_flag']))
         {
            $user_cache[$poster_id]['flag']   = get_user_flag($row['user_flag']);
         }
         else
         {
            $user_cache[$poster_id]['flag']   = '';
         }         
//End: National Flag
Найти
'POSTER_AGE'      => $user_cache[$poster_id]['age'],
После вставить
//Begin: National Flag
     'POSTER_FLAG'      => $user_cache[$poster_id]['flag'],
//End: National Flag

Открыть: adm/style/acp_users_profile.html
Найти
<dd>{L_DAY}: <select id="birthday" name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> {L_MONTH}: <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> {L_YEAR}: <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></dd>
      </dl>
После вставить
<!-- IF S_FLAG -->   
   <dl>
      <dt><label for="flag"><strong>{L_FLAG}:</strong></label><br /><span>{L_FLAG_EXPLAIN}</span></dt>
      <dd><select name="flag" id="flag">{S_FLAG_OPTIONS}</select>&nbsp;&nbsp;{S_FLAG_IMAGE}</dd>
   </dl>
<!-- ENDIF -->

Открыть: includes/constants.php
Найти
// Additional constants
После вставить
//Begin: National Flag
define('FLAGS_DATA_TABLE',         $table_prefix . 'flags');
define('USER_FLAG_TEXT', 1);
define('USER_FLAG_IMAGE', 2);
//End: National Flag

Открыть: includes/acp/acp_users.php
Найти
include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
После вставить
//Begin: National Flag
   include($phpbb_root_path . 'includes/functions_flag.' . $phpEx);
//End: National Flag

Найти
'bday_year'      => 0,
После вставить
//Begin: National Flag
      'flag'      => request_var('flag', (int) $user_row['user_flag']),
//End: National Flag

Найти
user_birthday'   => array('date', true),
После вставить
//Begin: National Flag
       'flag'         => array('num', true, 0, 300),
//End: National Flag
Найти
'user_birthday'   => $data['user_birthday'],
После вставить
//Begin: National Flag
     'user_flag'      => $data['flag'],
//End: National Flag
Найти
'S_BIRTHDAY_YEAR_OPTIONS'   => $s_birthday_year_options,
После захерачить
//Begin: National Flag
               'S_FLAG_OPTIONS'   => list_all_flags($data['flag']),
               'S_FLAG_IMAGE'      => get_user_flag($data['flag']),
               'S_FLAG'         => !empty($config['allow_flags']) ? $config['allow_flags'] : false,
//End: National Flag

Открыть: includes/ucp/ucp_pm_viewmessage.php
Найти
$url = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm');
После вставить
//Begin: National Flag
   include($phpbb_root_path . 'includes/functions_flag.' . $phpEx);
//End: National Flag

Найти
'AUTHOR_FROM'      => (!empty($user_info['user_from'])) ? $user_info['user_from'] : '',
После вставить
//Begin: National Flag
   'USER_FLAG'      => get_user_flag($user_info['user_flag']),
//End: National Flag

Открыть: includes/ucp/ucp_profile.php
Найти
include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
После вставить
//Begin: National Flag
      include($phpbb_root_path . 'includes/functions_flag.' . $phpEx);
//End: National Flag

Найти
$data['user_birthday'] = sprintf('%2d-%2d-%4d', $data['bday_day'], $data['bday_month'], $data['bday_year']);
            }
После вставить
//Begin: National Flag
            if (!empty($config['allow_flags']))
            {               
               $data['flag'] = request_var('flag', (int) $user->data['user_flag']);               
            }
//End: National Flag

Найти
if ($config['allow_birthdays'])
               {
                  $validate_array = array_merge($validate_array, array(
До вставить
//Begin: National Flag
               //Currently set to validate up to 300, if you want more
               //flags than 300 change to the amount you want
               if (!empty($config['allow_flags']))
               {
                  $validate_array = array_merge($validate_array, array(
                     'flag'         => array('num', true, 0, 300),
                  ));
               }
//End: National Flag
Найти
if ($config['allow_birthdays'])
                  {
                     $sql_ary['user_birthday'] = $data['user_birthday'];
                  }
Вставить до
//Begin: National Flag
                  if (!empty($config['allow_flags']))
                  {
                     $sql_ary['user_flag'] = $data['flag'];
                  }
//End: National Flag

Найти
'S_BIRTHDAYS_ENABLED'      => true,
               ));
            }
После вставить
//Begin: National Flag
            if (!empty($config['allow_flags']))
            {
               global $cache;
               get_user_flag();
               $flags = $cache->get('_user_flags');
               $flag_name = '';
               if ($data['flag'] && $config['flag_type'] != USER_FLAG_TEXT)
               {
                  $flag_name = $flags[$data['flag']]['flag_image'];
               }
               unset($flags);            
               $s_flag_options = list_all_flags($data['flag']);
               
               $template->assign_vars(array(
                  'S_FLAG_OPTIONS'   => $s_flag_options,
                  'S_FLAGS_ENABLED'   => true,
                  'FLAG_IMAGE'      => ($flag_name) ? "{$phpbb_root_path}images/flags/$flag_name" : '',
                  'FLAG_NAME'         => $flag_name,
                  'AJAX_FLAG_INFO'   => append_sid("{$phpbb_root_path}ajax_user_flag.$phpEx", 'flag_id=FLAG_ID'),
               ));
            }
//End: National Flag

Открыть: language/ru/acp/permissions_phpbb.php
Найти
'acl_a_search'      => array('lang' => 'Can manage search backends and settings', 'cat' => 'misc'),
После вставить
//Begin: National Flag
   'acl_a_flags'      => array('lang' => 'Can manage country flags', 'cat' => 'misc'),
//End: National Flag

Открыть: language/ru/common.php
Найти:
Вставить до:
//End: National Flag
$lang = array_merge($lang, array(
  'FLAG'           => 'Флаг страны',
  'FLAG_EXPLAIN'   => 'Выберите флаг страны',
  'TOP_FLAG_TITLE' => 'Топ 5 Национальных флагов',
  'FLAG_USER'      => '%s Пользователь',
  'FLAG_USERS'     => '%s Пользователей',
));
//End: National Flag
Установка для стиля subsilver2
Открыть: styles/subsilver2/template/memberlist_body.html
Найти
<th nowrap="nowrap" width="10%"><a href="{U_SORT_POSTS}">{L_POSTS}</a></th>
После вставить
<!-- IF S_USER_FLAG --><th nowrap="nowrap" width="10%">{L_FLAG}</th><!-- ENDIF -->
Найти
<td class="gen" align="center">{memberrow.POSTS}</td>
После вставить
<!-- IF S_USER_FLAG --><td class="gen" align="center">&nbsp;<!-- IF memberrow.USER_FLAG -->{memberrow.USER_FLAG}<!-- ENDIF -->&nbsp;</td><!-- ENDIF -->

Открыть: styles/subsilver2/template/memberlist_view.html
Найти
 <tr>
      <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_LOCATION}: </td>
      <td><!-- IF LOCATION --><b class="genmed">{LOCATION}</b><!-- ENDIF --></td>
 </tr>
После вставить
<!-- IF USER_FLAG -->
   <tr>
       <td class="gen" align="{S_CONTENT_FLOW_END}" nowrap="nowrap">{L_FLAG}: </td>
       <td><b class="genmed">{USER_FLAG}</b></td>
    </tr>
<!-- ENDIF -->

Открыть: styles/subsilver2/template/ucp_profile_profile_info.html
Найти
value="{LOCATION}" /></td>
</tr>
После вставить
<!-- INCLUDE ucp_user_flag.html -->

Открыть: styles/subsilver2/template/viewtopic_body.html
Найти
<!-- IF postrow.POSTER_FROM --><br /><b>{L_LOCATION}:</b> {postrow.POSTER_FROM}<!-- ENDIF -->
После вставить
<!-- IF postrow.POSTER_FLAG --><br /><b>{L_FLAG}:</b> {postrow.POSTER_FLAG}<!-- ENDIF -->

Открыть: styles/subsilver2/template/viewtopic_tracker_body.html
Найти
<!-- IF postrow.POSTER_FROM --><br /><b>{L_LOCATION}:</b> {postrow.POSTER_FROM}<!-- ENDIF -->
После вставить
<!-- IF postrow.POSTER_FLAG --><br /><b>{L_FLAG}:</b> {postrow.POSTER_FLAG}<!-- ENDIF -->
Запускаем файл user_flags_install.php после установки удаляем.
_______________________
[size=90:335q8cfb][color=#727272:335q8cfb]Если нужен стиль для сайта, стучите: ICQ 560107181[/color:335q8cfb][/size:335q8cfb]
Профиль  Отправить личное сообщение
Идеальный заработок для торрент-трекеров

Карма
0
Стаж: 5 лет 8 месяцев
Сообщения: 4

Ответить с цитатой

Большое спасибо за мод!
Профиль  Отправить личное сообщение
Admin
Аватара пользователя

Карма
29
Стаж: 6 лет 4 месяца
Сообщения: 330
Россия

Ответить с цитатой

Я его переделал как на torrentpier ... Как время будет поставлю на этом форуме, в паблик выкладывать не буду, только индивидуально и платно, но не дорого. Скриншоты позже выложу.
_______________________
[size=90:335q8cfb][color=#727272:335q8cfb]Если нужен стиль для сайта, стучите: ICQ 560107181[/color:335q8cfb][/size:335q8cfb]
Профиль  Отправить личное сообщение
Admin
Аватара пользователя

Карма
29
Стаж: 6 лет 4 месяца
Сообщения: 330
Россия

Ответить с цитатой

Доработка: RMcGirr83
Для вывода флага на страничку регистрации:
Открыть: includes/ucp/ucp_register.php
Найти:
include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
Добавить после:
 //Begin: National_Flag
      include($phpbb_root_path . 'includes/functions_flag.' . $phpEx);
//End: National_Flag
Найти:
'tz'            => request_var('tz', (float) $timezone),
      );
Добавить после:
//Begin: National_Flag
      if (!empty($config['allow_flags']))
      {               
         $data['flag'] = request_var('flag', 0);               
      }
//End: National_Flag
Найти:
'lang'            => array('language_iso_name'),
Добавить после:
//Begin: National_Flag
'flag'         => array('num', true, 0, 300),
//End: National_Flag
Найти:
if ($config['new_member_post_limit'])
Добавить до:
//Begin: National_Flag
            if (!empty($config['allow_flags']))
            {
               $user_row['user_flag'] = $data['flag'];
            }
//End: National_Flag
Найти:
 //
$user->profile_fields = array();
Добавить до:
//Begin: National_Flag
      if (!empty($config['allow_flags']))
      {
         global $cache;
         get_user_flag();
         $flags = $cache->get('_user_flags');
         $flag_name = '';
         if ($data['flag'])
         {
            $flag_name = $flags[$data['flag']]['flag_name'];
         }
         unset($flags);           
         $s_flag_options = list_all_flags($data['flag']);
         
         $template->assign_vars(array(
            'S_FLAG_OPTIONS'   => $s_flag_options,
            'S_FLAGS_ENABLED'   => true,
            'FLAG_IMAGE'      => ($flag_name) ? "{$phpbb_root_path}images/flags/$flag_name" : '',
            'FLAG_NAME'      => $flag_name,
            'AJAX_FLAG_INFO'   => append_sid("{$phpbb_root_path}ajax_user_flag.$phpEx", 'flag_id=FLAG_ID'),
         ));
      }
//End: National_Flag
Открыть: styles/subsilver2/template/ucp_register.html
Найти:
<tr>
  <td class="row1"><b class="genmed">{L_CONFIRM_PASSWORD}: </b></td>
  <td class="row2"><input class="post" type="password" name="password_confirm" size="25" value="{PASSWORD_CONFIRM}" /></td>
</tr>
Добавить после:
<!-- INCLUDE ucp_user_flag.html -->
_______________________
[size=90:335q8cfb][color=#727272:335q8cfb]Если нужен стиль для сайта, стучите: ICQ 560107181[/color:335q8cfb][/size:335q8cfb]
Профиль  Отправить личное сообщение
Admin
Аватара пользователя

Карма
29
Стаж: 6 лет 4 месяца
Сообщения: 330
Россия

Ответить с цитатой

Доработка обязательного поля флага.
Найти:
'flag'         => array('num', true, 0, 300),
Заменить:
'flag'         => array('num', false, 1, 300),
_______________________
[size=90:335q8cfb][color=#727272:335q8cfb]Если нужен стиль для сайта, стучите: ICQ 560107181[/color:335q8cfb][/size:335q8cfb]
Профиль  Отправить личное сообщение
Admin
Аватара пользователя

Карма
29
Стаж: 6 лет 4 месяца
Сообщения: 330
Россия

Ответить с цитатой

С правильными лангами и более стабильный, лёгкий и функциональный, переделанный мною мод National flags на этой же базе, будет доступен только в разделе для Donate.
_______________________
[size=90:335q8cfb][color=#727272:335q8cfb]Если нужен стиль для сайта, стучите: ICQ 560107181[/color:335q8cfb][/size:335q8cfb]
Профиль  Отправить личное сообщение

Карма
-1
Стаж: 4 года 6 месяцев
Сообщения: 3

Ответить с цитатой

Здравствуйте!2 дня пытаюсь добавить Вашу доработку Для вывода флага на страничку регистрации: и ничего не выходит :-( ,выдаёт вот такую ошибку
Fatal error: Cannot redeclare get_user_flag() (previously declared in K:\home\test1.ru\www\includes\functions_flag.php:27) in K:\home\test1.ru\www\includes\functions_flag.php on line 72
подскажите пожалуйста где копать?Зарание благодарен,стиль subsilver2.
Профиль  Отправить личное сообщение
Admin
Аватара пользователя

Карма
29
Стаж: 6 лет 4 месяца
Сообщения: 330
Россия

Ответить с цитатой

Вначале напишите каой код и куда вставлянье?
_______________________
[size=90:335q8cfb][color=#727272:335q8cfb]Если нужен стиль для сайта, стучите: ICQ 560107181[/color:335q8cfb][/size:335q8cfb]
Профиль  Отправить личное сообщение

Карма
-1
Стаж: 4 года 6 месяцев
Сообщения: 3

Ответить с цитатой

9CaraTT писал(а):
Вначале напишите каой код и куда вставлянье?

Делал всё по инструкции которую Вы любезно выше написали.
Профиль  Отправить личное сообщение

Карма
-1
Стаж: 4 года 6 месяцев
Сообщения: 3

Ответить с цитатой

Большое спасибо за труд!!!У меня всё получилось,почему то в файле includes/ucp/ucp_register.php у меня было 2 раза такое :nez-nayu:
 //Begin: National_Flag
      include($phpbb_root_path . 'includes/functions_flag.' . $phpEx);
//End: National_Flag

удалил и всё заработало,ставлю Ваш сайт в закладки. :dan_ser: :co_ol: :co_ol:
Профиль  Отправить личное сообщение
Страница 1 из 2
На страницу 1, 2  След. 
Показать сообщения за:  Поле сортировки  
Ответить на тему

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

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron