Заказать сайт недорого. Создание сайта на базе системы управления контентом. Индивидуальный подход при создании сайта. Современный и красивый дизайн сайта. Удобная навигация на сайте.

palexa.pp.ua@gmail.com

(+380) 66 531 77 01 ; 67 301 39 26

Скрипт день рождения на сайте или скрипт событий из списка.

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

Конечно, можно поискать какой то модуль, плагин или компонент, но так как наш сайт сделан на уже устаревшей CMS Joomla 1.5, которая не поддерживается, я решил пойти другим путём.

Для начала сообщу, что нам потребуется доступ к планировщику заданий cron и разрешение на исполнение скриптов bash. У моего хостера это вполне доступно. Далее всё просто. Создать файл список всех сотрудников где указана дата рождения. Пусть это будет файл dr-all.txt (кодировка UTF-8) в директории Вашего сайта с содержанием такого формата:

11.06.1956 Волков П.О.
05.04.1968 Южанов В. П.
05.06.1971 Филимонов К. А.
07.05.1970 Иванов І.П.
12.06.1956 Кировский В.П.

Создать файл dr.sh с правами 755

# Поиск строк с сегодняшней датой и записать в файл
grep $(date +"%d.%m") /var/www/html/mysite/cgi-bin/dr-all.txt > /var/www/html/mysite/cgi-bin/dr0.txt
# Отобразить строки начиная с 12 символа и записать в файл
cut -c 12- /var/www/html/mysite/cgi-bin/dr0.txt > /var/www/html/mysite/cgi-bin/dr1.txt
# Добавить, до и после каждой строки то что Вам надо и записать в файл
awk '{print "добавить_до_строки"$0"добавить_после_строки"}' /var/www/html/mysite/cgi-bin/dr1.txt > /var/www/html/mysite/cgi-bin/dr-today.txt
# Удалить временные файлы
rm -rf /var/www/html/mysite/cgi-bin/dr0.txt
rm -rf /var/www/html/mysite/cgi-bin/dr1.txt
#
# Поиск строк с завтрашней датой и записать в файл
grep $(date --date='tomorrow' +"%d.%m") /var/www/html/mysite/cgi-bin/dr-all.txt > /var/www/html/mysite/cgi-bin/dr0.txt 
cut -c 12- /var/www/html/mysite/cgi-bin/dr0.txt > /var/www/html/mysite/cgi-bin/dr1.txt 
awk '{print "<ul><li>"$0"</li></ul>"}' /var/www/html/mysite/cgi-bin/dr1.txt > /var/www/html/mysite/cgi-bin/dr-tomorrow.txt 
rm -rf /var/www/html/mysite/cgi-bin/dr0.txt 
rm -rf /var/www/html/mysite/cgi-bin/dr1.txt

Если нет возможности сохранять файл в UTF-8 или Вы не уверены в какой кодировке исполнитель заменит (закачает) файл по FTP, то в системе Linux должен быть установлен пакет enca (можно узнать у хостера), и первая строка в исполняющем файле dr.sh должна быть такая:

enconv -x UTF-8 -L ru /var/www/html/mysite/cgi-bin/dn-all.txt

Эта команда перекодирует файл из любой кодировки в UTF-8

Если вы не знаете установлен ли в системе пакет enca, но точно знаете, что файл копируют по FTP в кодировке cp1251(windows), то можно написать такую команду

iconv -f cp1251 -t utf8 /var/www/html/mysite/cgi-bin/dn-all.txt -o /var/www/html/mysite/cgi-bin/dn-all.txt

Файл будет исполнять cron в 00:00 каждые сутки. Как добавить задание в cron или узнавайте у своего хостера

0 0 * * * /var/www/html/mysite/cgi-bin/dr.sh > /dev/null 2>&1

После выполнения скрипта, у Вас появиться 2 файла:

dr-today.txt - именинники сегодня

dr-tomorrow.txt - именинники завтра

Как их разместить на сайте, на усмотрение веб мастера.

Как поступил я ? Установил плагин вставки кода php в статьи или модули для Joomla 1.5 и его средствами добавил файлы в модуль.

Скачать плагин вставки кода php в статьи или модули для Joomla 1.5

Вот так, смотреть код

Информация на сайте оказалась Вам полезной? Вы нашли ответ на вопрос?

Узнайте как поблагодарить меня

Добавить комментарий


Защитный код
Обновить