0.00
Рейтинг
0.00
Сила

Встречайте: Alto CMS – первый релиз форка LiveStreet'а

6 фото
Встроенная админпанель
image
Говорят, настоящий успех к мастеру приходит тогда, когда начинают делать копии его произведений.

Вот и дорос LiveStreet до того, что настала пора делать первый настоящий форк от него. И зовется этот форк – Alto CMS.

Вообще-то, если верить статистике GitHub'а, то ЛС форкнули уже 99 раз. Но Alto CMS – это первый форк, который вышел в свой первый официальный релиз, и который отныне начинает жить своей собственной жизнью. Сейчас мы постараемся дать ответы на вопросы, которые наверняка возникнут в первую очередь. И, пожалуй, самый первый вопрос…


Подробнее об Alto

Теперь все наши плагины совместимы с LS v1.0.*!

Хочу поделиться хорошей новостью — теперь все наши плагины совместимы с LS v1.0.* :))
Также плагины покрыты тестовыми сценариями и основной функционал должен работать без ошибок (тесты бегают на чистой сборке LiveStreet).
 
 

Плагин «LSGallery»

Плагин «LSGallery» предназначен для создания пользователем альбомов и загрузки в них фотографий. Поддерживает пакетную загрузку фотографий и различные настройки приватности для альбомов. Также позволяет отмечать друзей на фотографиях.

Плагин «Sitemap» (важен для SEO)

Предназначен для автоматической генерации карты сайта в виде файла sitemap.xml. Карта сайта включает в себя ссылки на блоги, топики и профили пользователей. Совместим с плагинами «LSGallery», «Page», «L10n» и другими.

Плагин «SEO»

Основное предназначение плагина это автоматическая генерация мета тегов keywords и description в зависимости от контента страницы. Это положительно влияет на индексацию сайта поисковыми системами и ранжирование их выдачи.

Плагин «OpenID Comments»

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

Плагин «Banneroid (баннерокрутилка)»

Плагин для удобного размещения и управлениями баннерами на LiveStreet сайтах. Добавление/редактирование/удаление баннеров. Возможность выбирать дату начала/окончания показов, место отображения и др. Полное описание функционала на странице плагина.

Плагин «Similar topics»

Выводит список похожих записей как блок в сайдбаре. Записи сортирует по количеству совпавших тегов и дате/рейтингу.
 

Плагин «L10n (для мультиязычности)»

Плагин для реализации мультиязычности на LiveStreet сайте. Возможность выбора языка интерфейса при регистрации пользователя и его последующая смена в настройках пользователя. Возможность создавать переводы для блогов и топиков. Полное описание функционала на странице плагина.

Плагин «Mailing»

Плагин для рассылок сообщений на LiveStreet сайтах с большим количеством пользователей. Есть возможность фильтра получателей по свойству «Пол» («мужчины», «женщины», «не указан») и по свойству «Язык» (интеграция с плагином «L10n»). Можно посмотреть список рассылок и статус хода рассылки. Полное описание функционала на странице плагина.

Плагин «LSDigest»

Плагин предназначен для рассылки дайджестов лучших записей за определенное время. Для работы плагина требуется плагин рассылок «Mailing». Совместим с плагином L10n (разные дайджесты в зависимости от языка указанного в профиле пользователя).

Плагин «Use watermark»

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

Плагин «Greeting (приветствие новым пользователям)»

Плагин предназначен для рассылки приветсвий новым пользователя в LiveStreet CMS. Например, в тексте сообщения можно благодарить пользователя за регистрацию и дать ему ссылки на страницу помощи или общих вопросов по работе с сайтом. Cовместим с плагином многоязычности l10n. Т.е. вы можете создавать разные шаблоны сообщений для разных языков.

Плагин «Пингатор (исправленный)»

Исправленный пингатор для оправки сообщений Яндексу и Google. Эта штука дает возможность поисковым системам практически моментально индексировать добавленный контент.
 

Плагин «Debug Toolbar»

Плагин «Debug Toolbar» предназначен для вывода технической информации о работе сайта на LiveStreet.
 
 
 

Просьба!

Идеи по улучшению и бегрепорты (сообщения о ошибках) пишите в трекерах плагинов (значек  на странице плагина).
Спасибо ;)

Настраиваем сервер для LiveStreet. Часть III. Некоторые настройки ядра, репозитории и базовые утилиты.

Предыдущие части:

Сначала мы сделаем некоторые настройки ядра, за этот совет благодарность уходит господину ewden .

Редактируем файл /etc/sysctl.conf:
vim /etc/sysctl.conf

Я привожу конфигурацию от ewden целиком:
# Допустим случись у нас какой-то косяк с системой или ядром.
# Может произойти паника ядра (Kernel Panic)
# На сий случай есть настройка, указывающая, что система должна будет перезагрузится в течении 10 сек в примере:
kernel.panic = 12
# включение проверки маршрута от источника. Может быть полезно против некоторых видов спуфинг-атак.
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

# След. опция разрешает/запрещает передачу так называемых syncookies вызывающему хосту
# в случае переполнения очереди SYN-пакетов для заданного сокета. Когда в
# систему поступает слишком много запросов на соединение, то очередь может
# переполниться и тогда запускается передача syncookies в ответ на каждый
# SYN-запрос. Эта переменная используется для предотвращения syn-flood атак. 
net.ipv4.tcp_syncookies=1

# Устанавливает параметры приёма icmp-сообщений о переодресации
# Которые используются для уведомления (обычно маршрутизаторов)
# О существовании лучшего маршрута передачи пакетов целевому хосту.
# Включение параметра может справоцировать атаку человек по середине (Man In The Middle) 
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Разрешает или запрещает нашему хосту передачу выще упомянутых сообщений переадресации.
net.ipv4.conf.all.send_redirects = 0

# Позволяет отправителю определить путь, по которому должен следовать пакет по сети.
# Может позволить посторонним произвести подмену адресов. 
net.ipv4.conf.all.accept_source_route = 0

# Игнорироваться ICMP сообщения, отправленные на
# широковещательный или групповой адрес. Вполне очевидно, почему полезно
# включить этот параметр  - защита от smurf атак.
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Контролирует процент свободной памяти, при которой начнется активный сброс страниц в раздел swap. 
vm.swappiness=10


Читать дальше →

Настраиваем сервер для LiveStreet. Часть II. Vim, файловая система, hostname.

Предыдущие части:

Итак, мы успешно зашли в консоль сервера. Первое что нужно сделать — перезагрузить его командой:
reboot

Замечание: Я буду стараться каждую отдельную команду оборачивать с блок как вот тут. Т.е. в этих инструкция — одна команад = один блок. Любая команда запускается на выполнение, набиранием оной в консоли и нажимаем клавиши ENTER после этого. Можно скопировать в буфер, сбросить в консоль правой кнопкой мыши и, опять же, ENTER.

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

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

Читать дальше →

[Open Source] Решение - «Realtime»


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

Вместо пиара
Вконтакте, одноклассники, фэйсбук, твиттер, гугл уже давно используют силу обновлений в реальном времени, создав своим пользователям комфортные условия для общения

Что это
Это инструмент для вас, вашего сайта, разработчиков, позволяющее создавать свои real-time дополнения для livestreet'a. Он состоит из node.js сервера и плагина для livestreet.

Сервер realtime берет на себя роль связующего звена между пользователем и livestreet'ом, который передает серверу данные при наступления запланированного события.

В базовую комплектацию входят:
  • Моментальные уведомления о событиях:
    — новом топике в блоге на который вы подписаны,
    — новом комментарии в вашем топике,
    — ответе на комментарий,
    — новом личном сообщении,
    — ответе на личное сообщение,
    — добавлении вас в друзья
  • Моментальная подгрузка комментариев и личных сообщений для авторизированных пользователей


Цели
Предоставить функционал перечисленный выше, создающий на вашем сайте ощущение вовлечения во все происходящие на сайте события, вплоть до новых комментариев к статьям и личной переписке. Помимо этого дать инструмент для разработчиков неравнодушных к real-time технологиям.

Читать дальше →

Как улучшить LiveStreet CMS для поисковых систем?

Ни для кого не секрет, что LiveStreet CMS не является seo friendly CMS, но таких CMS не так и много. По этому поводу я написал топик в своем блоге на своем сайте. Адресованный больше разработчикам LiveStreet CMS, чем простым вебмастерам. Хотя, и владельцам сайтов будет полезно почитать. Здесь же я вкратце даю советы по оптимизации сайта на LiveStreet CMS для лучшего ранжирования в поисковых системах. По личному опыту.

Узнать, как улучшить LiveStreet CMS для поисковых систем

Бесплатный плагин aceWidgetManager - наглядные примеры использования

В предыдущей статье я подробно расписал, какие опции используются для подключения и конфигурирования виджетов с помощью плагина aceWidgetManager. А теперь приведу конкретные примеры, как все это богатство можно использовать.
Читать дальше →

LiveStreet ScreenCast #1 - Введение

Представляю первый скринкаст для разработчиков по основам LiveStreet.
Первый выпуск содержит вводную часть по общей концепции фреймворка LS. Нацелен в первую очередь на начинающих разработчиков, которые только знакомятся с LS.

Это так сказать первый блин комом, строго не судите :) Принимаем вопросы и пожелания как по текущему скринкасты так и на следующие выпуски. Просмотр рекомендуется в HD качестве.

ММОзговед: история больших и малых открытий

Вся эта история началась весной 2012-го, после того, как полтора года ведения блога по ММО, привело меня к выводам, описанным подробно здесь и здесь. Но если совсем кратко — в MMO играет очень много людей всех возрастов и вкусов, а профессионального специализированного русскоязычного ресурса по этой теме как не было, так и нет. Соответственно, нет интересных материалов. Не считать же ими перепечатки пресс-релизов?

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

Я вас, впрочем, тоже томить не буду. Скажу лишь, что очень быстро для создания второй версии mmozg.net нашлись люди, пожелавшие вложить в него деньги и силы. Была также команда профессиональных разработчиков, готовая теоретически реализовать любой каприз. Дело за малым — нужно было описать техническую и функциональную часть нашей задумки. И, вы не поверите, мы придумали LiveStreet, тогда еще не подозревая о его существовании.

Читать дальше →

Архитектура LS:: Мапперы

Представляю первую статью цикла статей об архитектуре livestreet, я думаю будут и продолжения. Исходные коды примера, приведенные здесь доступны на github.

1. Что такое маппер
Ну-с начнем, и начнем с того, что определим, что такое маппер? Маппер, или конкретнее Data Mapper является одним из стандартных паттернов проектирования программных средств, определенный в LS как PHP-объект наследуемый от базового, для всех мапперов класса Mapper. Основным назначением маппера является отделение логики хранения данных от бизнес-логики самого приложения. Маппер содержит методы, реализующие операции CRUD (Create-Read-Update-Delete) над одной или несколькими таблицами по «просьбе» объекта. Маппер является интерфейсом между объектами и базой данных, средством, повышающим уровень абстракции в архитектуре приложения.

Читать дальше →