сайт на данный момент является архивом информации по форуму phpbb 3.0. объяснения и помощь больше не предоставляются. старый сайт

Белк на PhpBB 3.0.14

информация по этому форуму. bbcode, моды и прочее, проверенное Белком. (перенос данных продолжается...)

Сегодня на конференции было 44 посетителей :: 1 зарегистрированный, 0 скрытых, 1 бот и 42 гостей (основано на активности посетителей за последние 24 часа)




 [ 1 сообщение ] 
Автор Сообщение
Не в сети
  (Андрей)
Администратор
Аватара пользователя

Стаж: 5 месяцев 19 дней
Сообщения: 228
Откуда: здешние мы

Стиль сайта: subsilver2
Настоящее имя: Андрей


Linked Profile Picture - Фото в профиле пользователя

Мод реализует возможность вывести в полный профиль пользователя его реальную фотографию (на некоторых ресурсах пользуются. аватар - это для сообщений, а в профиле может быть и "настоящее лицо" пользователя). Фотография выводится как ссылка на фото, размещённое где-то на стороннем ресурсе. ссылка должен обязательно иметь "расширение", то есть .jpeg, например.
по умолчанию размер фотографии должен быть не больше 250 px по горизонтали и 400 px по вертикали. При клике по фотографии она открывается во внешнем слое на этой же странице (типа слайдера). В теме пользователя в его минипрофиле выводится иконка "фото", если он выставил свою фотографию в полном профиле.

данный мод создан на основе оригинального англоязычного варианта и варианта, переделанного автором Pthelovod. оба мода взяты здесь: оригинальная тема.
мною только добавлен вариант мода под стиль subsilver2.

Администратор может проверять и редактировать (удалять) некорректные ссылки-изображения.

Как это будет выглядеть в prosilver:

сканы
Вложение:
lpp_usp_prosilver.png
lpp_usp_prosilver.png [ 28.6 КБ | Просмотров: 30 ] lpp_usp_prosilver.png


Вложение:
profil_1_prosilver.png
profil_1_prosilver.png [ 67.58 КБ | Просмотров: 30 ] profil_1_prosilver.png


Вложение:
profil_2_prosilver.png
profil_2_prosilver.png [ 73.38 КБ | Просмотров: 30 ] profil_2_prosilver.png


Вложение:
item_prosilver.png
item_prosilver.png [ 56.71 КБ | Просмотров: 30 ] item_prosilver.png



Как это будет выглядеть в subsilver2:

сканы
Вложение:
lpp_usp_subsilver.png
lpp_usp_subsilver.png [ 28.49 КБ | Просмотров: 30 ] lpp_usp_subsilver.png


Вложение:
profil_1_subsilver.png
profil_1_subsilver.png [ 81.71 КБ | Просмотров: 30 ] profil_1_subsilver.png


Вложение:
profil_2_subsilver.png
profil_2_subsilver.png [ 66.24 КБ | Просмотров: 30 ] profil_2_subsilver.png


Вложение:
item_subsilver.png
item_subsilver.png [ 70.06 КБ | Просмотров: 30 ] item_subsilver.png



Ладно, со вступлением покончено, если вас заинтересовало - ставим.

Скачать мод из архива сайта:

скачать из архива сайта

Распаковать, содержимое папки root загрузить в корень сайта (где файл config.php)

После этого необходимо провести SQL-запрос для создания таблицы в базе данных:

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

ALTER TABLE `phpbb_users` ADD `user_profile_picture` VARCHAR( 255 ) NOT NULL DEFAULT '';


У кого проблемы с проведением запроса - можете скачать скрипт-установщик:

Вложение:
db_update.rar [1.26 КБ]
Скачиваний: 1


распаковать, файл db_update.php загрузить в корень сайта и провести запрос, набрав браузере

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

http://ваш сайт/db_update.php


после отработки запроса удалить файл db_update.php с сервера.

Теперь приступаем к правке файлов:

Общие правки для всех стилей:

общие правки
Открыть adm/style/acp_users_profile.html
Найти

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

<dd><textarea name="interests" id="interests" class="inputbox" rows="3" cols="30">{INTERESTS}</textarea></dd>
   </dl>


Вставить после найденного

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

<!-- MOD: Linked Profile Picture -->
   <dl>
      <dt><label for="profile_picture">{L_PROFILE_PICTURE}:</label><br /><span>{L_LPP_EXPLAIN}</span></dt>
      <dd><input type="text" id="profile_picture" name="profile_picture" size="53" value="{PROFILE_PICTURE}" title="{L_LPP_EXT}" /></dd>
   </dl>
<!-- MOD: [END] -->


Открыть includes/acp/acp_users.php
Найти

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

         case 'profile':


Вставить после найденного

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

            // MOD: Linked Profile Picture
            $user->add_lang('mods/Linked_Profile_Picture');


Найти

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

               'interests'      => utf8_normalize_nfc(request_var('interests', $user_row['user_interests'], true)),


Вставить после найденного

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

            // MOD: Linked Profile Picture
               'profile_picture'   => request_var('profile_picture', $user_row['user_profile_picture']),


Найти

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

                  'interests'      => array('string', true, 2, 500),


Вставить после найденного

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

            // MOD: Linked Profile Picture
                  'profile_picture'      => array(
                     array('string', true, 12, 255),
                     array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')),


Найти

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

                     'user_interests'=> $data['interests'],


Вставить после найденного

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

               // MOD: Linked Profile Picture
                     'user_profile_picture'   => $data['profile_picture'],


Найти

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

               'INTERESTS'      => $data['interests'],


Вставить после найденного

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

            // MOD: Linked Profile Picture
               'PROFILE_PICTURE'   => $data['profile_picture'],


Открыть includes/acp/acp_styles.php
Найти (показана только часть строки)

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

'icon_contact_aim', 'icon_contact_email', 'icon_contact_icq', 'icon_contact_jabber',


Вставить после 'icon_contact_jabber',

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

 'icon_contact_lpp',


Открыть includes/upc/up_pm_viewmessage.php
Найти

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

   $user->add_lang(array('viewtopic', 'memberlist'));


После 'memberlist'

Вставить

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

, 'mods/Linked_Profile_Picture'


Найти

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

      'U_JABBER'      => ($user_info['user_jabber'] && $auth->acl_get('u_sendim')) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contact&amp;action=jabber&amp;u=' . $author_id) : '',


Вставить после найденного

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

   // MOD: Linked Profile Picture
      'U_LPP'         => $auth->acl_get('u_viewprofile') && (!empty($user_info['user_profile_picture'])) ? $user_info['user_profile_picture'] : '',


Открыть includes/upc/upc_profile.php
Найти

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

               'interests'      => utf8_normalize_nfc(request_var('interests', $user->data['user_interests'], true)),


Вставить после найденного

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

            // MOD: Linked Profile Picture
               'profile_picture'   => request_var('profile_picture', $user->data['user_profile_picture']),


Найти

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

            add_form_key('ucp_profile_info');


Вставить после найденного

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

            // MOD: Linked Profile Picture
            $user->add_lang('mods/Linked_Profile_Picture');


Найти

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

                  'interests'      => array('string', true, 2, 500),


Вставить после найденного

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

            // MOD: Linked Profile Picture
                  'profile_picture'      => array(
                     array('string', true, 12, 255),
                     array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')),


Найти

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

                     'user_interests'=> $data['interests'],


Вставить после найденного

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

               // MOD: Linked Profile Picture
                     'user_profile_picture'   => $data['profile_picture'],


Найти

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

               'INTERESTS'   => $data['interests'],


Вставить после найденного

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

            // MOD: Linked Profile Picture
               'PROFILE_PICTURE'   => $data['profile_picture'],


Открыть memberlist.php
Найти

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

$user->setup(array('memberlist', 'groups'));


После 'groups'

Вставить

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

, 'mods/Linked_Profile_Picture'


Найти

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

      'L_VIEWING_PROFILE'   => sprintf($user->lang['VIEWING_PROFILE'], $username),


Вставить после найденного

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

   //MOD_ Linked Profile Picture
      'U_PROFILE_PICTURE'   => (!empty($data['user_profile_picture'])) ? $data['user_profile_picture'] : '',


Открыть viewtopic.php
Найти

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

$user->setup('viewtopic', $topic_data['forum_style']);


Заменить 'viewtopic'

На данный код

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

array('viewtopic', 'mods/Linked_Profile_Picture')


Найти

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

                'allow_pm'            => 0,


Вставить после найденного

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

            // MOD: Linked Profile Picture
                'lpp'                => '',


Найти

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

            'search'      => ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", 'search_author=' . urlencode($row['username']) .'&amp;sr=posts') : '',


Вставить после найденного

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

         // MOD: Linked Profile Picture
            'lpp'         => $auth->acl_get('u_viewprofile') && $row['user_profile_picture'],


Найти

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

        'U_JABBER'        => $user_cache[$poster_id]['jabber'],


Вставить после найденного

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

    // MOD: Linked Profile Picture
        'U_LPP'            => $user_cache[$poster_id]['lpp'],


Языковые файлы (ru/en):

Языковые правки
Открыть language/en/acp/styles.php
Найти

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

   'IMG_ICON_CONTACT_WWW'      => 'Website',


Вставить после найденного:

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

//Mod: Linked Profile Picture
   'IMG_ICON_CONTACT_LPP'      => 'MOD: LPP',


Открыть language/ru/acp/styles.php
Найти

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

   'IMG_ICON_CONTACT_WWW'      => 'Website',


Вставить после найденного:

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

//Mod: Linked Profile Picture
   'IMG_ICON_CONTACT_LPP'      => 'Мод: Фото в профиле (LPP)',


Стилевые правки:

для стилей на основе prosilver
Открыть styles/prosilver/imageset/imageset.cfg
Найти

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

img_icon_contact_msnm = icon_contact_msnm.gif*20*20


Вставить после найденного

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

# MOD: Linked Profile Picture
img_icon_contact_lpp = icon_contact_lpp.gif*20*20


Открыть styles/prosilver/template/memberlist_view.html
Найти

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

<form method="post" action="{S_PROFILE_ACTION}" id="viewprofile">


Вставить после найденного

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

<!-- MOD: Linked Profile Picture --><!-- IF U_PROFILE_PICTURE -->
<!-- INCLUDE lpp/Linked_Profile_Picture.html --><!-- ENDIF --><!-- MOD: [END] -->


Открыть styles/prosilver/template/overall_footer.html
Найти

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

   </body>
</html>


Вставить перед найденным

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

<!-- MOD: Linked Profile Picture - Hidden parts -->
<!-- IF U_PROFILE_PICTURE -->
<br clear="both" />
<div align="center" id="lpp_soft"></div><div align="center" id="lpp_w">
   <div align="center" id="lpp_pic">
   <img class="reflect ropacity35 rheight35" src="{U_PROFILE_PICTURE}" alt="" title="{L_LPP_USERNAME} {USERNAME}" onClick="MM_showHideLayers('lpp_soft','','hide');MM_showHideLayers('lpp_w','','hide')" />
   </div>
</div><!-- ENDIF --><!-- MOD: [END] -->


Открыть styles/prosilver/template/overall_header.html
Найти

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

<script type="text/javascript" src="{T_TEMPLATE_PATH}/forum_fn.js"></script>


Вставить после найденного

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

<!-- MOD: Linked Profile Picture --><!-- IF U_PROFILE_PICTURE -->
<script type="text/javascript" src="{T_TEMPLATE_PATH}/lpp/lpp.js"></script>
<link rel="stylesheet" href="{T_THEME_PATH}/x_custom.css" type="text/css" /><!-- ENDIF -->


Открыть styles/prosilver/template/ucp_pm_viewmessage.html
Найти

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

<!-- IF U_PM or U_EMAIL or U_WWW or U_MSN or U_ICQ or U_YIM or U_AIM


После части строки U_AIM

Вставить

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

 or U_LPP


Найти

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

<span>{L_JABBER}</span></a></li><!-- ENDIF -->


Вставить после найденного

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

         <!-- MOD: Linked Profile Picture -->
         <!-- IF U_LPP --><li class="lpp-icon"><a href="{U_MESSAGE_AUTHOR}" title="{L_PROFILE_PICTURE}"><span>{L_PROFILE_PICTURE}</span></a></li><!-- ENDIF -->


Открыть styles/prosilver/template/ucp_profile_profile_info.html
Найти

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

<dd><textarea name="interests" id="interests" class="inputbox" rows="3" cols="30">{INTERESTS}</textarea></dd>
   </dl>


Вставить после найденного

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

<!-- MOD: Linked Profile Picture -->
   <dl>
      <dt><label for="profile_picture">{L_PROFILE_PICTURE}:</label><br /><span>{L_LPP_EXPLAIN}</span></dt>
      <dd><input type="text" name="profile_picture" id="profile_picture" maxlength="255" value="{PROFILE_PICTURE}" class="inputbox" title="{L_LPP_EXT}" /></dd>
   </dl>
<!-- MOD: [END] -->


Открыть styles/prosilver/template/viewtopic_body.html
Найти

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

<!-- IF postrow.U_PM or postrow.U_EMAIL or postrow.U_WWW or postrow.U_MSN or postrow.U_ICQ or postrow.U_YIM or postrow.U_AIM


После postrow.U_AIM

Добавить

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

 or postrow.U_LPP


Найти

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

<span>{L_JABBER}</span></a></li><!-- ENDIF -->


Вставить после найденного

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

         <!-- MOD: Linked Profile Picture -->
               <!-- IF postrow.U_LPP --><li class="lpp-icon"><a href="{postrow.U_POST_AUTHOR}" title="{L_PROFILE_PICTURE}"><span>{L_PROFILE_PICTURE}</span></a></li><!-- ENDIF -->


Открыть styles/prosilver/theme/buttons.css
Найти

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

.quote-icon, .quote-icon a      { background: none top left no-repeat; }


Вставить после найденного

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

/* MOD: Linked Profile Picture */
.lpp-icon, .lpp-icon a         { background: none top left no-repeat; }


Найти

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

ul.profile-icons li.jabber-icon   { width: {IMG_ICON_CONTACT_JABBER_WIDTH}px; height: {IMG_ICON_CONTACT_JABBER_HEIGHT}px; }


Вставить после найденного

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

/* MOD: Linked Profile Picture */
ul.profile-icons li.lpp-icon   { width: {IMG_ICON_CONTACT_LPP_WIDTH}px; height: {IMG_ICON_CONTACT_LPP_HEIGHT}px; }


Открыть styles/prosilver/theme/colours.css
Найти

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

.quote-icon, .quote-icon a      { background-image: url("{IMG_ICON_POST_QUOTE_SRC}"); }


Вставить после найденного

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

/* MOD: Linked Profile Picture */
.lpp-icon, .lpp-icon a         { background-image: url("{IMG_ICON_CONTACT_LPP_SRC}"); }


для стилей на основе subsilver2
Открыть styles/subsilver2/template/memberlist_view.html
Найти

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

   <table class="tablebg" width="100%" cellspacing="1">
   <tr>
      <th colspan="2" nowrap="nowrap">{L_VIEWING_PROFILE}</th>
   </tr>


Вставить после найденного

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

<!-- MOD: Linked Profile Picture --><!-- INCLUDE lpp/Linked_Profile_Picture.html --><!-- MOD: [END] -->


Открыть styles/subsilver2/template/overall_footer.html
Найти

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

</body>
</html>


Вставить перед найденным

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

<!-- MOD: Linked Profile Picture - Hidden parts -->
<!-- IF U_PROFILE_PICTURE -->
<br clear="both" />
<div align="center" id="lpp_soft"></div><div align="center" id="lpp_w">
   <div align="center" id="lpp_pic">
   <img class="reflect ropacity35 rheight35" src="{U_PROFILE_PICTURE}" alt="" title="{L_LPP_USERNAME} {USERNAME}" onClick="MM_showHideLayers('lpp_soft','','hide');MM_showHideLayers('lpp_w','','hide')" />
   </div>
</div><!-- ENDIF --><!-- MOD: [END] -->


Открыть styles/subsilver2/template/overall_header.html
Найти

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

</head>
<body class="{S_CONTENT_DIRECTION}">


Вставить перед найденным

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

<!-- MOD: Linked Profile Picture --><!-- IF U_PROFILE_PICTURE -->
<script type="text/javascript" src="{T_TEMPLATE_PATH}/lpp/lpp.js"></script>
<link rel="stylesheet" href="{T_THEME_PATH}/x_custom.css" type="text/css" /><!-- ENDIF -->


Открыть styles/subsilver2/template/ucp_profile_profile_info.html
Найти

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

<tr>
   <td class="row1" width="35%"><b class="genmed">{L_INTERESTS}: </b></td>
   <td class="row2"><textarea class="post" name="interests" rows="3" cols="30">{INTERESTS}</textarea></td>
</tr>


Вставить после найденного

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

<!-- MOD: Linked Profile Picture -->
<tr>
   <td class="row1" width="35%"><b class="genmed">{L_PROFILE_PICTURE}: </b><br /><span class="gensmall">{L_LPP_EXPLAIN}</span></td>
   <td class="row2"><input class="post" type="text" name="profile_picture" id="profile_picture" size="30 maxlength="255" value="{PROFILE_PICTURE}" title="{L_LPP_EXT}" /></td>
</tr>
<!-- MOD: [END] -->


Заметка: здесь выводится иконка фотоаппарата, показывающая, что у пользователя есть настоящее фото. переделал код так, что даже при отсутствии иконки "фото" и иконки "в сети" поле (строка пустая) будет выводится. мне показалось так удобней.

Открыть styles/subsilver2/template/viewtopic_body.html
Найти

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

         <!-- IF postrow.ONLINE_IMG -->
            <tr>
               <td>{postrow.ONLINE_IMG}</td>
            </tr>
         <!-- ENDIF -->


Заменить найденное на

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

            <tr>
               <td>
                                             <table width="100%">
                                                     <tr>
                                                         <td width="50% align="left"><!-- IF postrow.ONLINE_IMG -->{postrow.ONLINE_IMG}<!-- ENDIF --></td>
                                                         <td width="50% align="right"><!-- MOD: Linked Profile Picture --><!-- IF postrow.U_LPP --><a href="{postrow.U_POST_AUTHOR}" title="{L_PROFILE_PICTURE}"><img src="{T_IMAGESET_PATH}/icon_contact_lpp.gif" style="float:right;" /></a><!-- ENDIF --><!-- MOD: [END] --></td>
                                                     </tr>
                                             </table>
                                        </td>
            </tr>


Вроде бы всё. где чего (если) накосячил - пишите. мод проверен в работе - глюков не замечено.

Теперь вам необходимо почистить кэши (для просилвера - картинки, темы, шаблон + кэш браузера, для сабсилвера достаточно очистить кэш шаблона и (может быть) браузера). всё должно заработать сразу.

Правок хватает, но они все несложные. делайте внимательно и всё получится.

Успехов в применении.

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

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

ALTER TABLE `phpbb_users` DROP `user_profile_picture`;


У кого трудности с проведением запроса - можно скачать установщик и инициировать его, как написано в начале темы:

Вложение:
db_update_delete.rar [1.23 КБ]
Скачиваний: 1



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


если чего ещё появится информационного - напишу здесь.


вывод заглушки при отсутствии фото
может кому и пригодится при переделке "под себя". условие может выводить изображение/надпись -заглушку при отсутствии фотографии, либо просто убирать поле вывода, оставляя "нетронутым" профиль.

вот такой код:

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

<!-- IF U_PROFILE_PICTURE -->здесь ваш код вывода фото<!-- ENDIF -->


даст вам полное сокрытие поля вывода при отсутствии фото.

вот такой код, который оборачивает условия вокруг картинки:

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

<!-- IF U_PROFILE_PICTURE --><img src="{U_PROFILE_PICTURE}" alt="" title="{L_LPP_TITLE}" /><!-- ELSE --> фотография отсутствует <!-- ENDIF -->


даст вывод надписи фотография отсутствует вместо пустого поля (отсутствующей фотографии. можете вместо надписи прописать изображение-заглушку. (при этом варианте надписи сверху и снизу, как
• Фото в профиле пользователя •

и

• Знакомьтесь, это я... •

будут выводится.

Успехов в применении.


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ 1 сообщение ] 

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

Всего посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (63) здесь было 23 май 2026, 12:35

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

Часовой пояс: UTC + 3 часа



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

Найти:
Перейти:  

cron

Текущее время: 25 июн 2026, 17:14

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB.