Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

User Blog Mod: доработки

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

User Blog Mod: доработки

Сообщение Nekstati »

Несколько небольших дополнений и изменений для User Blog Mod. Делала для себя и на свой вкус, но, надеюсь, кому-то ещё пригодится.
  • Добавляем кнопку блога в минипрофиль.
  • Ссылка «Блоги» открывает список блогов.
  • Сортировка списка блогов по дате последней записи.
  • Удаляем из шапки ссылку «Мой блог».
  • Поиск в блогах из стандартной формы поиска в шапке сайта.
  • Быстрая цитата для быстрого ответа (если у вас установлен БО Rayden'а).
  • Кликабельные аватары.
  • Кнопка фотоальбома в минипрофиле блога и кнопка блога в минипрофиле фотогалереи (если у вас установлена phpBB Gallery).
Инструкции даны для стиля Prosilver.
Версия User Blog Mod — 1.0.13.
Версия phpBB — 3.0.7-PL1...3.0.10.
Добавляем в минипрофиль кнопку блога. 
__________________________________________

Добавляем в минипрофиль кнопку блога.

Вместо штатной текстовой ссылки на страницах форума делаем симпатичную кнопку, такую же как кнопки ICQ, ЛС, Jabber и прочие.
blog_button.png
viewtopic.php

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

//=== найти

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

//=== добавить после

    'U_BLOG'        => ($config['user_blog_enable'] && $config['user_blog_links_output_block'] && $poster_id != ANONYMOUS && ($user_cache[$poster_id]['blog_count'] > 0 || $config['user_blog_always_show_blog_url'])) ? blog_url($poster_id) : '',
        
//=== найти и удалить

    if (isset($config['user_blog_enable']) && $config['user_blog_enable'])
    {
        add_blog_links($poster_id, 'postrow.custom_fields', $user_cache[$poster_id]);
    } 
blog/includes/blog_data.php

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

//=== найти

    'U_YIM'                => self::$user[$user_id]['yim_url'],

//=== добавить после

    'U_USER_BLOG_URL'    => ($config['user_blog_links_output_block'] && (self::$user[$user_id]['blog_count'] > 0 || $config['user_blog_always_show_blog_url'])) ? blog_url($user_id) : '',

//=== найти и удалить

    // add the blog links in the custom fields
    if ($user_id != ANONYMOUS)
    {
        $custom_fields[] = add_blog_links($user_id, '', self::$user[$user_id], false, true, true);
    } 
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 or postrow.U_JABBER -->

//=== заменить на

    <!-- 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 or postrow.U_JABBER or postrow.U_BLOG -->

//=== найти

    <!-- IF postrow.U_JABBER --><li class="jabber-icon"><a href="{postrow.U_JABBER}" onclick="popup(this.href, 550, 320); return false;" title="{L_JABBER}"><span>{L_JABBER}</span></a></li><!-- ENDIF -->

//=== добавить после

    <!-- IF postrow.U_BLOG --><li class="userblog-icon"><a href="{postrow.U_BLOG}" title="{L_BLOG}"><span>{L_BLOG}</span></a></li><!-- ENDIF --> 
styles/prosilver/template/blog/view_blog.html

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

//=== найти

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

//=== заменить на

    <!-- IF replyrow.U_PM or replyrow.U_EMAIL or replyrow.U_WWW or replyrow.U_MSN or replyrow.U_ICQ or replyrow.U_YIM or replyrow.U_AIM or replyrow.U_USER_BLOG_URL -->

//=== найти

    <!-- IF replyrow.U_JABBER --><li class="jabber-icon"><a href="{replyrow.U_JABBER}" title="{L_JABBER}"><span>{L_JABBER}</span></a></li><!-- ENDIF -->

//=== добавить после

    <!-- IF replyrow.U_USER_BLOG_URL --><li class="userblog-icon"><a href="{replyrow.U_USER_BLOG_URL}" title="{L_BLOG}"><span>{L_BLOG}</span></a></li><!-- ENDIF --> 
styles/prosilver/template/blog/left_menu.html

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

//=== найти

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

//=== заменить на

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

//=== найти

    <!-- IF U_JABBER --><li class="jabber-icon"><a href="{U_JABBER}" title="{L_JABBER}"><span>{L_JABBER}</span></a></li><!-- ENDIF -->

//=== добавить после

    <!-- IF U_USER_BLOG_URL --><li class="userblog-icon"><a href="{U_USER_BLOG_URL}" title="{L_BLOG}"><span>{L_BLOG}</span></a></li><!-- ENDIF --> 
styles/prosilver/theme/blog.css

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

//=== добавить в конце файла

.userblog-icon, .userblog-icon a { background: url("{T_IMAGESET_PATH}/icon_contact_blog.gif") top left no-repeat; }

ul.profile-icons li.userblog-icon { width: 21px; height: 20px; } 
Эту картинку кладём в папку styles/prosilver/imageset/, название её должно быть icon_contact_blog.gif.
icon_contact_blog.gif
icon_contact_blog.gif (1.36 КБ) 18465 просмотров

__________________________________________
Ссылка «Блоги» открывает список блогов. 
Ссылка «Блоги» открывает список блогов.

По умолчанию ссылка «Блоги» открывает страницу с последними и случайными записями и комментариями. Мне эта страница не нравится. Я хочу, чтобы ссылка «Блоги» открывала список блогов. По-моему, так будет логичнее.

Прежде всего устанавливаем плагин «User List» и подключаем его в админке. После установки в левом меню блогов появляется ссылка «Список блогов». Далее сделаем так, чтобы ссылка «Блоги» в шапке сайта действовала как «Список блогов», причём лишний параметр page=userlist в адресной строке у нас появляться не будет.

blog.php

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

//=== найти

$cancel = (isset($_POST['cancel'])) ? true : false;

//=== добавить после

if ($page == '' && $mode == '' && $user_id == 0 && $blog_id == 0 && $reply_id == 0 && $category_id == 0)
{
    $page = 'userlist';
} 
Осторожно: если вы используете категории блогов, то эту правку вносить нельзя, иначе у вас не будет прямой ссылки на список категорий.


__________________________________________
Сортировка списка блогов по дате последней записи. 
Сортировка списка блогов по дате последней записи.

Сортировка в списке блогов по умолчанию алфавитная. Делаем сортировку в соответствии со стандартом phpBB, по дате последней записи, т. е. самые свежие блоги сверху.

blog/view/userlist.php

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

//=== найти

$sort_key = request_var('sk', 't');

//=== заменить на

$sort_key = request_var('sk', 'pt'); 

__________________________________________
Удаляем из шапки ссылку «Мой блог», оставляем только ссылку «Блоги». 
Удаляем из шапки ссылку «Мой блог», оставляем только ссылку «Блоги».

Ссылок на «Мой блог» и так предостаточно: и в левом меню блогов, и в минипрофиле, и в полном профиле, да плюс на любой странице блогов имеется кнопка «Написать». Зачем тогда захламлять шапку лишней ссылкой? Там и без неё тесно. Убираем хлам.

styles/prosilver/template/overall_header.html

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

//=== найти

    <!-- BEGIN blog_links -->
        <li class="{blog_links.CLASS}"><a href="{blog_links.URL}">{blog_links.TEXT}</a></li>
    <!-- END blog_links -->

//=== заменить на

    <!-- IF U_BLOG --><li class="icon-members"><a href="{U_BLOG}">{L_BLOGS}</a></li><!-- ENDIF --> 

__________________________________________
Поиск в блогах из стандартной формы поиска в шапке сайта. 
Поиск в блогах из стандартной формы поиска в шапке сайта.

Если мы открываем страницу блога, а затем пытаемся что-то найти из формы поиска в шапке, то поиск ведётся почему-то не в блогах, а в форумах. Нелогично, да? Здравый смысл говорит нам, что когда мы находимся в блогах, то и поиск должен вестись в блогах. То же самое относится и к фотогалерее, и к базе знаний, и к любому другому моду, представляющему собой раздел сайта. Исправим это.

(В идеале, возможно, поиск из шапки должен производиться по всему сайту целиком, включая форумы, блоги, фотогалерею и прочее. Но это будет уже совсем другой мод.)
blog_search.png
blog_search.png (6.07 КБ) 18465 просмотров
styles/prosilver/template/overall_header.html

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

//=== найти

        <!-- IF S_DISPLAY_SEARCH and not S_IN_SEARCH -->

//=== заменить на

        <!-- IF S_DISPLAY_SEARCH and not S_IN_SEARCH and not S_IN_BLOG -->

//=== найти

            <span class="corners-bottom"><span></span></span></div>
        </div>

        <div class="navbar">

//=== добавить перед

        <!-- IF S_DISPLAY_BLOG_SEARCH and not S_IN_SEARCH and S_IN_BLOG -->
            <div id="search-box">
                <form action="{U_BLOG_SEARCH}" method="post" id="search">
                <fieldset>
                    <input name="keywords" id="keywords" type="text" maxlength="128" title="{L_SEARCH_KEYWORDS}" class="inputbox search" value="<!-- IF SEARCH_WORDS-->{SEARCH_WORDS}<!-- ELSE -->{L_SEARCH_BLOGS}&hellip;<!-- ENDIF -->" onclick="if(this.value=='{LA_SEARCH_BLOGS}&hellip;')this.value='';" onblur="if(this.value=='')this.value='{LA_SEARCH_BLOGS}&hellip;';" style="width: 130px" /> 
                    <input class="button2" value="{L_SEARCH}" type="submit" /><br />
                    <a href="{U_BLOG_SEARCH}" title="{L_SEARCH_ADV_EXPLAIN}">{L_SEARCH_ADV}</a> {S_SEARCH_HIDDEN_FIELDS}
                </fieldset>
                </form>
            </div>
        <!-- ENDIF --> 
blog.php

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

//=== найти

    'S_HIDDEN_FIELDS'        => $s_hidden_fields,

//=== добавить после

    'S_IN_BLOG'                => true, 
При желании удаляем штатную форму поиска из левого меню блогов.

styles/prosilver/template/blog/left_menu.html

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

//=== найти и удалить

<!-- IF S_DISPLAY_BLOG_SEARCH -->
    <div class="post bg1">
        <div class="inner">
            <span class="corners-top"><span></span></span>
            <div class="left_menu_title">{L_SEARCH_BLOGS}</div>
            <form id="blog_searchform" method="post" action="{U_BLOG_SEARCH}">
                <fieldset>
                    <input name="keywords" id="blog_keywords" type="text" maxlength="128" title="{L_SEARCH_KEYWORDS}" class="inputbox search" style="width: 140px;" value="<!-- IF SEARCH_WORDS-->{SEARCH_WORDS}<!-- ELSE -->{L_SEARCH_MINI}<!-- ENDIF -->" onclick="if(this.value=='{LA_SEARCH_MINI}')this.value='';" onblur="if(this.value=='')this.value='{LA_SEARCH_MINI}';" />
                    <input class="button2" value="{L_SEARCH}" type="submit" /><br />
                    {S_HIDDEN_FIELDS}
                </fieldset>
            </form>
            <div style="padding: 2px;"><a href="{U_BLOG_SEARCH}" title="{L_SEARCH_ADV_EXPLAIN}">{L_SEARCH_ADV}</a></div>
            <span class="corners-bottom"><span></span></span>
        </div>
    </div>
<!-- ENDIF --> 

__________________________________________
Быстрая цитата для быстрого ответа. 
Быстрая цитата для быстрого ответа.

Если на вашей конференции установлена модификация быстрого ответа авторства Rayden'а, то правильно будет распространить её действие и на блоги. Итак, сделаем кнопку «Быстрая цитата» (цитата выделенного текста) и кликабельные ники (вставка ника в форму быстрого ответа). Смайлики и ББ-коды делать не будем, чтобы не захламлять блоги.

styles/prosilver/template/blog/quick_reply.html

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

//=== добавить в начале файла

<script type="text/javascript">
// <![CDATA[
    var form_name = 'postform';
    var text_name = 'message';
// ]]>
</script>
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
Делаем кликабельные ники.

styles/prosilver/template/blog/view_blog.html

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

//=== найти (только первое вхождение, строка 137)

    <strong>{blogrow.USER_FULL}</strong>

//=== заменить на

    <!-- IF S_QUICK_REPLY --><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{blogrow.USER_QUOTE}[/b]'); return false;"<!-- IF blogrow.USER_COLOUR --> style="color: {blogrow.USER_COLOUR}"<!-- ENDIF -->><strong>{blogrow.USERNAME}</strong></a><!-- ELSE --><strong>{blogrow.USER_FULL}</strong><!-- ENDIF -->

//=== найти дважды

    <strong>{replyrow.USER_FULL}</strong>

//=== заменить на

    <!-- IF S_QUICK_REPLY --><strong><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{replyrow.USER_QUOTE}[/b]'); return false;"<!-- IF replyrow.USER_COLOUR --> style="color: {replyrow.USER_COLOUR}"<!-- ENDIF -->>{replyrow.USERNAME}</a></strong><!-- ELSE --><strong>{replyrow.USER_FULL}</strong><!-- ENDIF --> 
Вставляем кнопку «Быстрая цитата».

styles/prosilver/template/blog/view_blog.html

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

//=== найти

    <!-- IF replyrow.U_EDIT --><li class="edit-icon"><a href="{replyrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->

//=== добавить перед

    <!-- IF S_QUICK_REPLY --><li class="quickquote-icon"><a href="#postform" onclick="if((window.getSelection && window.getSelection().toString() == '') || (document.getSelection && document.getSelection() == '') || (document.selection && document.selection.createRange().text == '')){ alert('{L_NO_SELECTION}'); return false; }else{addquote({replyrow.ID},'{replyrow.USER_QUOTE}'); insert_text('\r\n'); return false; }" title="{L_QUICKQUOTE_TEXT}"><span>{L_QUICKQUOTE_TEXT}</span></a></li><!-- ENDIF -->

//=== найти

    <!-- IF blogrow.U_EDIT --><li class="edit-icon"><a href="{blogrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->

//=== добавить перед

    <!-- IF S_QUICK_REPLY --><li class="quickquote-icon"><a href="#postform" onclick="if((window.getSelection && window.getSelection().toString() == '') || (document.getSelection && document.getSelection() == '') || (document.selection && document.selection.createRange().text == '')){ alert('{L_NO_SELECTION}'); return false; }else{addquote({blogrow.ID},'{blogrow.USER_QUOTE}'); insert_text('\r\n'); return false; }" title="{L_QUICKQUOTE_TEXT}"><span>{L_QUICKQUOTE_TEXT}</span></a></li><!-- ENDIF --> 
blog/includes/blog_data.php

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

//=== найти (только второе вхождение, строка 1180)

'USER_FULL'            => self::$user[$user_id]['username_full'],

//=== добавить после

'USER_QUOTE'        => addslashes(self::$user[$user_id]['username']), 

__________________________________________
Кликабельные аватары. 
Кликабельные аватары.

Если мы сделали вышеописанные изменения для быстрого ответа, то в минипрофилях комментариев у нас теперь нет ссылок на профили пользователей. Исправим это: сделаем аватары ссылками на профили — точно так же, как это сделано в viewtopic.php.

styles/prosilver/template/blog/view_blog.html

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

//=== найти

                            <!-- IF replyrow.AVATAR -->
                                {replyrow.AVATAR}<br />
                            <!-- ENDIF -->

//=== заменить на

                            <!-- IF replyrow.AVATAR -->
                                <!-- IF replyrow.U_USERPROFILE and not S_IS_BOT --><a href="{replyrow.U_PROFILE}">{replyrow.AVATAR}</a><!-- ELSE -->{replyrow.AVATAR}<!-- ENDIF --><br />
                            <!-- ENDIF --> 
styles/prosilver/template/blog/left_menu.html

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

//=== найти

                    <!-- IF AVATAR -->
                        {AVATAR}<br />
                    <!-- ENDIF -->

//=== заменить на

                    <!-- IF AVATAR -->
                        <!-- IF U_USERPROFILE and not S_IS_BOT --><a href="{U_USERPROFILE}">{AVATAR}</a><!-- ELSE -->{AVATAR}<!-- ENDIF --><br />
                    <!-- ENDIF --> 
blog/includes/blog_data.php

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

//=== найти

    'U_PROFILE'            => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=viewprofile&u=$user_id"),

//=== добавить после

    'U_USERPROFILE'        => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=viewprofile&u=$user_id"), 

Продолжение, касающееся интеграции phpBB Gallery 1.1.5 и User Blog Mod, см. там.

__________________________________________
После внесения любых изменений в файлы не забываем зайти в администраторский раздел на вкладку «Стили» и обновить шаблон и тему Prosilver.

__________________________________________
Транслитерация ссылок
Сворачивание архива записей
Информация о блогах и комментариях к порталу на основе board3 Portal
Отображение вложений-изображений в "последних записях", в "последних комментариях" и в "популярных записях"
Добавляем кнопки дневников в мини-профили фотогалереи (phpBB Gallery).
Добавляем кнопки фотоальбомов в мини-профили дневников.
Fix для опции "Прямое перенаправление"

Плагины
Simple Points (на русском)
User Blog Gallery of Attachments
User Blog Gallery

Стили для блогов
greenLizard и Anime-Tico
Anime-Tico_Pthelovod
Anime-Tico 04.2013 Pthelovod
Blogger Clone 04.2013 Pthelovod
coffeedesk
Аватара пользователя
amka
phpBB 2.0.0
Сообщения: 212
Стаж: 16 лет 10 месяцев
Благодарил (а): 15 раз
Поблагодарили: 5 раз
Контактная информация:

Re: User Blog Mod: доработки

Сообщение amka »

Вот если бы еще плагин сделать, чтобы при добавлении новой статьи в блогах, автоматически формировалось информационное сообщение в определенной теме форума.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: User Blog Mod: доработки

Сообщение Nekstati »

Такой плагин есть для Knowledge Base. А с назначением User Blog Mod'а эта идея, по-моему, плохо стыкуется, ведь мод подразумевает, что куча пользователей будет писать кучу сообщений в своих дневниках, десятками и сотнями в день.

Можно выводить блок «Последние записи в блогах» на главную страницу конференции или на портал.
http://lithiumstudios.org/forum/viewtop ... =41&t=1045
http://lithiumstudios.org/forum/viewtop ... =42&t=1606
Аватара пользователя
amka
phpBB 2.0.0
Сообщения: 212
Стаж: 16 лет 10 месяцев
Благодарил (а): 15 раз
Поблагодарили: 5 раз
Контактная информация:

Re: User Blog Mod: доработки

Сообщение amka »

Nekstati
На портал я вывел такой блок, но мне хотелось бы именно в виде плагина. Многие заходят на портал и нажимают "Непрочитанные сообщения" и все. А так они среди "Непрочитанных сообщений" увидят ссылку, перейдут, почитают, оставят комменты.
Аватара пользователя
Gabriil
phpBB 1.2.1
Сообщения: 28
Стаж: 14 лет 1 месяц
Благодарил (а): 6 раз
Контактная информация:

Re: User Blog Mod: доработки

Сообщение Gabriil »

Nekstati
сделал все по Вашей инструкции, ники не стали кликабельными и в быструю цитату вставляется только имя автора сообщения, а имя пользователя оставившего комментарий не вставляется

[фото пропало]
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: User Blog Mod: доработки

Сообщение Nekstati »

Gabriil, в инструкции была ошибка. Исправлено, спасибо. Выполните инструкцию заново. Либо внесите следующие изменения поверх уже сделанных:

blog/includes/blog_data.php

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

//=== найти (только второе вхождение, строка 1180)

			'USER_FULL'			=> self::$user[$user_id]['username_full'],

//=== добавить после

			'USER_QUOTE'		=> addslashes(self::$user[$user_id]['username']),
И дополнительно, для улучшения вида ников в комментариях:
styles/prosilver/template/blog/view_blog.html

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

//=== найти дважды

<!-- IF S_QUICK_REPLY --><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{replyrow.USER_QUOTE}[/b]'); return false;"<!-- IF replyrow.USER_COLOUR --> style="color: {replyrow.USER_COLOUR}"<!-- ENDIF -->><strong>{replyrow.USERNAME}</strong></a><!-- ELSE --><strong>{replyrow.USER_FULL}</strong><!-- ENDIF -->

//=== заменить на

<!-- IF S_QUICK_REPLY --><strong><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{replyrow.USER_QUOTE}[/b]'); return false;"<!-- IF replyrow.USER_COLOUR --> style="color: {replyrow.USER_COLOUR}"<!-- ENDIF -->>{replyrow.USERNAME}</a></strong><!-- ELSE --><strong>{replyrow.USER_FULL}</strong><!-- ENDIF -->
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 13 лет 11 месяцев
Откуда: Сергиев Посад
Благодарил (а): 374 раза
Поблагодарили: 727 раз
Контактная информация:

Re: User Blog Mod: доработки

Сообщение владимир1983 »

Nekstati Здрвствуйте!
У меня стиль Milky Way на основе subsilver2, может найдёте как нибудь время и сделаете инструкцию для subsilver2 для вот этих доработок:
  • Быстрая цитата для быстрого ответа
  • Кликабельные аватары.
  • Ссылка «Блоги» открывает список блогов.
?
Nekstati где можно почитать про установку плагинов на блог? Скачал User List, в архиве инструкции нет.
Спасибо за ваши доработки.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: User Blog Mod: доработки

Сообщение Nekstati »

Для Subsilver2 — постараюсь.

В архиве есть инструкция в виде TXT-файла. Просто скопируйте содержимое папки root/ в корень форума, а затем в админке подключите плагин. Придётся ещё перевести файлик root/language/en/mods/blog/plugins/userlist.php и положить его в /ru/.
Аватара пользователя
Kostelano
phpBB 1.4.2
Сообщения: 69
Стаж: 14 лет 1 месяц
Откуда: Dnepr, UA
Благодарил (а): 10 раз
Поблагодарили: 12 раз

Re: User Blog Mod: доработки

Сообщение Kostelano »

Т.к. тут завязалась модификация User Blog Mod, задам вопрос здесь.

1. Как можно осуществить транслирование ссылок вида blog/Spitfire/некоторая_запись.html в blog/spitfire/некоторая_запись.html, т.е. вся ссылка в нижнем регистре? То же самое касается и категорий: blog/Категория_1/index_c-1.html...

2. И еще один момент. Хотелось бы чтобы в ссылках на категории и записи блогов (возможно, исключение - имена пользователей) не было русскоязычных слов. Т.е. осуществить замену русских букв на англ.:

Было: blog/категория_1/index_c-1.html

Стало: blog/categoriya_1/index_c-1.html
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: User Blog Mod: доработки

Сообщение Nekstati »

1. Транслитерируем ссылки и переводим их в нижний регистр (за исключением имён пользователей)

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

// Открыть blog/includes/functions.php
// Изменить кодировку файла на UTF-8 без BOM
// Найти

if (!defined('IN_PHPBB'))
{
	exit;
}

// Добавить после

function translit($string) 
{
	$string = utf8_strtolower($string);
	$chars = array(
		'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'e',
		'ж' => 'j', 'з' => 'z', 'и' => 'i', 'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' => 'm',
		'н' => 'n', 'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u',
		'ф' => 'f', 'х' => 'h', 'ц' => 'ts', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch', 'ъ' => 'y',
		'ы' => 'y', 'ь' => '', 'э' => 'e', 'ю' => 'yu', 'я' => 'ya',
		'ї' => 'i', 'є' => 'ie', 'ў' => 'u', 'ґ' => 'h'
	);
	return strtr($string, $chars);
}

// Найти

		$replace_page = true; // match everything except the page if this is set to false

// Добавить после

		if (isset($url_data['page'])) $url_data['page'] = translit($url_data['page']);

// Найти четырежды (это части строк, названия функций)

utf8_clean_string

// Заменить на

translit
2. Если это зачем-то надо, переводим в нижний регистр имена пользователей (но не транслитерируем).

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

// blog/includes/functions.php
// Найти три строки в разных местах

				$url_data['page'] = urlencode($user->data['username']);
				$url_data['page'] = urlencode($extra_data['username']);
				$url_data['page'] = urlencode(blog_data::$user[$user_id]['username']);

// Заменить соответственно на

				$url_data['page'] = urlencode(utf8_strtolower($user->data['username']));
				$url_data['page'] = urlencode(utf8_strtolower($extra_data['username']));
				$url_data['page'] = urlencode(utf8_strtolower(blog_data::$user[$user_id]['username']));
Имейте в виду, что в IE кириллические имена будут по-прежнему отображаться в виде hex-кода, хотя заголовки записей и категорий примут нормальный вид. Решить эту проблему можно лишь транслитерированием имён, но сделать это по приведённому простому принципу нельзя: ссылки на блоги пользователей вида site.ru/blog/Иван станут нерабочими. Т. е. надо глубоко копать и долго думать…
Аватара пользователя
Kostelano
phpBB 1.4.2
Сообщения: 69
Стаж: 14 лет 1 месяц
Откуда: Dnepr, UA
Благодарил (а): 10 раз
Поблагодарили: 12 раз

Re: User Blog Mod: доработки

Сообщение Kostelano »

Возник вопрос по плагину "Архив записей".
arhiv.PNG
arhiv.PNG (4.1 КБ) 18006 просмотров
  • Как заставить архив быть свернутым по-умолчанию?
  • Можно ли реализовать сокращение названия до определенного кол-ва символов, а не выводить название записи полностью?
--------------------------------------------------------------------------------------------------------------

И может кто-нить вкратце описать функции каждого файла из директории prosilver/template/blog? Что-нить наподобии [FAQ] Шаблон форума, CSS и html, где что "ковырять".
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: User Blog Mod: доработки

Сообщение Nekstati »

Для сворачивания архива — найти в styles\prosilver\template\blog\plugins\archive\archive_body.html

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

							<span onclick="toggle_month({archiverow.S_ROW_COUNT});" style="cursor: pointer;"><strong><img id="month_image_{archiverow.S_ROW_COUNT}" src="<!-- IF archiverow.S_ROW_COUNT > 0 -->{IMG_PLUS}"  alt="+"<!-- ELSE -->{IMG_MINUS}"  alt="-"<!-- ENDIF --> /> {archiverow.MONTH} {archiverow.YEAR}</strong></span>
							<div id="month_{archiverow.S_ROW_COUNT}" <!-- IF archiverow.S_ROW_COUNT > 0 -->style="display: none;"<!-- ENDIF -->>
Заменить на

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

							<span onclick="toggle_month({archiverow.S_ROW_COUNT});" style="cursor: pointer;"><strong><img id="month_image_{archiverow.S_ROW_COUNT}" src="{IMG_PLUS}"  alt="+" /> {archiverow.MONTH} {archiverow.YEAR}</strong></span>
							<div id="month_{archiverow.S_ROW_COUNT}" style="display: none;">
Для укорачивания заголовков (в данном случае до 30 знаков) — найти в blog\plugins\archive\functions.php

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

			'TITLE'			=> censor_text($row['blog_subject']),
Заменить на

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

			'TITLE'			=> utf8_strlen($csub = censor_text($row['blog_subject'])) > 30 ? utf8_substr($csub, 0, 30) . '&hellip;' : $csub,
Кстати, для этой цели существует замечательное CSS-свойство text-overflow, но, к сожалению, Firefox его не понимает.
может кто-нить вкратце описать функции каждого файла из директории prosilver/template/blog?
view_blog.html — дневник пользователя и комментарии.
view_blog_main.html — главная страница дневников, случайные/последние/популярные.
Функции остальных ясны из названий.
mEx
phpBB 1.4.4
Сообщения: 197
Стаж: 16 лет 11 месяцев
Благодарил (а): 4 раза

Re: User Blog Mod: доработки

Сообщение mEx »

Для сворачивания архива — найти в styles\prosilver\template\blog\plugins\archive\archive_body.html

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

							<span onclick="toggle_month({archiverow.S_ROW_COUNT});" style="cursor: pointer;"><strong><img id="month_image_{archiverow.S_ROW_COUNT}" src="<!-- IF archiverow.S_ROW_COUNT > 0 -->{IMG_PLUS}"  alt="+"<!-- ELSE -->{IMG_MINUS}"  alt="-"<!-- ENDIF --> /> {archiverow.MONTH} {archiverow.YEAR}</strong></span>
							<div id="month_{archiverow.S_ROW_COUNT}" <!-- IF archiverow.S_ROW_COUNT > 0 -->style="display: none;"<!-- ENDIF -->>
Заменить на

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

							<span onclick="toggle_month({archiverow.S_ROW_COUNT});" style="cursor: pointer;"><strong><img id="month_image_{archiverow.S_ROW_COUNT}" src="{IMG_PLUS}"  alt="+" /> {archiverow.MONTH} {archiverow.YEAR}</strong></span>
Мне это не дало никакого эффекта...
Было: blog/категория_1/index_c-1.html

Стало: blog/categoriya_1/index_c-1.html
А можно ли сделать так, чтобы оба варианта были рабочими, но по умолчанию ставился вариант с латиницей. Не хочется терять все кириллические гиперссылки разбросанные по форуму...
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: User Blog Mod: доработки

Сообщение Nekstati »

Старые ссылки останутся рабочими.
mEx писал(а):Мне это не дало никакого эффекта...
Сорри, очищайте кэш.
mEx
phpBB 1.4.4
Сообщения: 197
Стаж: 16 лет 11 месяцев
Благодарил (а): 4 раза

Re: User Blog Mod: доработки

Сообщение mEx »

Подскажите пожалуйста, как сделать на главной странице блогов, чтобы столбцы "последние записи", "последние комментарии", шли друг за другом, а не располагались на одном уровне? Чтобы ширина у обоих была 100%.
Закрыто

Вернуться в «Поддержка модов для phpBB 3.0.x»