1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Esthetic Quote Selected [RU]

Тема в разделе "Made in XF-Russia.ru", создана пользователем Viodele, 03.07.2011.

Загрузка
  1. Viodele

    Viodele Местный

    Регистрация:
    22.06.11
    Сообщения:
    60
    Симпатии:
    124
    Версия XF:
    1.1.2
    Вопрос интересный, конечно. Но, давайте остановимся на том, что у Ваших пользователей форума есть возможность смены локализации. Например, у пользователя стоит дефолтно английская локаль. При этом - весь интерфейс форума у него отображается на английском языке, и только кнопки "цитировать" - на русском. Немного неправильно. Я, как бы "поклонник" правильного формирования кода. Потому, все фразы, которые добавляются установщиком дополнения - должны быть на английском языке. Они в базе данных Ксени будут маркированы идентификатором "0", иначе говоря, попадут в категорию фраз "Основной язык". Основной язык, как уже написал - у Ксена английский. Таким образом, формируя "правильную" базу фраз, удастся избежать возможной путаницы. Кроме того, не забывайте о том, что уже есть и украиноязычные форумы на базе Ксени. Потому, менять установочный файл под каждую конкретную локаль - немного не правильно. Особо это относится к форумам у которых 2 и больше активных локали(языка), например: английский, украинский и русский.
    :)
     
    arelav и grizone нравится это.
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Прикреплю уж и русский язык, наверное так будет правильно.

    EDIT: Вложение удалено, т.к. больше не актуально в новой версии.
     
  3. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Viodele, речь была о том, что к продукту просто еще и языковой XML-файл с фразами приложить проще, чем добавлять их ручками.

    infis выше как раз его и выложил :)
     
    CyberAP нравится это.
  4. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Мысли вслух: "Вот интересно, почему не предусмотрено в инсталляционном xml сразу все языковые фразы хранить? Ведь это бы упростило распространение, да и установку аддонов. Вместо секции <phrases> можно было бы сделать секцию <languages>, в которой уже были бы различные языки со своими фразами. Если язык один, то вложенность сильно бы не повлияла на размер инсталлятора."
     
  5. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Так можно же фразы добавить в Основной язык как компонент этого аддона. А затем и перевести их на русский. Это гораздо удобнее чем каждому вручную их добавлять. Для английского языка фразы будут уже заданы, а на русский можно отдельно xml выложить.
     
  6. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Это неудобно. Выше я уже описал, что вполне очевидная реализация хранения в инсталляционном xml сразу всех языков с переводами фраз решила бы проблему. Да и при экспорте аддона для каждого неосновного языка требуется отдельно делать экспорт.
     
  7. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    Вот это и есть неудобно и некошерно.
     
    CyberAP нравится это.
  8. Viodele

    Viodele Местный

    Регистрация:
    22.06.11
    Сообщения:
    60
    Симпатии:
    124
    Версия XF:
    1.1.2
    Заключение по установке и запуску дополнения на версии XenForo 1.0.0

    Функционирование данного дополнение реализовано на системе отслеживания внутренних хуков шаблонов страниц. То, что дополнение отказалось работать с версией форума 1.0.0 - следствие того, что в этой версии отсутствуют хуки, необходимые для работы. Хоть я и не фанат правок "фабричных" шаблонов, но это тот случай, в котором придется, все таки ковыряться ручками. Для этого открываем панель администратора и следуем меню: Внешний вид -> Шаблоны(Appearance -> Templates).

    Тут Вам следует отредактировать два шаблона:
    1) Шаблон : post. Ищем кусок кода:
    HTML:
    <div class="publicControls">
        <a href="{xen:link threads/post-permalink, $thread, 'post={$post}'}" class="item muted postNumber hashPermalink" title="{xen:phrase permalink}">#{xen:calc '{$post.position} + 1'}</a>
        <xen:if is="{$post.canLike}">
            <a href="{xen:link posts/like, $post}" class="LikeLink item control {xen:if $post.like_date, unlike, like}" data-container="#likes-post-{$post.post_id}"><span></span><span class="LikeLabel">{xen:if $post.like_date, {xen:phrase unlike}, {xen:phrase like}}</span></a>
        </xen:if>
        <xen:if is="{$canReply}">
            <a href="{xen:link threads/reply, $thread, 'quote={$post.post_id}'}" data-postUrl="{xen:link posts/quote, $post}" class="ReplyQuote item control reply" title="{xen:phrase reply_quoting_this_message}"><span></span>{xen:phrase reply}</a>
        </xen:if>
    </div>
    Добавляем новый хук в код. В результате должно получиться(заменить этим кодом):
    HTML:
    <div class="publicControls">
        <xen:hook name="post_public_controls">
        <a href="{xen:link threads/post-permalink, $thread, 'post={$post}'}" class="item muted postNumber hashPermalink" title="{xen:phrase permalink}">#{xen:calc '{$post.position} + 1'}</a>
        <xen:if is="{$post.canLike}">
            <a href="{xen:link posts/like, $post}" class="LikeLink item control {xen:if $post.like_date, unlike, like}" data-container="#likes-post-{$post.post_id}"><span></span><span class="LikeLabel">{xen:if $post.like_date, {xen:phrase unlike}, {xen:phrase like}}</span></a>
        </xen:if>
        <xen:if is="{$canReply}">
            <a href="{xen:link threads/reply, $thread, 'quote={$post.post_id}'}" data-postUrl="{xen:link posts/quote, $post}" class="ReplyQuote item control reply" title="{xen:phrase reply_quoting_this_message}"><span></span>{xen:phrase reply}</a>
        </xen:if>
        </xen:hook>
    </div>
    2) Шаблон : editor. Тут код:
    HTML:
    <div><div>
        <xen:if is="{$showWysiwyg}">
            <textarea name="{$formCtrlNameHtml}" id="{$editorId}_html" class="textCtrl MessageEditor" style="display:none; {xen:if $height, 'height: {$height};'}">{$messageHtml}</textarea>
            <noscript><textarea name="{$formCtrlName}" id="{$editorId}" class="textCtrl MessageEditor" style="{xen:if $height, 'height: {$height};'}">{$message}</textarea></noscript>
        <xen:else />
            <textarea name="{$formCtrlName}" id="{$editorId}" class="textCtrl MessageEditor" style="{xen:if $height, 'height: {$height};'}">{$message}</textarea>
        </xen:if>
        <input type="hidden" name="_xfRelativeResolver" value="{$requestPaths.fullUri}" />
    
        <xen:if is="{$showWysiwyg}">
            <xen:include template="editor_js_setup" />
        </xen:if>
    </div></div>
    <xen:edithint template="editor_contents.css" />
    <xen:edithint template="editor_ui.css" />
    <xen:edithint template="form.css" />
    следует заменить на:
    HTML:
    <xen:hook name="editor" params="{xen:array 'editorId={$editorId}'}">
    <div><div>
        <xen:if is="{$showWysiwyg}">
            <textarea name="{$formCtrlNameHtml}" id="{$editorId}_html" class="textCtrl MessageEditor" style="display:none; {xen:if $height, 'height: {$height};'}">{$messageHtml}</textarea>
            <noscript><textarea name="{$formCtrlName}" id="{$editorId}" class="textCtrl MessageEditor" style="{xen:if $height, 'height: {$height};'}">{$message}</textarea></noscript>
        <xen:else />
            <textarea name="{$formCtrlName}" id="{$editorId}" class="textCtrl MessageEditor" style="{xen:if $height, 'height: {$height};'}">{$message}</textarea>
        </xen:if>
        <input type="hidden" name="_xfRelativeResolver" value="{$requestPaths.fullUri}" />
    
        <xen:if is="{$showWysiwyg}">
            <xen:include template="editor_js_setup" />
        </xen:if>
    </div></div>
    </xen:hook>
    <xen:edithint template="editor_contents.css" />
    <xen:edithint template="editor_ui.css" />
    <xen:edithint template="form.css" />
    Это все. После сохранения шаблонов - дополнение должно сразу начать работать. Думаю, не стоит напоминать о том, что при правке дефолтных шаблонов нужно соблюдать осторожность. Так как убитые дефолтные шаблоны могут вынудить пересобирать полностью всю БД. Если особой практики в такой работе нет, настоятельно рекомендую делать резервные бекапы БД. При возникновении трудностей и других вопросов - обращайтесь в ЛС или на почтовый ящик.
    :)
     
    AleX нравится это.
  9. Palych

    Palych Местный

    Регистрация:
    21.12.10
    Сообщения:
    269
    Симпатии:
    59
    Версия XF:
    1.1.1
    Спасибо, все работает :thumbsup:
     
  10. arelav

    arelav Местный

    Регистрация:
    07.06.11
    Сообщения:
    166
    Симпатии:
    355
    Версия XF:
    1.1.0 Final
    Viodele, Замечательная работа, думаю можно немного усовершенствовать в этом месте:

    Код:
    <a href="#" class="item control reply eqs-anchor" title="%s">[%s]</a>
    Когда ссылка на "#", то мы возвращаемся вверх страницы, тут можно выполнять скрипт scroll(параметры) к примеру, либо переход к якорю, но его нужно ставить к редактору, также и при помощи jQuery эффектно можно съехать вниз к редактору. Иначе непонятно сработало выделение или нет, и человек будет "жмакать" кнопку пока не проверит...
     
  11. Viodele

    Viodele Местный

    Регистрация:
    22.06.11
    Сообщения:
    60
    Симпатии:
    124
    Версия XF:
    1.1.2
    Не должно, в принципе... В этом куске кода JavaScript ловит клик по анкеру, и после выполнения своих операций возвращает ответ "false" назад, что прерывает переход. На счет самой идеи скролла к редактору ответа, признаюсь честно, думал долго. Заключительное решение принял, вспомнив один случай из личного опыта. Мне нужно было так-же много цитировать с текста форума. И каждый раз после добавления цитаты - меня кидало в подвал к форме редактирования. Все бы хорошо, но тогда у меня на странице было открыто около 50 постов. И после каждой цитаты - опять вниз. В общем, пока закончил - зол был довольно порядочно. Потому, я решил тут все-таки, скролить обратно к выделенному тексту. В будущем, индикация того, что цитата добавлена, будет проводиться каким-то другим сигналом. Каким именно, пока не известно ввиду того, что еще не утвержден пока ни дизайн, ни базовый функционал версии 1.1.0.

    А в общем, если есть еще у кого мнения по поводу скролла после цитирования - прошу отписаться, либо просто ставьте лайки на посте arelav.
    :)
     
    arelav нравится это.
  12. arelav

    arelav Местный

    Регистрация:
    07.06.11
    Сообщения:
    166
    Симпатии:
    355
    Версия XF:
    1.1.0 Final
    Как вариант - эту опцию запускать можно выборочно, предварительно указав использование в панели настроек... Тогда тем, кому нужен переход - будут счастливы, и те кого это злит - тоже :) А еще лучше не в админке а в параметрах личных каждого пользователя...

    ПЫСЫ: я перечитал код... ранее бегло глянул... Да, вот как раз в этом месте
    Код:
    $("html, body").animate({scrollTop: target_top
    можно опцию и поставить "if"

    А также после вставки обнулять содержимое вставки, так как при нажатии на любые другие ссылки "Цитировать", при это не выделив текст, в окно редактора будет помещено содержимое, которое единажны было отправлено туда. Можно и обработчик добавить (если не выделенный текст) при этом либо ссылку делать неактивной, либо сообщение выдавать, с пояснением "Выделите текст вначале".

    Из опыта: форумы посещают не всегда грамотные люди... и с ними мороки больше чем с кем либо... Поэтому функционал нужно затачивать с опциями "от дурака"..
     
    infis нравится это.
  13. vitalik

    vitalik Местный

    Регистрация:
    17.10.10
    Сообщения:
    62
    Симпатии:
    18
    Viodele и Romchik® нравится это.
  14. Senior

    Senior Местный

    Регистрация:
    05.10.10
    Сообщения:
    195
    Симпатии:
    42
    Версия XF:
    1.1.1
    есть ли кошелек ликпей ? потому как вебмани не пользуюсь, а яндексом пользовался, но все деньги у меня там заблокировали и просят чтобы я прислал им заверенные у нотариуса документы, удостовреяющие личность и заявление на разблокирование кошелька
     
  15. Viodele

    Viodele Местный

    Регистрация:
    22.06.11
    Сообщения:
    60
    Симпатии:
    124
    Версия XF:
    1.1.2
    Есть, номер +380677293655(пассивный моб., только SMS).

    Большое спасибо за проделанную работу! Особенно, учитывая то, что сейчас уже ведется тестирование новой версии дополнения. Вся информация будет проверена и учтена в релизе версии 1.1.0.
     
  16. Palych

    Palych Местный

    Регистрация:
    21.12.10
    Сообщения:
    269
    Симпатии:
    59
    Версия XF:
    1.1.1
    На Яндекс кошелек можно отправить деньги через Сбербанк-онлайн
     
  17. VictorZ

    VictorZ Активный пользователь

    Регистрация:
    10.03.11
    Сообщения:
    39
    Симпатии:
    42
    Спасибо автору. Работает отлично. Заведу зарплату получу и отблагодарю материально :)
     
  18. Viodele

    Viodele Местный

    Регистрация:
    22.06.11
    Сообщения:
    60
    Симпатии:
    124
    Версия XF:
    1.1.2
    Итак, Вашему вниманию предоставляется новая версия плагина.

    Первое сообщение обновлено!
     
    CyberAP, infis, Romchik® и 3 другим нравится это.
  19. Palych

    Palych Местный

    Регистрация:
    21.12.10
    Сообщения:
    269
    Симпатии:
    59
    Версия XF:
    1.1.1
    Вопрос, а если мне нужно выделить текст не для цитирования, а для копирования, можно ли закрыть панель, но чтоб текст остался выделенным?
     
  20. Viodele

    Viodele Местный

    Регистрация:
    22.06.11
    Сообщения:
    60
    Симпатии:
    124
    Версия XF:
    1.1.2
    Текст остается выделенным при активной панели и его без затруднений можно копировать либо комбинациями ctrl+c и shift+ins, либо при помощи контекстного меню, которое открывается при клике правой кнопкой мыши. Панель подвижна и будет всегда перемещаться ниже клика мыши.
    02.jpg
     
    Palych нравится это.

Поделиться этой страницей