| Администратор |
 |
Стаж: 5 месяцев 19 дней Сообщения: 228 Откуда: здешние мы
Стиль сайта: subsilver2
Настоящее имя: Андрей
|
Linked Profile Picture - Фото в профиле пользователяМод реализует возможность вывести в полный профиль пользователя его реальную фотографию (на некоторых ресурсах пользуются. аватар - это для сообщений, а в профиле может быть и "настоящее лицо" пользователя). Фотография выводится как ссылка на фото, размещённое где-то на стороннем ресурсе. ссылка должен обязательно иметь "расширение", то есть .jpeg, например. по умолчанию размер фотографии должен быть не больше 250 px по горизонтали и 400 px по вертикали. При клике по фотографии она открывается во внешнем слое на этой же странице (типа слайдера). В теме пользователя в его минипрофиле выводится иконка "фото", если он выставил свою фотографию в полном профиле. данный мод создан на основе оригинального англоязычного варианта и варианта, переделанного автором Pthelovod. оба мода взяты здесь: оригинальная тема. мною только добавлен вариант мода под стиль subsilver2. Администратор может проверять и редактировать (удалять) некорректные ссылки-изображения. Как это будет выглядеть в prosilver:

сканы
Вложение:
lpp_usp_prosilver.png [ 28.6 КБ | Просмотров: 30 ]
lpp_usp_prosilver.png
Вложение:
profil_1_prosilver.png [ 67.58 КБ | Просмотров: 30 ]
profil_1_prosilver.png
Вложение:
profil_2_prosilver.png [ 73.38 КБ | Просмотров: 30 ]
profil_2_prosilver.png
Вложение:
item_prosilver.png [ 56.71 КБ | Просмотров: 30 ]
item_prosilver.png
Как это будет выглядеть в subsilver2:

сканы
Вложение:
lpp_usp_subsilver.png [ 28.49 КБ | Просмотров: 30 ]
lpp_usp_subsilver.png
Вложение:
profil_1_subsilver.png [ 81.71 КБ | Просмотров: 30 ]
profil_1_subsilver.png
Вложение:
profil_2_subsilver.png [ 66.24 КБ | Просмотров: 30 ]
profil_2_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 загрузить в корень сайта и провести запрос, набрав браузере после отработки запроса удалить файл 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Найти Вставить после найденного Код: Выделить всё // 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')),Найти Вставить после найденного Код: Выделить всё // MOD: Linked Profile Picture 'user_profile_picture' => $data['profile_picture'],Найти Вставить после найденного Код: Выделить всё // 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',Открыть includes/upc/up_pm_viewmessage.phpНайти Код: Выделить всё $user->add_lang(array('viewtopic', 'memberlist'));После 'memberlist'Вставить Найти Код: Выделить всё 'U_JABBER' => ($user_info['user_jabber'] && $auth->acl_get('u_sendim')) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contact&action=jabber&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']),Найти Вставить после найденного Код: Выделить всё // 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')),Найти Вставить после найденного Код: Выделить всё // MOD: Linked Profile Picture 'user_profile_picture' => $data['profile_picture'],Найти Вставить после найденного Код: Выделить всё // MOD: Linked Profile Picture 'PROFILE_PICTURE' => $data['profile_picture'],Открыть memberlist.phpНайти Код: Выделить всё $user->setup(array('memberlist', 'groups'));После 'groups'Вставить Найти Код: Выделить всё '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')Найти Вставить после найденного Код: Выделить всё // MOD: Linked Profile Picture 'lpp' => '',Найти Код: Выделить всё 'search' => ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", 'search_author=' . urlencode($row['username']) .'&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Найти Вставить после найденного: Код: Выделить всё //Mod: Linked Profile Picture 'IMG_ICON_CONTACT_LPP' => 'MOD: LPP',Открыть language/ru/acp/styles.phpНайти Вставить после найденного: Код: Выделить всё //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Найти Вставить перед найденным Код: Выделить всё <!-- 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Вставить Найти Код: Выделить всё <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Добавить Найти Код: Выделить всё <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Найти Вставить перед найденным Код: Выделить всё <!-- 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 -->даст вывод надписи фотография отсутствует вместо пустого поля (отсутствующей фотографии. можете вместо надписи прописать изображение-заглушку. (при этом варианте надписи сверху и снизу, как • Фото в профиле пользователя • и • Знакомьтесь, это я... • будут выводится. Успехов в применении.
|
|