Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Следить
Главная
21:46
20 ноя
#
?
pikasso написал:

Вопрос к разработчику или к знающим? как сделать в магазине Гостевую книгу - или может мозможно просто к статической странице прикрутить коментарии - и на базе этого сделать гостевую!? а на других статических страницах ИФАМИ закрыть коменты!? но всеже как сделать или прикрутить коменты на статическую страницу?

23:13
20 ноя
#
написал:

Идея дополнить специальные (статические) страницы элементами комментирования очень хорошая. В свое время она не получила развитие лишь потому, что было не очевидно, какую ощутимую пользу из этого мог бы извлечь магазин, тем более когда новости и статьи (то есть публикации любого типа):

  • уже снабжены всеми элементами комментирования, в том числе модерацией в админпанели и произвольным выставлением разрешения / запрета обсуждать ту или иную публикацию;

  • отдельной публикации может быть назначен особый (произвольный) url, например http://сайт/guestbook.html, если по заданию необходимо создать иллюзию статической страницы;

  • любая публикация, наряду со статической страницей, может быть прикреплена в любое меню.


Эти три пункта позволяют замаскировать публикацию под статическую страницу. Просто в то время явственно не ощущалась такая мелочь, что когда желаем сделать полную маскировку публикации, то есть чтобы она в мыслях пользователя не ассоциировалась вообще с таким типом как новость / статья, то как все же быть, если даже хорошо замаскированная под самостоятельную страницу, она все равно появится в списке на странице новостей / статей?

Однако почти все минусы можно устранить на стороне шаблона клиентской стороны сайта. Предположим, мы хотим создать комментируемую статью Книга пожеланий, но просто подать ее под видом статической страницы. Так же предположим, хотим видеть ее ссылкой, например Гостевая в верхнем меню.

Здесь все ясно: создаем новую статью, в поле Заголовок пишем Гостевая, в поле Meta Title пишем Книга пожеланий (ниже поясню зачем), устанавливаем флажок Особый и в поле адреса пишем свой особый url, например guestbook.html, далее пишем в поле Полный текст свое воззвание "С интересом выслушаем Ваши пожелания ... трам-пам-пам ... ля-ля-ля", затем в поле Меню выбираем желаемое, куда хотим прикрепить эту статью, и разрешаем комментирование установкой флажка Обсуждают. Сохраняем.

Кстати говоря, рекомендуется для данной статьи снять флажок В анонсах, установить флажок Не для RSS и флажок Не экспорт, чтобы статья не была видна нигде, кроме как на собственной странице и в списке статей (откуда скроем ее позже).

Теперь пояснение. В специальных (статических) страницах, кроме поля Заголовок, существует поле Название в меню, где как правило пишут краткое название ссылки на страницу из меню. В статьях, новостях и товарах такого поля нет, поэтому когда они прикрепляются в меню, то в качестве пункта меню будет выведено содержимое поля Заголовок. А это может привести к тому, что элемент меню станет слишком длинным. Поэтому мы сейчас используем поле Meta Title как реальное название страницы, а поле Заголовок как краткое название для меню.

Продолжим. Надо скрыть статью со страницы списка статей. За это отвечает файл articles.tpl шаблона, в его цикл перебора статей просто добавим условие "игнорировать публикацию с названием (заголовком) Гостевая". Ниже пример кода, синим помечены строки добавленного условия:

    ...
    ...

    {* перебираем статьи *}
    {foreach $all_articles as $r}

        ...
        ...

        {if $r->header != 'Гостевая'}


            {* выводим мини карточку статьи *}
            ...
            ...


        {/if}

        ...
        ...

    {/foreach}

    ...
    ...


Неустранимый, хоть и мало заметный минус вот в чем: дотошный пользователь может обнаружить, что список статей выводится в несколько страниц, скажем по 20 штук на каждой, и только на одной из них почему-то выведено 19 штук (одна ведь скрыта изнутри шаблона по условию).

Теперь правим в шаблоне файл article.tpl, который отвечает за внешний вид страницы статьи. Если статью строго маскируют под статическую страницу, то вероятно нам потребуется согласно тому же самому условию всего лишь изменить хлебные крошки (скажем вместо Главная -> Статьи -> Название получить просто Главная -> Название), поменять заголовок страницы (помните о поле Meta Title, где мы сохранили реальное название страницы?) и сменить заголовки блока комментариев и формы (скажем Написать пожелание вместо типичного для статей Написать комментарий).

Пример кода. В первой строке запоминаем в удобную нам переменную результат условия - это воображаемая статическая страница или обычная статья. А дальше по телу файла пользуемся результатом, чтобы в частях оператора if ... else ... указать, что выводить для статической страницы и что для обычной статьи.

    {$is_static = $article->header == 'Гостевая'}

    ...
    ...

    {if $is_static}


        {* выводим хлебные крошки как Главная -> Название *}
        ...
        ...

        {* выводим заголовок *}
        {$article->meta_title}


    {else}


        {* выводим хлебные крошки как обычно *}
        ...
        ...

        {* выводим заголовок как обычно *}
        ...
        ...


    {/if}

    ...
    ...
    ...
    ...
    ...
    ...

    {if $is_static}


        Написать пожелание


    {else}


        Написать комментарий


    {/if}

    ...
    ...


Полагаю, суть Вам ясна. Пользователь на самом деле ведь пишет комментарий к статье, но для него эта страница вообще не ассоциируется со статьями и выглядит так, словно на сайте работает какой-то модуль "Книга пожеланий".

14:53
23 ноя
#
?
pikasso написал:

Спасибо - буду пробовать делать!

01:12
04 янв
#
?
написал:

а как сделать чтобы комментарии сортировались по дате публикации?

т.е. чтобы последний по дате комментарий был первым?

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.