Отобразить даты ближайших событий на главной

Автор Deminora, 30 августа 2009, 01:59:45

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Deminora

Подскажите, пожалуйста, как отобразить не только названия, но и даты ближайших дней рождений и событий на главной.

VrediNa

Меня кстати это тоже очень интересует... :)) Тоже хотелось бы узнать:))  O0

Bugo

#2
Администрирование => Календарь => Настройки календаря => и выставляем нужный параметр (см. 1 скрин).

После этого ближайшие события будут показаны над статистикой (см. 2 скрин).

А чтобы добавить вывод дат, надо покопаться в файле BoardIndex.template.php:
вот нужный блок
/* Each event in calendar_events should have:
title, href, is_last, can_edit (are they allowed?), modify_href, and is_today. */
foreach ($context['calendar_events'] as $event)
echo '
', $event['can_edit'] ? '<a href="' . $event['modify_href'] . '" ><img src="' . $settings['images_url'] . '/icons/modify_small.gif" alt="*" /></a> ' : '', $event['href'] == '' ? '' : '<a href="' . $event['href'] . '">', $event['is_today'] ? '<strong>' . $event['title'] . '</strong>' : $event['title'], $event['href'] == '' ? '' : '</a>', $event['is_last'] ? '<br />' : ', ';


меняем всё таким образом:
/* Each event in calendar_events should have:
title, href, is_last, can_edit (are they allowed?), modify_href, and is_today. */

foreach ($context['calendar_events'] as $event)
{$date_elements = explode("-",$event['start_date']);
echo '
', $event['can_edit'] ? '<a href="' . $event['modify_href'] . '" ><img src="' . $settings['images_url'] . '/icons/modify_small.gif" alt="*" /></a> ' : '', $event['href'] == '' ? '' : '<a href="' . $event['href'] . '">', $event['is_today'] ? '<strong>' . $event['title'] . '</strong>' : $event['title'], $event['href'] == '' ? '' : ' ('. date('d.m.y',mktime(0,0,0,$date_elements[1],$date_elements[2],$date_elements[0])).')</a>', $event['is_last'] ? '<br />' : ', ';}

и получаем результат (см. 3 скрин).

Bugo

#3
Вывод подробной информации о праздниках (дата, день недели, международный праздник или нет) — с помощью информера с сайта http://www.calend.ru/informer/

Заходим по адресу, выбираем "Настраиваемый информер", задаём, какие поля отображать, указываем названия стилей (из вашей таблицы стилей index.css), которые должны быть применены к каждому полю, нажимаем кнопку "Сгенерировать код" и получаем код вида:
<script>var calendru_c='';var calendru_mc='';var calendru_dc='';var calendru_c_all='';var calendru_n_l=0;var calendru_n_s=1;var calendru_n_d=0;var calendru_i_f=1;var calendru_show_names = 0;</script><script src=http://www.calend.ru/img/export/informer_new_themeunusual_unusualu.js?></script>

В этом коде перед каждой одинарной кавычкой вставляем наклонную черту (\) и копируем код в буфер обмена. Затем открываем файл BoardIndex.template.php и находим там блок:
if (!empty($context['calendar_holidays']))
echo '
<span class="holiday">', $txt['calendar_prompt'], ' ', implode(', ', $context['calendar_holidays']),'</span><br />';


заменяем его на
if (!empty($context['calendar_holidays']))
                    echo 'ВАШ КОД';


В итоге получаем что-то вроде (я тут еще добавил блок span для дополнительного оформления):
if (!empty($context['calendar_holidays']))
echo '<span style="width:80%; margin:10px"><script>var calendru_c=\'holiday\';var calendru_mc=\'\';var calendru_dc=\'\';var calendru_c_all=\'\';var calendru_n_l=0;var calendru_n_s=1;var calendru_n_d=0;var calendru_i_f=1;var calendru_show_names = 0;</script><script src=http://www.calend.ru/img/export/informer_new_themeunusual_unusualu.js?></script></span><br/>';


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

В итоге получаем нечто подобное (см. вложение).

Bugo

#4
Оформил вышеизложенное в виде мода для SMF любой версии. Тестируем.

Текстовое поле для вставки кода информера должно появиться  в характеристиках и настройках админки.

mcera


Bugo

Цитата: Bugo от 22 декабря 2009, 22:45:22
Оформил вышеизложенное в виде мода для SMF любой версии. Тестируем.
Цитата: mcera от 29 декабря 2009, 17:39:14
O0
а как бы такую вешь для 1.1.11 сделать?
А как бы читать научиться? :)

mcera

а как бы умеем читать ) я про готовый мод для 1.1.11

Bugo

Хорошо, буду писать подробно :)

Мод сделан ДЛЯ ЛЮБОЙ ВЕРСИИ SMF, в том числе и ДЛЯ 1.1.11.
Но конкретно на ветке 1.х я его не тестировал.

mcera

 uglystupid не работает у меня. вручную прописал. На основе ваших выкладок пытался проделать тоже самое с днем рождения... :-X ничерта не получается

Bugo

Обновил мод, работает и в SMF 1.1.11 (проверено на чистом форуме).

0daliska

Цитата: mcera от 31 декабря 2009, 14:58:15
uglystupid не работает у меня. вручную прописал. На основе ваших выкладок пытался проделать тоже самое с днем рождения... :-X ничерта не получается
А Вам кто-то написал, что именно так надо править для дней рождения?
И не получится... Точно так же для дней рождений не сделаете ;)
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

Bugo


mcera

 angel ога )))
:-[  ну нинаю я php...а массивы проспал )