Плагин "Поздравления"
Плагин предназначен для поздравления пользователей с днями рождения или заранее заданными праздниками, которые можно самостоятельно задать в конфигурационном файле. Это могут быть как общегосударственные праздники, так и локальные праздники, актуальные для определенных сообществ
Плагин позволяет выводит следующие поздравления:
1. Залогиненому пользователю, у которого сегодня день рождения.
Данное поздравление является персональным и его видит только сам именниник
2. Пользователям, у которых сегодня ДР.
Плагин формирует список пользователей у которых сегодня ДР и показывает его всем пользователям (кроме самих именниников). Список формируется на основе параметра дружбы и рейтинга. Для каждого пользователя может быть сформирован уникальный список поздравлянтов.
3. Пользователи, у которых завтра ДР.
Плагин формирует список пользователей у которых завтра ДР и показывает его всем пользователям (кроме самих именниников). Список формируется на основе параметра дружбы и рейтинга. Для каждого пользователя может быть сформирован уникальный список поздравлянтов.
4. Всем пользователям с праздником, который указан в конфиге.
Для всех поздравлений можно задавать набор случайных поздравлений.
Тексты поздравлений задаются в файле classes/lib/congratulation._language_.php, где _language_. — текущий выбранный язык. По умолчанию с плагином идет classes/lib/congratulation.russian.php с некоторыми заданными поздравлениями.
Праздники указываются в стандартном конфигурационным файле config/config.php. В файле есть пример задания своего праздника.
Отдельно стоит сказать об алгоритме выбора пользователей, которые будут отображены в списке тех, кого поздравляем (для ДР). Список юбиляров сортируется по рейтингу, при этом если именниник является другом пользователя, то рейтинг для сортировки будет умножен на заданный коэффециент. Так же можно «отрезать» не друзей с рейтингом, ниже заданного.
Таким образом в список юбиляров попадают либо наиболее популярные пользователи сайта, либо друзья пользователя, который просматривает сайт в данный момент.
Шаблоны писем и их заголовки можно самостоятельно задавать в конфигурационном файле classes/lib/letters._language_.php (где _language_. — текущий выбранный язык). В файле содержится список заголовков и шаблонов для каждго пола, а так же секция с обшими поздравлениями common:
Для пользователей с неопределенным полом (other) — в основном конфиге плагина можно запретить или разрешить использование мужских поздравлений:
Шаблон письма для конктретного пользователя выбирается случайным образом из объединения множества шаблонов для пола и секции common.
Сами шаблоны писем должны распологать в дирректории plugins/congratulation/templates/skin/default/notify/_language_/ (где _language_. — текущий выбранный язык). В конфиге имя конфигурационного файла указывается относительно именно этой директории.
В шаблон передается объект oUser, который содержит поздравляемого пользователя.
Плагин позволяет фильтровать поздравляемых пользователей по минимальному рейтингу и по минимальному числу дней с момента регистрации:
Отправку писем осуществляет скрипт plugins/congratulation/cron/sendCongratulation.php. Его нужно прописать в cron на нужно время. Скрипт НЕ отслеживает кому поздравление было отправлено, а кому — нет. Поэтому запускать его нужно только ОДИН раз в сутки.
В момент отправки также вызывается хук send_congratulation с параметром oUser, который содержит поздравляемого пользователя. Это сделано для аккуратного самостоятельного расширения дейсвтвий по поздравлению пользователя.
Плагин позволяет выводит следующие поздравления:
1. Залогиненому пользователю, у которого сегодня день рождения.
Данное поздравление является персональным и его видит только сам именниник
2. Пользователям, у которых сегодня ДР.
Плагин формирует список пользователей у которых сегодня ДР и показывает его всем пользователям (кроме самих именниников). Список формируется на основе параметра дружбы и рейтинга. Для каждого пользователя может быть сформирован уникальный список поздравлянтов.
3. Пользователи, у которых завтра ДР.
Плагин формирует список пользователей у которых завтра ДР и показывает его всем пользователям (кроме самих именниников). Список формируется на основе параметра дружбы и рейтинга. Для каждого пользователя может быть сформирован уникальный список поздравлянтов.
4. Всем пользователям с праздником, который указан в конфиге.
Для всех поздравлений можно задавать набор случайных поздравлений.
Тексты поздравлений задаются в файле classes/lib/congratulation._language_.php, где _language_. — текущий выбранный язык. По умолчанию с плагином идет classes/lib/congratulation.russian.php с некоторыми заданными поздравлениями.
Праздники указываются в стандартном конфигурационным файле config/config.php. В файле есть пример задания своего праздника.
Отдельно стоит сказать об алгоритме выбора пользователей, которые будут отображены в списке тех, кого поздравляем (для ДР). Список юбиляров сортируется по рейтингу, при этом если именниник является другом пользователя, то рейтинг для сортировки будет умножен на заданный коэффециент. Так же можно «отрезать» не друзей с рейтингом, ниже заданного.
Таким образом в список юбиляров попадают либо наиболее популярные пользователи сайта, либо друзья пользователя, который просматривает сайт в данный момент.
Обновление 1.1.0 — «Теперь и с письмами»
В плагин добавлена возможность отправлять письма именниникам.Шаблоны писем и их заголовки можно самостоятельно задавать в конфигурационном файле classes/lib/letters._language_.php (где _language_. — текущий выбранный язык). В файле содержится список заголовков и шаблонов для каждго пола, а так же секция с обшими поздравлениями common:
'common' => array( 'subjects' => array( 'С днем рождения!', 'Поздравляем от имени сайта!' ), 'templates' => array( 'birthday_common.tpl' ) )
Для пользователей с неопределенным полом (other) — в основном конфиге плагина можно запретить или разрешить использование мужских поздравлений:
$config['birthday_letter_other_as_man'] = false;
Шаблон письма для конктретного пользователя выбирается случайным образом из объединения множества шаблонов для пола и секции common.
Сами шаблоны писем должны распологать в дирректории plugins/congratulation/templates/skin/default/notify/_language_/ (где _language_. — текущий выбранный язык). В конфиге имя конфигурационного файла указывается относительно именно этой директории.
В шаблон передается объект oUser, который содержит поздравляемого пользователя.
Плагин позволяет фильтровать поздравляемых пользователей по минимальному рейтингу и по минимальному числу дней с момента регистрации:
$config['birthday_filters'] = array( 'min_rating' => 0, 'min_days_registered' => 0 );
Отправку писем осуществляет скрипт plugins/congratulation/cron/sendCongratulation.php. Его нужно прописать в cron на нужно время. Скрипт НЕ отслеживает кому поздравление было отправлено, а кому — нет. Поэтому запускать его нужно только ОДИН раз в сутки.
В момент отправки также вызывается хук send_congratulation с параметром oUser, который содержит поздравляемого пользователя. Это сделано для аккуратного самостоятельного расширения дейсвтвий по поздравлению пользователя.
63 комментария
Ваш комментарий отправил в избранное — в ближайщее время предложу какое-то решение.
Думаю, этот случай послужит уроком для других разработчиков.
Если хотите я вам тоже классную идею плагина подарю :-)
А под уроком вы, наверное, подразумевали отрицательные отзывы в каталоге?
Нет, я хотел предупредить остальных, чтобы они не рассказывали идеи публично.
Мотивы я не скрываю, и я могу всем честно сказать, что поставил 1 звезду только для понижения рейтинга.
Плагин сделать хотели, но не успели.
Мотив оценки не скрываете, но в каталоге этого не написали (но сказать можете, без сомнения!).
Может стоит перестать мочь и хотеть, а начать делать?
И главное, чем вам эта ситуация не нравится-то? Вы планировали плагин продавать? Не думаю. Про сложности регистрации в каталоге вы где-то там писали.
Получается, что кто-то взял и выложил то, на что вы собирались тратить силы. Так потратьте их на что-то еще, полезное сообществу.
Делаю, спасибо. У меня больше расширений, чем у вас, а дабы ваша ворованная поделка не висела в разделе новых, совсем не лишним будет мне написать новые плагины.
Ну так вы тоже плагин не продаете, зачем силы потратили? Потратили бы на что-то еще полезное для сообщества, а не на воровство идей.
Вы смешной. В коммментариях к вашему топика проскальзывает идея плагина, который отправляет поздравления на почту. На следующий день я выкладываю плагин, с калькой функционала ВКонтакте — именно там, как и у меня, поздравляения и напоминания о предстоящих ДР/праздниках выводятся в сайдбаре. Но я все равно украл идею.
Первым комментарием к этому топику идет вопрос про отправку писем, которые есть по приведенной вами ссылке, т.е. в идеи, но которых нет в представленном плагине. И вы говорите и говорите про воровство идей, вместо того, что бы ответить первому комментатору, что вы уже вот-вот предложите такой плагин на модерацию.
С калькой функционала, предложенного мне.
Ну так смотрите какой я молодец! И плагин в сообщество принес и вас замотивировал что-то написать и выложить.
А во-вторых, так получается, что обычно я пишу какой-то функционал для себя, а потом решаю поделится с сообществом. По предложенной выше идеи (!) у меня наработок нет.
Возможно это уже из серии суеверий, но чистка кеша решает многое.
Если нужно показывать где-то еще, то нужно вписать нужные экшены
Нет, такое не планировал. Но можно создать праздник «pre_woman_day» и датой 07.03, например. Ну и назначить ему соответсвующие картинки и текста поздравлений.
Думаю вообще не стоит реагировать на этого «гения», он же просто тупо троллит…
Честно говоря, привык пытаться хотя бы 2-3 раза донести информацию до человека. Если совсем туго, то можно прекращать попытки. Бонусом такого подхода является то, что потом по комментариям сразу видно, кто адекватный, а кто не очень.
Не глядя вижу два варианта:
1. У вас на сайте нет именниников на сегодня/завтра.
2. У шаблона Vintage блок в сайдбаре имеет другое имя.
Нет, вы меня неверно поняли. Плагин отображаеи поздравления либо, если среди пользователей есть люди, у которых день рождения сегодня или завтра. Либо, если в конфигурационном файле указан, что сегодня некий праздник (из каталога в конфиг добавлен только Женский День 8-ое марта).
В противном случае в сайдбар ничего не выводится.
Т.е.
1. Дни рождения на сегодня пользователь может увидеть, только если он не именниник
2. Дни рождения на завтра пользователь может увидеть, только если он не именниник и нет дней рождения на сегодня
3. Поздравления с праздником из конфига пользователь может увидеть, только если он не именниник, нет дней рождения на сегодния и нет дней рождения на завтра.
как быть? Помогите пожалуйста
Разрешите для всех файлов из J:\home\localhost\www\mysite\plugins\congratulation\ чтение для любого пользователя и должно заработать.