Skip to content
 

JQuery AJAX Calendar

AJAX календарь

Ну не нравится мне родной виджет "календарь" - таки не дело перезагружать всю страницу при переходе по месяцам! Однако ж поиск готовых плагинов ни к чему ни привел - нет, календари разных сортов конечно есть, но либо здоровенные и слишком наворочаные, либо просто не работают в чуть правленом WordPress'е. Поэтому взяв за основу календарь от John Godley, начал дорабатывать. Потом - перерабатывать. Потом стер все что натворил и просто переписАл.

Результат можно посмотреть TYT (слева внизу), и можно скачать.
  jQuery AJAX Календарь для WordPress (14,2 KiB, 585 hits)

UPD. Совсем забыл, он для работы требует некоего редактирования: добавления в functions.php кода
function my_enqueue_footer($content){
global $my_footer_content;
if(!isset($my_footer_content)) $my_footer_content=array();
$my_footer_content[]=$content;
}

add_action('bp_before_footer','my_print_footer_content',3);

function my_print_footer_content(){
global $my_footer_content;
if(is_array($my_footer_content))
foreach($my_footer_content as $cnt)
echo $cnt;
}

и нечто подобное в style.css (подстраивать под свою тему по вкусу)

.widget #wp-calendar {
width: 100%;
margin-left: 2px;
}
.widget #wp-calendar td {
padding: 2px;
}
.widget #wp-calendar th {
padding: 2px;
}
.widget #wp-calendar tbody td a {
padding: 2px 3px;
margin: -2px -3px;
border: 1px solid #aaa;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}

.widget #wp-calendar tbody td#today {
background: #ddd;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
overflow:hidden;
}

Похожих записей не найдено.

4 комментария

  1. Алексей (Москва) пишет:

    Отзыв: Thumb up 0 Thumb down 0

    [MARKED AS SPAM BY ANTISPAM BEE | CSS Hack]
    Добрый день! Спасибо Вам за материал. Вот только я новичок и непонятно, как установить календарь на сайт. Я делаю так. Копирую файл ajax calendar в тему сайта. Добавляю код, который вы указали, в конце в файл functions.php. Добавляю стили в конце в файл style.css. А как же вывести календарь в сайдбар? Должен ведь быть какой-то код, чтобы вставить в виджет текст. Или этот виджет появится в списке виджетов после того, как я все сделаю?Буду очень благодарен, если поясните. а то в моей теме кадлендарь выезжает за границы блока. В css ширину не нашел, чтобы поправить.

    Ответить на комментарий
    • admin admin пишет:

      Отзыв: Thumb up 0 Thumb down 0

      Календарь - это виджет, и после активации плагина появляется среди списка виджетов ВордПресса. Виджеты всегда имеют ширину 100%, ибо вписываются в размер отведенной для них колонки сайдбара. Общий формат виджетов задается в файле стилей темы для класса '.widget', также можно задать самому доп свойства по собственному классу виджета, для календаря это ".ajax_calendar_widget". С теми настройками что указаны, минимальная ширина колонки - 180px, если меньше то придется подредактировать стили для уменьшения шрифтов и зазоров.

      Еще один момент - если установлен чистый ВордПресс, то строку

      add_action('bp_before_footer','my_print_footer_content',3);

      нужно заменить на

      add_action('wp_footer','my_print_footer_content',3);

      Ответить на комментарий
  2. Простой (Санкт-Петербург) пишет:

    Отзыв: Thumb up 0 Thumb down 0

    А сколько ваш собственный плагин делает запросов к бд??? Лишнею нагрузку не создаёт на сервер?

    Ответить на комментарий
    • admin admin пишет:

      Отзыв: Thumb up 0 Thumb down 0

      (удивленно) зачем календарю - ЛИШНИЕ запросы к БД? Делается один запрос, посты по датам - да и то делается стандартной функцией календаря WP, плагин лишь ставит фильтры и в них добавляет условия к запросу. И только один запрос - ибо AJAX, и нет перегенерации всей страницы. Собственно ради чего он и был сделан. Ну и вообще-то плагин - опенсорс, можно взять и самостоятельно посмотреть код, попробовать и заглянуть в лог :)

      ЗЫ. ссылки с юзера TYT nofollow noindex - можно не стараться :)

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

Написать отзыв