Модуль "Календарь" - записи с текущ. даты

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
artsage
New Member
New Member
Posts: 8
Joined: Wed Aug 01, 2007 4:33 pm

Модуль "Календарь" - записи с текущ. даты

Post by artsage »

Собствено вопрос в теме.
Необходимо сделать своеобразню афишу, которая выводить записи начиная с текущей даты.

Пока шаблон календаря таков.

Code: Select all

{strip}
<div class="calendar" id="cal-calendar">

<div class="calendar-month"><span class="calendar-prev"><a href="{$navigation.prev}">«</a></span> {$month_names[$month]} {$year} <span class="calendar-next"><a href="{$navigation.next}">»</a></span>
</div>



<div>
{* initial empty days *}
{if $first_of_month_weekday_number > 0}
<div colspan="{$first_of_month_weekday_number}"> </div>
{/if}
{* iterate over the days of this month *}
{assign var=weekday value=$first_of_month_weekday_number}
{foreach from=$days item=day key=key}
{if $weekday == 7}
	{assign var=weekday value=0}
</div>

<div>
{/if}
<div id="fuck" {if isset($day.class)}class="{$day.class}"{/if}>
{if isset($day.events.0)}

<a class="day_url" href="{$day.url}">{$key}</a>

<ul class="afisha">
{foreach from=$day.events item=event}
<li>

<div class="calendar-event">
<!--<h3>{$event.event_title}</h3>--><a class="event_url" href="{$event.url}">{$event.event_title}</a>

{assign var=month_number value=$event.event_date_start|date_format:"%m"}
{assign var=end_month_number value=$event.event_date_end|date_format:"%m"}
{if $event.event_date_start == $event.event_date_end || $event.event_date_end == 0}
  <div class="calendar-date-from"><span class="calendar-date-title">{$lang.date}: </span>{$event.event_date_start|cms_date_format} {$event.event_date_start|date_format:"%X"}</div>
{else}
{if $event.event_date_start|date_format:"%d%m%Y" == $event.event_date_end|date_format:"%d%m%Y"}
  <div class="calendar-date-from"><span class="calendar-date-title">{$lang.date}: </span>{$event.event_date_start|cms_date_format} {$event.event_date_start|date_format:"%X"} {$lang.to} {$event.event_date_end|date_format:"%H:%M"}</div>
{else}
  <div class="calendar-date-from"><span class="calendar-date-title">{$lang.date}: </span>{$event.event_date_start|date_format:"%e"} {$month_names[$month_number]} {$event.event_date_start|date_format:"%Y %H:%M"} {$lang.to} {$event.event_date_end|date_format:"%d"} {$month_names[$end_month_number]} {$event.event_date_end|date_format:"%Y %H:%M"}</div>
{/if}
{/if}
{if $event.event_summary !="" && $event.event_details ==""}
	<div class="calendar-summary"><span class="calendar-summary-title">{$lang.summary}: </span>{$event.event_summary}</div>
{/if}
{if $event.event_details !="" && $event.event_details != "<br />"}
	<div class="calendar-details"><span class="calendar-details-title">{$lang.details}: </span>{eval var=$event.event_details}</div>
{/if}

{* Display custom fields
   There are two ways to address custom fields
   1) {$event.fields.fieldname}
   2) {foreach from=$event.fields key='fieldnamee' item='fieldvalue'}
        {$fieldname}: {$fieldvalue}
      {/foreach}
   You may want to use the former method with file upload fields.
*}
<div class="calendar-fields">
  {foreach from=$event.fields key='fieldname' item='fieldvalue'}
      {$fieldname}: {$fieldvalue}<br/>
  {/foreach}
</div>
<div class="calendar-returnlink">{$return_url}</div>
</div>



</li>
{/foreach}
</ul>
{else}{$key}{/if}
</div>
{math assign=weekday equation="x + 1" x=$weekday}
{/foreach}

{* remaining empty days *}
{if $weekday != 7}
<div colspan="{math equation="7-x" x=$weekday}"> </div>
{/if}
</div>


</div>

{/strip}
Last edited by artsage on Sat Feb 06, 2010 9:38 pm, edited 1 time in total.
artsage
New Member
New Member
Posts: 8
Joined: Wed Aug 01, 2007 4:33 pm

Re: Модуль "Календарь" - записи с текущ. даты

Post by artsage »

Может,я сложно объяснил или недостаточно понятно?

Сейчас я просто захардкодил. Так как я не являюсь программером на PHP, выход получился кривой.
Короче суть в том, что в function.displaycalendar.php есть функция которая добавляет класс в запись сегодняшнего дня.

Code: Select all

	if($year == date('Y') && $month == date('m'))
	{
		// month being displayed is this month. Therefore today exists
		$today = date('j');
		
		if (FALSE == isset($days[$today]['class'])) // Fix undeclared index error
		{
			$days[$today]['class'] = '';
		}
		$days[$today]['class'] .= 'calendar-today';
	}
Как правильно на PHP добавить вывод нового класса для дней младше текущей даты.
Сейчас совсем топорный вариант, стыдно показывать, но работает :)
Post Reply

Return to “Russian - русский”