avatar
+2.22
5.389
Если это так важно сделайте чтобы выводились. Или чтобы вкладка «топики» была активной, а не «комментарии».
Данный сайт кстати хороший пример того как не надо делать.
Кому не нужно? Вам или всем остальным пользователям?
Никому не нужно.
Думаю мало кто пользуется вкладкой «Публикации» в прямом эфире, поэтому лента активности на главной очень полезна — сразу видно кто и что написал за последнее время
Может вам вместо главной один виджет оставить? Насчет пользуются или нет — фантазировать смысла нет, есть аналитика.
Ну так статьи и комментарии там и так по умолчанию есть.
Да не нужно это. Пользователям интересен контент, а не кто раз в пятилетку что-то не стене напишет. Ну а если они станут вместо топиков писать на стенах — ничего хорошего точно не будет. 4 вкладки — ахтунг.
Ок, изучение исходного кода помогло. Вопрос снят. Другой вопрос — не хотите ли добавить защиту от роботов?
Не могу настроить в конфиге вторую форму. Куда ее вписывать?
Магазин говорите...
https://blognot.co/12854
Ну да. Только в конце $ добавить где я написал.
Не-не! я про свой коммент. У вас в целом все правильно, но слишком олдскульно))
В конце '$' пропустил перед iGetCountRead.
Сделайте наконец время редактирования > 5 мин.
Ну вы, блин, даете.

{$iGetCountRead=$oTopic->getCountRead()}
{if $iGetCountRead >= 1000}
    {$iGetCountRead = $iGetCountRead/1000}
    {$iGetCountRead|round:1}k
{else}
    {iGetCountRead}
{/if}
С сессией есть такая проблема что ее придется хранить ВЕЧНО)) Иначе в какой-то момент она сбросится на сервере и пользователь сможет проголосовать заново. По умолчанию в дебиане согласно php.ini вроде 20 минут хранится сессия.
но при таком раскладе, любой пользователь сможет накрутить себе рейтинг, а это не есть хорошо. Надо варианты что бы ограничивать пользователя, пока в голову приходит только вариант по IP.
Хорошая мысля приходит опосля.

На самом деле невозможно будет никак ограничить накрутки.
1. Во-первых из под 1 IP может выходить много пользователей (крупные провайдеры используют NAT, opera mini/opera turbo mode, прокси сервера google для опции сжатия трафика в мобильном хроме и т.д.).
2. Можно ограничить по сесиии, но сессию легко сбросить, удалив куки сайта.
3. В конце концов если все-таки ограничить по IP, никто не мешает использовать прокси, анонимайзеры, и т.д.

Обычно наоборот не то что разрешать, надо и зарегистрированных всячески ограничивать в голосовании.
Да в том и дело что даже на лс не много. Да есть косметиста, wallpappers.ru, который уже благополучно умер и ... блин, что-то больше не вспоминается =) но вообще было еще 2-3 проекта. Кстати кто знает что за шаблон на ixbt.com/blogs?
Есть сущность «тип контента» из нее можно получить все id доп полей, которые ты сконфигурил в движке для данного типа топика. А определить заполнены эти поля, добавлены ли файлы, фотосет и т.д. можно только прямым перебором с проверкой существования ненулевого значения. Это очевидно. И так сделано в шаблонах. В движке нет сущности «если хотя бы одно поле заполнено». Это твоя собственная нужная лично тебе логика. И если уж на то пошло тег «кат» не имеет отношения к этим доп сущностям никакого.

Выше я все что нужно достаточно подробно объяснил, причем не один раз.
ведь ни тэга кут, ни фотосета не бывает тут «разных»
Вообще-то а) не совсем так б) читаем еще раз что ты написал

С тэгом кут, фотосетом и голосовалкой вроде понятно, а вот как быть с прикрепленными файлами и дополнительными полями?
Поле типа «файл» это вполне конкретное доп. поле. Их может быть много.
Упомянутые «Дополнительные поля» — это именно что дополнительные поля, которых может быть сколько угодно почти каких угодно.

Так что какой вопрос такой ответ.

А насчет того что тебе нужно другая логика, а именно проверить наличие любого из полей, как я уже сказал это делается перебором всех полей, получаемых через объект ContentType, посмотри шаблоны, в частности вывод доп. полей и скопируй оттуда, ибо эта логика уже реализована.
Важно что они есть любые это другая задача. Каков вопрос таков ответ. Хочешь проверить что добавлен файл — проверяй по id поля. Можно сделать перебор по массиву, через $oContentType, в шаблонах можно найти пример.
Соответственно
$iFileFieldId, и
$iAnotherFieldId
— id номера полей
Проблемы твоей есть решение

1. Файл
{if $oFile=$oTopic->getFieldFile($iFileFieldId)}
    Если есть файл.
{/if}


2. Поле
{if $oAnotherField = $oTopic->getField($iAnotherFieldId)}
     {$sAnother = $oAnotherField->getValue()}
     {if $sAnother == "что-то определенное"}
         Можно еще значение проверить.
     {/if}
{/if}
И никаких тебе SQL-запросов и прочей рутины!
На очереди прослойка которая будет строиться на лозунге «И никакого кривого ActiveRecord и прочей ...».
А если серьезно то ORM который реализован в альто это полный звиздец, все равно, неизбежно, приходится разбираться и в SQL, и решать проблемы с кешированием, которого там нет, а то которое есть (типа tmp, т.е. на время выполнения запроса) умудряется устанавливать кеш в конце выполнения запроса, когда он уже не нужен.