воскресенье, 28 сентября 2008 г.

Календарь событий для блога

Давно хотел установить на Моем Симферополе календарь событий, чтобы ежедневно видеть и показывать посетителям некоторую историческую ретроспективу из жизни города. Сначала думал реализовать это с помощью Google Calendar. У сервиса этого есть возможность вставки календарного блока у себя на сайте. Однако как это реализовано в гугловском календаре мне не совсем понравилось. Решил поискать что-нибудь более гибкое по функционалу и дизайну.

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

Средства реализации: Попадался мне когда-то javascript, который выводил на страницу Совет дня. Именно этот скрипт я собираюсь немного изменив использовать для этой задачи.


Вот исходник уже обработанного под новую задачу кода:



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />

</head>

<table border="0" width="100%" bgcolor="#E8E8E8" cellspacing="0" cellpadding="0">
<tr><td width="100%">

<script>
<!--

var today_obj=new Date()
var today_date=today_obj.getDate()
var today_month=today_obj.getMonth()

var month=new Array()


for (i=0; i < 12; i++) {
month[i] = new Array()
}




//заголовок
var tiptitle=' <b>Сегодня в истории города</b><br>'


//январь
month[0][1]=' '
month[0][2]=' '
month[0][3]=' '
month[0][4]=' '
month[0][5]=' '
month[0][6]=' '
month[0][7]=' '
month[0][8]=' '
month[0][9]=' '
month[0][10]=' '
month[0][11]=' '
month[0][12]=' '
month[0][13]=' '
month[0][14]=' '
month[0][15]=' '
month[0][16]=' '
month[0][17]=' '
month[0][18]=' '
month[0][19]=' '
month[0][20]=' '
month[0][21]=' '
month[0][22]=' '
month[0][23]=' '
month[0][24]=' '
month[0][25]=' '
month[0][26]=' '
month[0][27]=' '
month[0][28]=' '
month[0][29]=' '
month[0][30]=' '
month[0][31]=' '


//февраль
month[1][1]=' '
month[1][2]=' '
month[1][3]=' '
month[1][4]=' '
month[1][5]=' '
month[1][6]=' '
month[1][7]=' '
month[1][8]=' '
month[1][9]=' '
month[1][10]=' '
month[1][11]=' '
month[1][12]=' '
month[1][13]=' '
month[1][14]=' '
month[1][15]=' '
month[1][16]=' '
month[1][17]=' '
month[1][18]=' '
month[1][19]=' '
month[1][20]=' '
month[1][21]=' '
month[1][22]=' '
month[1][23]=' '
month[1][24]=' '
month[1][25]=' '
month[1][26]=' '
month[1][27]=' '
month[1][28]=' '
month[1][29]=' '


//март
month[2][1]=' '
month[2][2]=' '
month[2][3]=' '
month[2][4]=' '
month[2][5]=' '
month[2][6]=' '
month[2][7]=' '
month[2][8]=' '
month[2][9]=' '
month[2][10]=' '
month[2][11]=' '
month[2][12]=' '
month[2][13]=' '
month[2][14]=' '
month[2][15]=' '
month[2][16]=' '
month[2][17]=' '
month[2][18]=' '
month[2][19]=' '
month[2][20]=' '
month[2][21]=' '
month[2][22]=' '
month[2][23]=' '
month[2][24]=' '
month[2][25]=' '
month[2][26]=' '
month[2][27]=' '
month[2][28]=' '
month[2][29]=' '
month[2][30]=' '
month[2][31]=' '

//апрель
month[3][1]=' '
month[3][2]=' '
month[3][3]=' '
month[3][4]=' '
month[3][5]=' '
month[3][6]=' '
month[3][7]=' '
month[3][8]=' '
month[3][9]=' '
month[3][10]=' '
month[3][11]=' '
month[3][12]=' '
month[3][13]=' '
month[3][14]=' '
month[3][15]=' '
month[3][16]=' '
month[3][17]=' '
month[3][18]=' '
month[3][19]=' '
month[3][20]=' '
month[3][21]=' '
month[3][22]=' '
month[3][23]=' '
month[3][24]=' '
month[3][25]=' '
month[3][26]=' '
month[3][27]=' '
month[3][28]=' '
month[3][29]=' '
month[3][30]=' '


//май
month[4][1]=' '
month[4][2]=' '
month[4][3]=' '
month[4][4]=' '
month[4][5]=' '
month[4][6]=' '
month[4][7]=' '
month[4][8]=' '
month[4][9]=' '
month[4][10]=' '
month[4][11]=' '
month[4][12]=' '
month[4][13]=' '
month[4][14]=' '
month[4][15]=' '
month[4][16]=' '
month[4][17]=' '
month[4][18]=' '
month[4][19]=' '
month[4][20]=' '
month[4][21]=' '
month[4][22]=' '
month[4][23]=' '
month[4][24]=' '
month[4][25]=' '
month[4][26]=' '
month[4][27]=' '
month[4][28]=' '
month[4][29]=' '
month[4][30]=' '
month[4][31]=' '

//июнь
month[5][1]=' '
month[5][2]=' '
month[5][3]=' '
month[5][4]=' '
month[5][5]=' '
month[5][6]=' '
month[5][7]=' '
month[5][8]=' '
month[5][9]=' '
month[5][10]=' '
month[5][11]=' '
month[5][12]=' '
month[5][13]=' '
month[5][14]=' '
month[5][15]=' '
month[5][16]=' '
month[5][17]=' '
month[5][18]=' '
month[5][19]=' '
month[5][20]=' '
month[5][21]=' '
month[5][22]=' '
month[5][23]=' '
month[5][24]=' '
month[5][25]=' '
month[5][26]=' '
month[5][27]=' '
month[5][28]=' '
month[5][29]=' '
month[5][30]=' '



//июль
month[6][1]=' '
month[6][2]=' '
month[6][3]=' '
month[6][4]=' '
month[6][5]=' '
month[6][6]=' '
month[6][7]=' '
month[6][8]=' '
month[6][9]=' '
month[6][10]=' '
month[6][11]=' '
month[6][12]=' '
month[6][13]=' '
month[6][14]=' '
month[6][15]=' '
month[6][16]=' '
month[6][17]=' '
month[6][18]=' '
month[6][19]=' '
month[6][20]=' '
month[6][21]=' '
month[6][22]=' '
month[6][23]=' '
month[6][24]=' '
month[6][25]=' '
month[6][26]=' '
month[6][27]=' '
month[6][28]=' '
month[6][29]=' '
month[6][30]=' '
month[6][31]=' '



//август
month[7][1]=' '
month[7][2]=' '
month[7][3]=' '
month[7][4]=' '
month[7][5]=' '
month[7][6]=' '
month[7][7]=' '
month[7][8]=' '
month[7][9]=' '
month[7][10]=' '
month[7][11]=' '
month[7][12]=' '
month[7][13]=' '
month[7][14]=' '
month[7][15]=' '
month[7][16]=' '
month[7][17]=' '
month[7][18]=' '
month[7][19]=' '
month[7][20]=' '
month[7][21]=' '
month[7][22]=' '
month[7][23]=' '
month[7][24]=' '
month[7][25]=' '
month[7][26]=' '
month[7][27]=' '
month[7][28]=' '
month[7][29]=' '
month[7][30]=' '
month[7][31]=' '



//сентябрь
month[8][1]=' '
month[8][2]=' '
month[8][3]=' '
month[8][4]=' '
month[8][5]=' '
month[8][6]=' '
month[8][7]=' '
month[8][8]=' '
month[8][9]=' '
month[8][10]=' '
month[8][11]=' '
month[8][12]=' '
month[8][13]=' '
month[8][14]=' '
month[8][15]=' '
month[8][16]=' '
month[8][17]=' '
month[8][18]=' '
month[8][19]=' '
month[8][20]=' '
month[8][21]=' '
month[8][22]=' '
month[8][23]=' '
month[8][24]=' '
month[8][25]=' '
month[8][26]=' '
month[8][27]=' '
month[8][28]=' '
month[8][29]=' '
month[8][30]=' '



//октябрь
month[9][1]=' '
month[9][2]=' '
month[9][3]=' '
month[9][4]=' '
month[9][5]=' '
month[9][6]=' '
month[9][7]=' '
month[9][8]=' '
month[9][9]=' '
month[9][10]=' '
month[9][11]=' '
month[9][12]=' '
month[9][13]=' '
month[9][14]=' '
month[9][15]=' '
month[9][16]=' '
month[9][17]=' '
month[9][18]=' '
month[9][19]=' '
month[9][20]=' '
month[9][21]=' '
month[9][22]=' '
month[9][23]=' '
month[9][24]=' '
month[9][25]=' '
month[9][26]=' '
month[9][27]=' '
month[9][28]=' '
month[9][29]=' '
month[9][30]=' '
month[9][31]=' '



//ноябрь
month[10][1]=' '
month[10][2]=' '
month[10][3]=' '
month[10][4]=' '
month[10][5]=' '
month[10][6]=' '
month[10][7]=' '
month[10][8]=' '
month[10][9]=' '
month[10][10]=' '
month[10][11]=' '
month[10][12]=' '
month[10][13]=' '
month[10][14]=' '
month[10][15]=' '
month[10][16]=' '
month[10][17]=' '
month[10][18]=' '
month[10][19]=' '
month[10][20]=' '
month[10][21]=' '
month[10][22]=' '
month[10][23]=' '
month[10][24]=' '
month[10][25]=' '
month[10][26]=' '
month[10][27]=' '
month[10][28]=' '
month[10][29]=' '
month[0][30]=' '


//декабрь
month[11][1]=' '
month[11][2]=' '
month[11][3]=' '
month[11][4]=' '
month[11][5]=' '
month[11][6]=' '
month[11][7]=' '
month[11][8]=' '
month[11][9]=' '
month[11][10]=' '
month[11][11]=' '
month[11][12]=' '
month[11][13]=' '
month[11][14]=' '
month[11][15]=' '
month[11][16]=' '
month[11][17]=' '
month[11][18]=' '
month[11][19]=' '
month[11][20]=' '
month[11][21]=' '
month[11][22]=' '
month[11][23]=' '
month[11][24]=' '
month[11][25]=' '
month[11][26]=' '
month[11][27]=' '
month[11][28]=' '
month[11][29]=' '
month[11][30]=' '
month[11][31]=' '



document.write(tiptitle)
document.write(month[today_month][today_date]+"<br>")
//-->
</script>
</td></tr></table>
</HTML>




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

Если у вас нет личного хостинга можно опять же воспользоваться щедростью гугла. Сервис http://sites.google.com/ позволяет создавать свои простенькие сайты а также выкладывать в сеть практически любые файлы.

Я загрузил в такой сервис файл нашего скрипта. Только не с привычным в таком случае расширением *.js а в расширении *.txt так как видимо из соображений безопасности загружать файлы с расширением *.js этот сервис не позволяет. Теперь скрипт доступен по ссылке.

Осталось дело за малым: установить в соответствующей части блога скрипт, подключающий наш календарь:

<script type="text/javascript" language="JavaScript1.1" src="http://6303919708331955465-a-1802744773732722657-s-sites.googlegroups.com/site/capcrimea/Home/calendar.txt"&rt;</script&rt;


Результат работы скрипта можно посмотреть на блоге Мой Симферополь. Календарь событий здесь находится в правой колонке под кнопкой RSS.

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