- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Хотелось бы еще иметь хороший функционал новостей с возможностью добавлять блок новостей в нужную мне часть страницы. При создании и редактировании новости должны быть два поля - одно для полного текста, другое для анонса.
Хотел бы уже перевести на Flexo CMS один из своих сайтов и в связи с этим есть еще вопрос о том, когда будет работать отложенная публикация и когда все же будет реализован плагин для «кастомных» URL? Не хотелось бы адрес страницы слишком сильно растягивать и иметь в нем много слешей.
Для вывода новостей можно реализовать небольшой сниппет, назвать его, например, news_block.
Код сниппета news_block:
UPD. Немножко подправил сниппет — исправил параметры. По умолчанию, если не указан параметр limit, будут выводиться все новости; и если не указан параметр page — будет считаться, что текущая страница на которой вставлен сниппет и есть раздел «Новости».
Теперь о том, как должна быть организована структура страниц для вывода новостей.
Допустим, у вас есть раздел с названием «Новости», и полем slug «новости» соответственно (Flexo CMS по умолчанию поддерживает кириллические адреса), конечно вы можете использовать slug «news».
Допустим, у каждой страницы из раздела «Новости» есть части: body и short.
Допустим, в корневой странице имеется часть sidebar, которая используется в шаблоне и отображает сайдбар, подключается <?php echo $this->content('sidebar', true); ?>
Открываем корневую страницу, добавляем следующий код в часть sidebar:
UPD. Небольшое замечание по поводу вставки данного кода в часть sidebar. Необходимо сначала отключить визуальный редактор у части sidebar. «Шестеренка» напротив sidebar → Фильтр → Установить «– отсутствует–».
Еще стоит обратить внимание на параметр $this->find('новости'). Если вы при создании раздела «Новости» используете уникальный slug, например, «news», то необходимо заменить 'новости' на 'news' → $this->find('news').
Все, теперь, если все сделано правильно, на страницах должны появиться новости.
Сниппет должен сгенерировать следующий код:
Параметры сниппета news_block:
Теперь приятная новость. Сниппет не будет выводить те новости, у которых статус «Ожидает». Это видно из параметров выборки страниц-потомков:
Кстати, достаточно удобно использовать при выборке потомков небольшие SQL вставки в параметрах. Зная структуру таблицы page, можно манипулировать выводом данных из этой таблицы.
Можно немножко расширить сниппет и использовать плагин Page images для вывода новостей с изображениями. Если необходима такая функциональность — опишу подробней.
UPD. По поводу «катстомных» адресов для страниц — в ближайшее время сделаю плагин. В пределах недели.
С блоком новостей все отлично получилось. Спасибо.
Теперь бы еще поиск по сайту сделать.
С блоком новостей все отлично получилось. Спасибо.
Теперь бы еще поиск по сайту сделать.
Пока нет специального плагина для поиска по сайту. Можно использовать пользовательский поиск Google.
Наработки по плагину поиска еще остались от Frog CMS, поэтому старый плагин будет адаптирован под Flexo. Поэтому советую набраться терпения. ;)
Если поиск необходим просто здесь и сейчас, то можно воспользоваться сниппетом, который называю, «ленивый поиск», код сниппета:
Как использовать этот сниппет:
Примечание: На странице поиска перед вставкой кода для пункта (2) необходимо сначала выключить WYSIWYG-редактор Tinymce (шестеренка напротив части body).
Недостатки этого сниппета:
Код для оформления формы поиска с других страниц сайта:
Если страница «Поиск» имеет slug «search», то нам необходим следующий код:
При работе с новостями обнаружились некоторые недостатки.
1. В блоке новостей дата и время добавления новости отображается правильно - 07/31/11 22:20:34 PM, а вот на странице новостей, на которой выводятся анонсы новостей показывает - 07/31/11 00:00:00 AM. И так для всех новостей. Время добавления - 00:00:00 AM.
2. В снипете анонсов по умолчанию стоит $limit = isset($limit) ? $limit: null; В этом случае на странице выводятся анонсы всех новостей. Если прописать, например - $limit = isset($limit) ? $limit: 8;, то будет выводится 8 анонсов. В обоих случаях создается только одна страница новостей. Оба варианта не годятся. Нужно, чтобы CMS при достижении лиммита создавала новые страницы для вывода новостей. Для $limit: null; тоже нужно предусмотреть значение по умолчанию, например 10.
3. Оформление анонсов на странице новостей берется из дизайна блоков новостей. Нужно, чтобы на анонсов можно было внешний вид настраивать отдельно.
P.S. Сейчас заметил, что дата и время добавления у всех новостей в блоке новостей одно и то же - 07/31/11 22:20:34 PM, хотя добавлял сегодня.
При работе с новостями обнаружились некоторые недостатки.
1. В блоке новостей дата и время добавления новости отображается правильно - 07/31/11 22:20:34 PM, а вот на странице новостей, на которой выводятся анонсы новостей показывает - 07/31/11 00:00:00 AM. И так для всех новостей. Время добавления - 00:00:00 AM.
2. В снипете анонсов по умолчанию стоит $limit = isset($limit) ? $limit: null; В этом случае на странице выводятся анонсы всех новостей. Если прописать, например - $limit = isset($limit) ? $limit: 8;, то будет выводится 8 анонсов. В обоих случаях создается только одна страница новостей. Оба варианта не годятся. Нужно, чтобы CMS при достижении лиммита создавала новые страницы для вывода новостей. Для $limit: null; тоже нужно предусмотреть значение по умолчанию, например 10.
3. Оформление анонсов на странице новостей берется из дизайна блоков новостей. Нужно, чтобы на анонсов можно было внешний вид настраивать отдельно.
P.S. Сейчас заметил, что дата и время добавления у всех новостей в блоке новостей одно и то же - 07/31/11 22:20:34 PM, хотя добавлял сегодня.
> 1.
Я подозреваю, что новости у вас выводятся подобным сниппетом (код сниппета заведомо не верный):
В данном случае выводится дата страницы на которой располагается сниппет <?php echo $this->date(); ?>, вам же необходимо выводить дату новости, то есть павильно писать <?php echo $page->date(); ?>.
Правильный код сниппета:
> 2.
Да, это недостаток сниппета. Чуть позже приведу более универсальный пример.
Запустил сайт http://flexo.up.dn.ua/ где расположена документация, расширения. По мере возможностей будет пополнятся новыми разделами.
Если есть вопросы или пожелания, письма направляйте на flexo@up.dn.ua
@melkozaur, система распространяется по лицензии GPL v3. Flexo CMS можно считать бесплатной для разработки коммерческих проектов на базе этой системы.
Она же ведь не совсем свободная. И подразумевает под собой открытость исходников всего того, что было на ней сделано. Т.е. если вы скажем реализовали какое-то интересное расширение и не хотели им делится то, вам придется это сделать.
P.S. Возможно я ошибаюсь т.к. я все-таки не спец по лицензиям.
Она же ведь не совсем свободная. И подразумевает под собой открытость исходников всего того, что было на ней сделано. Т.е. если вы скажем реализовали какое-то интересное расширение и не хотели им делится то, вам придется это сделать.
P.S. Возможно я ошибаюсь т.к. я все-таки не спец по лицензиям.
Компоненты или плагины могут быть лицензированы под другими лицензиями, в том числе и коммерческими, т.к. авторы системы не разрабатывали эти плагины так ведь? Или я ошибаюсь? 🙄
Кстати большое спасибо всем, кто поддерживает, хоть даже виртуальными плюсами! :)
Компоненты или плагины могут быть лицензированы под другими лицензиями, в том числе и коммерческими, т.к. авторы системы не разрабатывали эти плагины так ведь? Или я ошибаюсь? 🙄
По моему ошибаетесь. Лицензия GPL запрещает использование других лицензий. Т.е. все что связано с вашей CMS должно быть под GPL, а это подразумевает открытость кода. А вот BSD и MIT уже идут полностью свободными.
По моему ошибаетесь. Лицензия GPL запрещает использование других лицензий. Т.е. все что связано с вашей CMS должно быть под GPL, а это подразумевает открытость кода. А вот BSD и MIT уже идут полностью свободными.
Спасибо, буду заниматься этим вопросом подробней.
UPD. Вот пока нашел некоторую информацию по теме:
Пока говориться, что разрабатывать сторонние платные модули можно, но нужно открывать исходники модулей.
NVIDIA обошла GPL в драйверах для Линукса, назвав свой код «библиотекой» и написав открытую прослойку для этой «библиотеки». :) Забавно…
принять решение: пользоваться или нет.
Никогда не понимал, зачем привязываться к CMS, у которой как минимум нет документации, и как максимум нет комьюнити, привязана к единственному разработчику, да еще и находится в бета-версии.
Даже если CMS очень и очень хорошая.