+4.25
Рейтинг
11.40
Сила

Антон

Отложенная отправка почты и регистрация.

// Модуль Notify
$config['module']['notify']['delayed']        = true;  // Указывает на необходимость использовать режим отложенной рассылки сообщений на email
$config['module']['notify']['insert_single']  = true;  // Если опция установлена в true, систему будет собирать записи заданий удаленной публикации, для вставки их в базу единым INSERT
$config['module']['notify']['per_process']    = 10;     // Количество отложенных заданий, обрабатываемых одним крон-процессом

Тип отправки почты mail. smtp метот не в какую не хочет работать чёрт знает почему. Использовал свой сервер почты. (С ним всё ок, скажу сразу). Добавить бы логирование отправленных почтовых сообщений, скажем так для отладки.
Однако, пока не вызвать скрипт /include/cron/notify.php письмо не будет доставлено.
Собственно я думаю письма подтверждения регистрации как в принципе и отправку писем с восстановлением пароля стоило бы отправлять наверно сразу.

Кстати, буду благодарен сообществу за помощь в написании хотя-бы тестового скрипта, который бы использовал функции отправки почты из движка. Думаю многим был бы он полезен и упростил бы жизнь. Спасибо.

Список хуков LiveStreet CMS 1.0.1

На днях написал черновик по списку хуков и так забыл о нем, пока не увидел новое видео от Максима и сразу вспомнил об этом тексте, решив под общий шумок вокруг хуков добавить и эту статью. Я видел разные топики, где спрашивали "есть ли список хуков?". Да, есть. Вот он.

Привожу список стандартных хуков для чистой официальной ЛС 1.0.1, большинство из них неявно прописаны в движке, поэтому попытка найти их вызовы в коде у вас не выйдет т.к. часть их них автоматически формируется ядром движка.
Из стандартной поставки ЛС хуки в сумме вызываются 486 раз, некоторые по нескольку раз. Это нормально. Здесь приведены 161 хук, которые доступны в ЛС 1.0.1, в порядке их вызова, начиная с самого первого, исключая дальнейшие повторения.

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

Множественный редирект

Здравствуйте уважаемые ЛС-овцы.

Вчера потребовалось мне сделать 301 редирект на чуть более чем 5тис.страниц ЛС-а (из одного ИД на другой). В моем случае это было избавление от дублей статей которые были созданы на заре переноса сайта на ЛС.

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

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

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

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

Сегодня подключили к CI серверу первый плагин покрытый автоматическими тестами!

Наличие автоматических тестов это важная составляющая качественного программного продукта. А мы ведь хотим использовать качественные плагины на своих LiveStreet сайтах?

Именно поэтому stfalcon.com занимается внедрением автоматических тестов в LiveStreet и плагины, а также подключением всего этого дела к бесплатной платформе для Continuous integration Travis CI.

И вот сегодня состоялось важное событие — загорелся первый зеленый билд статус для плагина sitemap!



Немного перефразируя Армстронга это:
Один маленький шажок для человека, но огромный скачок для LiveStreet сообщества



PS. Для самого LiveStreet такой статус загорелся ещё две недели назад, но тестами покрыта пока лишь малая часть функционала.

Оптимизация автоматической генерации мета тега keywords плагином "SEO"

Плагин «SEO» прекрасен в своей простоте, но результат выдаёт несколько прямолинейный. Этот вопрос уже как-то поднимал господин ETNO , но действительно интересного решения не предложил. К счастью, нет никакой магии в том, чтобы подправить нужные tpl-и и получить более интересный результат.

Чего хотелось?
  1. Всегда и везде исключить дублирование ключевых фраз.
  2. Добавить название блога в список ключевых фраз страницы топика и, собственно, самой страницы блога.
  3. Убрать запихивание стандартных ключевых фраз из конфигурации livestreet для страниц блога и топика, но всё же, кроме всего прочего, добавлять туда название сайта.
  4. Сформировать список ключевых слов для страниц «Блоги» из их названий.
  5. Ключевые фразы для списков топиков сформировать как стандартный список из конфигурации livestreet, расширенный названиями блогов, к которым относятся топики из списка.
  6. Ключевые фразы для страницы поиска по тегу сформировать как стандартный список из конфигурации livestreet, расширенный названием тега по которому искали и названиями блогов, к которым относятся найденные топики.
  7. Ключевые фразы для страницы поиска — стандартный список из конфигурации livestreet, расширенный фразой которую искали и названиями блогов, к которым относятся найденные топики или комментарии.

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

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

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

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

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

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

Система подсказок по интерфейсу

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

Весьма удобно было бы создать подобную систему для ливстрит. Зарегался пользователь, а ему вывелась подсказка вверху типа «Это ваше личное меню, отсюда можно перейти в профиль, сообщения и другие персональные разделы». И ссылки «следующая подсказка» и «закрыть навсегда».

Неопытные пользователи будут рады, что их «ведут», и будут быстрее вливаться в процесс даже не всегда оттого, что они поняли как это работает, а просто потому что хочется попробовать то, о чем рассказывается в подсказке. Типа «ну-ка что тут у вас...». Новички редко голосуют за посты, комменты, т.к. просто не уверены, что значит это голосование и не нажимают на кнопку.
Читать дальше →

Переопределение. Будет ли конфликт? Как определить не зная кода иного плагина.

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

Например, работаю через
protected $aInherits=array(
        // Переопределяю маппер 
        'mapper'  =>array('ModuleComment_MapperComment')
    );


Переопределяю один из стандартных методов маппера комментариев: например добавляю работу с дополнительными полями таблицы комментариев
К примеру, этот метод класса /classes/modules/comment/mapper/Comment.mapper.class.php

public function GetCommentsRatingByDate($sDate,$sTargetType,$iLimit,$aExcludeTarget=array(),$aExcludeParentTarget=array())


Как мне узнать, не был ли уже этот метод переопределен другим плагином? Что будет, если он уже был переопределен? И нужно ли мне сообщать другим плагинам, что я переопределяю этот метод? Ну что бы не было конфликтных ситуаций…

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

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

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

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