Исправляем ошибки с комментариями

Автор: Антон Матвейчук


В LinkorCMS версии 1.4.1-3, на которой сейчас работают мои сайты, у меня возникла проблема с комментариями: при добавлении комментария на сайте стала появляться страница с кодом ошибки; невозможно оставить комментарий как гость; появление ошибки после добавления ответного комментария.


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


osh_komm_1


Итак, поехали! Сначала на хостинге в файле /modules/articles/index.php находим (с помощью поискового окошка, вызываемого комбинацией клавиш CTRL и F) строчку:

 

$posts->PostFormAction = "index.php?name=articles&op=addpost&art=$id&cat=$cat"; // Добавление поста (сохранение)


и исправляем на:

 

$posts->PostFormAction = "index.php?name=articles&op=addpost&art=$id&cat=$cat&page=$page"; // Добавление поста (сохранение)


osh_komm_2


Далее. У меня на сайте установлен шаблон Bootstrap, в нём при комментировании возникла проблема с кодировкой всплывающего окошка. Исправляем этот косяк.


osh_komm_3


Как мне написали на форуме, «Перекодируйте functions.js в папке js шаблона Boostrap в UTF-8. В других темах этот файл напрямую вставляется в исходник документа, а в этой теме — просто подключается файл. Вот и едет кодировка».


osh_komm_4


Так и поступим. Скачиваем на компьютер файл /templates/bootstrap/java/functions.js, открываем его в текстовом редакторе, например, в Notepad++, кодируем в UTF-8, сохраняем и заливаем (с помощью FTP-клиента, например, FileZilla) на сайт вместо прежнего.


osh_komm_5


Теперь текст в окошке отображается правильно.


osh_komm_6


Далее. Теперь в том же шаблоне Bootstrap открываем на хостинге файл /templates/bootstrap/comment_form.html и заменяем весь код на этот:

<h5><a href="#" onmousedown="post_reply('replyto_0', event);" onclick="$('#post_text').focus(); return false;">{form.form_title}</a></h5>
<div id="replyto_0" style="{form:add(display: none;)}">
        <div id="postform" class="post-form">
                <form name="postform" action="{form.form_action}" method="post" {form:add_guest}onsubmit="return (CheckFormComment(this))"{/form:add_guest}>
                        <div class="edit-area">
                                <script>BBCodeToolBar('post_text');</script>
                                <textarea name="post_message" id="post_text" placeholder="Введите текст комментария" rows="2" style="width: 100%;" required>{form.post_message}</textarea>
                                {form:is_smilies}
                                <div class="smilies">
                                        {smilies}<a href="#" title="{smile.desc}" onclick="smilies('post_text','{smile.code}'); return false;"><img alt="{smile.code}" src="{smile.file}"></a>{/smilies}
                                </div>
                                {/form:is_smilies}
                        </div>
 
                        {form:add_guest}
                        <div class="clearfix">
                                <div style="float: left;">
                                        <label for="inputUserName">{page.lang_posts_username} *</label>
                                        <input type="text" name="user_name" value="" maxlength="50" id="inputUserName" required>
                                        <label for="inputUserEmail">{page.lang_posts_useremail} *</label>
                                        <input type="text" name="user_email" value="" maxlength="250" id="inputUserEmail" required>
                                </div>
                                <div style="float: left; margin-left: 15px;">
                                        <label for="inputUserHideEmail">{page.lang_posts_hideemail}</label>
                                        <div class="check-hideemail">
                                                <input type="checkbox" name="user_hideemail" value="1" id="inputUserHideEmail" checked>
                                        </div>
                                        <label for="inputUserHomepage">{page.lang_posts_userhomepage}</label>
                                        <input type="text" name="user_homepage" value="" maxlength="250" id="inputUserHomepage">
                                </div>
                        </div>
                        {/form:add_guest}
 
                        {form:show_kaptcha}
                        <div class="clearfix">
                                <div style="float: left;">
                                        <label for="inputKeyStr">Введите код с картинки</label>
                                        <input type="text" name="keystr" value="" id="inputKeyStr" required>
                                </div>
                                <div style="float: left; margin-left: 15px;">
                                        <a href="#" class="captcha well well-small" onclick="document.getElementById('codeimage').src = '{form.kaptcha_url}&amp;time=' + Date(); return false;"><img src="{form.kaptcha_url}" height="{form.kaptcha_height}" width="{form.kaptcha_width}" id="codeimage"></a>
                                </div>
                        </div>
                        {/form:show_kaptcha}
 
                        {form:edit}
                        <input type="button" value="{page.lang_posts_cancel}" title="{page.lang_posts_canceltitle}" class="btn" onclick="history.go(-1);">
                        {/form:edit}
                        <input type="submit" value="{page.lang_posts_submit}" title="{page.lang_posts_submittitle}" class="btn btn-primary">
                        <input type="hidden" name="parent_id" id="postform_parent_id" value="replyto_0">
                </form>
        </div>
</div>

Теперь проблема и с комментариями от гостей, и с окошками решена. Осталось решить последнюю проблему с появлением ошибки при ответном комментарии.


osh_komm_7


Для этого изменяем на хостинге в файле base/inc/system/comments.php строчки 126-129 на:

 

$back_url = GetSiteUrl().Ufu(
$BackUrl.($sp ? "&$PageParam=".$_GET[$PageParam] : ''),
$BackUrlUfu.($sp ? $PageParamUfu.'{'.$PageParam.'}/' : '').$BackUrlUfuSuffix
);


Или просто добавляем слеш после {'.$PageParam.'}


osh_komm_8


Удаляем config/system_build.php.cache.


После всех этих проделанных операций комментирование на сайте должно работать идеально и без глюков.

 

 

В предыдущей статье: Установка фавиконки.


В следующей статье: Постраничная навигация.

 

 


Вы можете отблагодарить меня за эту статью, положив денюжку на Яндекс.Деньги — 41001946245208; Webmoney — RUB - R228675470677, USD - Z403380463613, EUR - E114430860179; моб.тел. 8-985-301-51-80 (МТС).


Также я буду благодарен вам, если вы зарегистрируетесь в хостинге по ссылкам в моей статье — вам ничего не убудет, а я получу хоть какое, но вознаграждение ;-)

Опубликована: 30.01.2016
Просмотров 539



Комментарии

Гости не могут добавлять комментарии, войдите или зарегистрируйтесь.