рдореБрдЭреЗ рдЗрд╕ рдЗрдВрдЬрди рд╕реЗ, рдЗрд╕рдХреЗ рдЕрднреВрддрдкреВрд░реНрд╡ рд▓рдЪреАрд▓реЗрдкрди рдФрд░ рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИред
рдХрд╛рд░реНрдп рд╕рд░рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдорд┐рд▓рд╛, рдореИрдВ рдореБрд╢реНрдХрд┐рд▓ рдХреНрд╖рдгреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рд╕реЗ рдорд┐рд▓рд╛ред
рддреЛ, рдЬреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреА рдПрдХ рдкреЙрдк-рдЕрдк рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдХреИрд▓реЗрдВрдбрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ - рдХреГрдкрдпрд╛, рд╣реИрдмрд░рдХреЛрдЯ рдХреЗ рддрд╣рдд!
рд╣рдореЗрдВ рдЬреЛ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╣реИ рдЙрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
- рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ (рдХрдВрдЯреЗрдирд░)ред рдпреЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдореЙрдбреЗрдХреНрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
- рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ jQueryUI рдФрд░ qTipред рдкрд╣рд▓рд╛ рдПрдХ рдХреИрд▓реЗрдВрдбрд░ рддреИрдпрд╛рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рджреВрд╕рд░рд╛ - рдкреЙрдк-рдЕрдк рдЗрд╡реЗрдВрдЯред
- EventCalendar рд╕реНрдирд┐рдкреЗрдЯ рд╣рдо рдЬрд▓реНрдж рд╣реА рдПрдХ рд╕рд╛рде рд▓рд┐рдЦреЗрдВрдЧреЗред
- 2 рд╡рд┐рдЦрдВрдбреВ (html рдбрд┐рдЬрд╛рдЗрди)ред рдкрд╣рд▓рд╛ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЬрд╣рд╛рдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдХреИрд▓реЗрдВрдбрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдХреЙрд▓ рд╣реЛрдЧреА, рдФрд░ рджреВрд╕рд░рд╛ - рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рдореЗрдВ рдПрдХ рдШрдЯрдирд╛ рдХрд╛ рдкрдВрдЬреАрдХрд░рдгред
- рдЗрд╡реЗрдВрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЯреАрд╡реА рдкреИрд░рд╛рдореАрдЯрд░ред рдореЙрдбреЗрдХреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╡реЗрдВрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреАрд╡реА рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рдПрдВред рддрддреНрд╡реЛрдВ рдореЗрдВ рдореЙрдбреЗрдХреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдкрд░ рдЬрд╛рдПрдВ- > рддрддреНрд╡реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВ- > рдкреИрд░рд╛рдореАрдЯрд░ (рдЯреАрд╡реА) -> рдирдпрд╛ рдкреИрд░рд╛рдореАрдЯрд░ (рдЯреАрд╡реА)
: event_date
: event_date
: Date
: , , .
рдЕрдм, рдЬрдм рдЖрдк рдХрд┐рд╕реА рдИрд╡реЗрдВрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЬрдм рдЖрдк рдХреНрд▓рд┐рдХ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдЙрд╕ рддрд╛рд░реАрдЦ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдВрдбреЛ рд╣реЛрдЧреА, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдЗрд╕ рдИрд╡реЗрдВрдЯ рдХреЛ рдХреИрд▓реЗрдВрдбрд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред
рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ jQueryUI.datepicker рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ
рдЙрддреНрдкрд╛рджрди рдХреА рдШрдЯрдирд╛рдУрдВ, рдФрд░ рддрд╛рд░реАрдЦреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдХрд╛рд░рдг рд╣реИрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдЗрдЯ рдкрд░ jQueryUI рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдХреНрдпреЛрдВ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ?
рджреВрд╕рд░реЗ, рдбреЗрдЯрдкрд┐рдХрд░ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИ, рдкреНрд░рджрд░реНрд╢рд┐рдд рддрд┐рдерд┐рдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдПрдХ рддрд┐рдерд┐ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдирд╛ рдХреЛ рд▓рдЯрдХрд╛рдПрдВ, рдорд╣реАрдиреЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрджрд┐ред
рдпрд╣ рд╕рдм рдЖрдкрдХреЛ рдЕрдкрдиреА рдмрд╛рдЗрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХреИрд▓реЗрдВрдбрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдпрд╣реА рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреБрдЫ рдЕрд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╡рд╣рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред
рд╕реНрдирд┐рдкреЗрдЯ рдЗрд╡реЗрдВрдЯрдХреИрд▓реЗрдВрдбрд░ред рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдХрд╛рдо рдХрд░реЗрдВред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред рдЕрдм рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!" рдирд╣реАрдВ рдШрдЯрд╛ рд╕рдХрддрд╛, рдПрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦреЗ рдмрд┐рдирд╛, рдЗрд╕рд▓рд┐рдП, рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдХреНрд╖рдорд╛ рдХрд░реЗрдВред
<?php class eventsCalendar { var $id; // - var $dateFormat = '%d %b %Y %H:%M'; // , strftime() var $dateTV = 'event_date'; // TV modx var $tplEvent = 'tplEvent'; // var $tplMain = 'tplCalendar'; // var $conv = 0; // cp1251 utf8. - . /* */ function error($err) { $arr = array( 'no_id' => ' id ', 'no_action' => ' ajax .', 'no_result' => ' .' ); return $arr[$err]; } /* , , */ function getEvents($id = '', $month = '', $year = '') { global $modx; if (empty($id)) {return $this->error('no_id');} if (empty($month)) {$month = date('m');} if (empty($year)) {$year = date('Y');} if (strlen($month) == 1) {$month = '0'.$month;} /* , id */ $tmp = $modx->getDocumentChildrenTVars($id, array('id',$this->dateTV)); /* */ if (empty($tmp)) {return $this->error('no_result');} else { foreach ($tmp as $v) { $d = strftime('%Y-%m', strtotime($v[0]['value'])); if ($d == $year.'-'.$month) {$ids[] = $v[1]['value'];} $dates_arr[$v[1]['value']] = $v[0]['value']; } } /* $ids, , , . */ $arr = $modx->getDocuments($ids, 1, 0, "id,pagetitle,introtext", "", 'pub_date ASC, id', 'ASC'); /* - , */ if (empty($arr)) {return json_encode(array());} /* - , */ /* */ $tpl = $modx->getChunk($this->tplEvent); $i = 1; foreach ($arr as $v) { /* */ $did = $v['id']; $url = $modx->makeUrl($did); $date = strftime($this->dateFormat, strtotime($dates_arr[$did])); $date2 = strftime('%Y-%m-%d', strtotime($dates_arr[$did])); $desc = $v['introtext']; $title = $v['pagetitle']; /* , */ if (isset($date3) && $date3 != $date2) {$i = 1;} $date3 = $date2; /* modx */ $placeholders = array('[+ec.date+]','[+ec.title+]','[+ec.url+]','[+ec.desc+]','[+ec.num+]'); $values = array($date, $title, $url, $desc, $i); $text = str_replace($placeholders, $values, $tpl); /* , cp1251. */ if ($this->conv != 0) {$dates[$date2] .= iconv('cp1251', 'utf-8', $text);} else {$dates[$date2] .= $text;} $i++; } /* .. jqueryui.datepicker '','css class',' ' - */ foreach($dates as $k => $v) { $dates2[] = array($k, '', $v); } /* json */ return json_encode($dates2); } /* , */ function output($tpl) { global $modx; $tpl = $modx->getChunk($tpl); echo $tpl; } } /* , , modx */ $Cal = new eventsCalendar; $Cal->id = $id; // ! /* - */ if (!empty($dateTV)) {$Cal->dateTV = $dateTV;} if (!empty($dateFormat)) {$Cal->dateFormat = $dateFormat;} if (!empty($tplEvent)) {$Cal->tplEvent = $tplEvent;} if (!empty($tplMain)) {$Cal->tplMain = $tplMain;} if (!empty($conv)) {$Cal->conv = $conv;} /* ajax - */ if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { $action = $_POST['action']; if (!empty($action)) { switch($action) { case 'getEvents': echo $Cal->getEvents($Cal->id, $_POST['month'], $_POST['year']); break; } } else { echo $Cal->error('no_action'); } die(); } /* - */ else { $Cal->output($Cal->tplMain); } ?>
рдЗрд╕рдХреЗ рдмрд╛рдж, рдореЙрдбреЗрдХреНрд╕ рдПрдбрдорд┐рди рдкреИрдирд▓ рдкрд░ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдкрд░ рдЬрд╛рдПрдВ, рдПрдХ рдирдпрд╛ рдмрдирд╛рдПрдВ, рдЗрд╕реЗ рдЗрд╡реЗрдВрдЯ рдХреИрд▓реЗрдиреНрдбрд░ рдХрд╣реЗрдВ, рдФрд░ рдЗрд╕рдореЗрдВ рдКрдкрд░ рдХреЙрдкреА рдХрд░реЗрдВред
рд╣рдордиреЗ рдПрдХ рдирдпрд╛ рд╕реНрдирд┐рдкреЗрдЯ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдкреГрд╖реНрда рдкрд░ рдХрд╣реАрдВ рднреА рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ:
[!eventsCalendar?
&id=`13`
&dateTV=`event_date`
&dateFormat=`%d %b %Y %H:%M`
&tplMain=`tplCalendar`
&tplEvent=`tplEvent`
!]
рд╡рд┐рд╖рдп рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рджреЗрдЦреЗрдВред
рдХреЗрд╡рд▓ рдЬрдм рддрдХ рд╡рд╣ рдХреБрдЫ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛, рддрдм рддрдХ рд╣рдордиреЗ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд▓рд┐рдЦреЗ рд╣реИрдВред
рдЪрдВрдХреНрд╕ред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд░рдл рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВред
рдЖрдЗрдП рдЫреЛрдЯреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ - tplEvent рдЗрд╡реЗрдВрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯред
<div class='event'> <span class='num'><b>[+ec.num+].</b></span> <span class='date'>[+ec.date+]</span> <span class='link'><a href='[+ec.url+]' target='_blank'>[+ec.title+]</a></span> <br /> <span class='notice'>[+ec.desc+]</span> </div> <br />
рдЕрдЧрд▓рд╛, рдПрдХ рдмрдбрд╝рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯред
рдореИрдВ рдкреВрд░реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рд╕реНрдХреНрд░реИрдмрд▓ рд╣реИ, рдпрд╣рд╛рдБ рдореИрдВ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдЪреАрдЬрд╝ рджреВрдВрдЧрд╛, рдмрд╛рдХреА рд╕рдм рдПрдХ рд▓рдЧрд╛рд╡ рд╣реИред
рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдкрде рдХреЛ рджреЗрдЦрдиреЗ) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
<script type='text/javascript' src='[(site_url)]inc/js/jquery-1.4.4.min.js'></script> <script type='text/javascript' src='[(site_url)]inc/js/jquery-ui-1.8.6.custom.min.js'></script> <script type='text/javascript' src='[(site_url)]inc/js/jquery.ui.datepicker-ru.js'></script> <!-- datepicker --> <script type='text/javascript' src='[(site_url)]inc/js/jquery.qtip.js'></script>
рдЕрдм, рдореБрдЦреНрдп рдЬрд╛рджреВред
<script type='text/javascript'> $(document).ready(function() { class_enabled = 'enabled'; // , class_disabled = 'disabled'; // element = '#Calendar'; // DOM url = '/[~[*id*]~]'; // ajax, - dates = getEvents(); // ajax Calendar(dates); // Qtip(); // qTip, }); // . function Calendar(dates) { $(element).datepicker({ language: 'ru', inline: true, dateFormat: 'dd.mm.yy', // - . , 1 qTip, // DOM . onChangeMonthYear: function(year, month) { dates = getEvents(year, month); window.setTimeout( function() { Qtip() }, 1000 ); }, // - , . // 3: /, , title td. beforeShowDay: function(d) { var date = $.datepicker.formatDate('yy-mm-dd', d); for (i = 0, c = dates.length; i < c; i++) { if (date == dates[i][0]) { return [true, class_enabled, dates[i][2]]; } } return [false, class_disabled]; }, // . - . onSelect: function() {return false;} }); } // ajax . // - , , , - . // , , . function getEvents(year, month) { $.ajaxSetup({async: false}); $.post(url, {action: 'getEvents', month: month, year: year}, function(data) { if (data == 'null') {data = '[]';} dates = jQuery.parseJSON(data); response = dates; } ) return response; } // qTip. // . title . function Qtip() { $(element + ' .' + class_enabled).qtip({ prerender: true, show: {when: {event: 'mouseover'}, effect: {length: 0}, solo: true}, hide: {when: {event: 'unfocus'}, effect: {length: 0}}, position: { corner: { target: 'center', tooltip: 'topLeft' } }, style: {height: 100,width: 300} }); } </script>
<div id='Calendar'></div> -- ,
рдореИрдВ рдЕрднреА рднреА рдХреИрд▓реЗрдВрдбрд░ рдХреЛ рдХрд╛рд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рдорд╣реАрдиреЗ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рд╕рдВрдХреЗрддрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдкреГрд╖реНрда рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдмрд╕ tplCalendar рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рддрд╛рд░реАрдЦреЛрдВ рдХреЗ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдЬреИрд╕реЗ рд╣реА рд╕рд░рдгреА рдЖрддреА рд╣реИ, рдХреИрд▓реЗрдВрдбрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЬрдм рддрд╛рд░реАрдЦ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЯреВрд▓рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реИрд▓реА рдФрд░ рдкрд╛рда рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдлрд┐рд░ qTip рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдмрдирд╛рддрд╛ рд╣реИред
рдорд╣реАрдиреЗ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рдПрдХ рдирдИ рддрд╛рд░реАрдЦ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреЙрдк-рдЕрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдбреЛрдо рдмрджрд▓ рдЧрдпрд╛ рд╣реИ)ред
рдЙрд╕реА рд╕рдордп, рд╣рдо рдШрдЯрдирд╛рдУрдВ рдХреЛ рддрд╛рд░реАрдЦ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд▓рдЯрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрд╕ рддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдЪрд╛рд░ рдкреГрд╖реНрда рдкрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ)ред рдорд╣реАрдиреЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП (рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ)
рдбрд╛рдЙрдирд▓реЛрдб рдЗрдВрдбрд┐рдХреЗрдЯрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ + рдХреИрд▓реЗрдВрдбрд░ рдЦреБрдж рдХрд╛рд▓рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИ, рд╢реИрд▓реА рдФрд░ рд╕рд╛рдордЧреНрд░реА рджреЛрдиреЛрдВред
рдЕрдм рдХрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВред
- рдкреНрд░рддреНрдпреЗрдХ рдХреИрд▓реЗрдВрдбрд░ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж qTip рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдореИрдВ рдХреИрд╕реЗ рдирд╣реАрдВ рдЖрдпрд╛) рдХрд┐рд╕ рдХреИрд▓реЗрдВрдбрд░ рдХреЗ рд╕рд╛рде
рддреИрдпрд╛рд░ рд╣реИ, рдореБрдЭреЗ рдЗрд╕реЗ 1 рд╕реЗрдХрдВрдб рдХреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рд╕рд░реНрд╡рд░ рдзреАрдорд╛ рд╣реИ, рдпрд╛ рдмрд╣реБрдд рд╕рд╛рд░реА рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ, рддреЛ рджреВрд╕рд░рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░
рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдорд┐рдд рд╕рд░реНрд╡рд░ рдХреЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реЗрдХрдВрдб рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛, рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред - рдЪреВрдВрдХрд┐ рдкреЙрдкрдЕрдк рдХреЗ рд▓рд┐рдП рдкрд╛рда td рддрддреНрд╡ рдХреЗ рд╢реАрд░реНрд╖рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрджреНрдзрд░рдг рдФрд░ рдЙрдирдХреЗ рднрд╛рдЧрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП php рдореЗрдВ, рдЖрдкрдХреЗ рдХреИрд▓реЗрдВрдбрд░ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдиреБрдХрд╕рд╛рди рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдЦрдЬреВрд░ рдХреЗ рдлрд╛рдпрджреЛрдВ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреА рдЖрд╢рдВрдХрд╛ рд╣реИред
рдЖрд╡реЗрджрдиред
рд╕реНрдирд┐рдкреЗрдЯ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рдХрд╛рдо рдореЗрдВ рджреЗрдЦреЗрдВ (рдХреНрд░рд╛рдВрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг)
EventCalendar рд╕реНрдирд┐рдкреЗрдЯ рд╡рд┐рдХрд▓реНрдк:
рдФрд░ рдЖрдИрдбреА
: ,
: [int]
: ID - .
рдФрд░ рджрд┐рдирд╛рдВрдХ
: '%d %b %Y %H:%M'
: strftime()
: .
& рдбреЗрдЯрдЯреАрд╡реА
: event_date
: tv
: TV modx .
& tplEvent
: tplEvent
: modx
: .
& tplMain
: tplCalendar
:
: .
& рдХрди
: 0
: [int]
: cp1251 utf8.
EventCalendar рд╕реНрдирд┐рдкреЗрдЯ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░:
[+ ec.num +]
. , . ,
TV . , .
[+ ec.date +]
.
[+ ec.url +]
.
[+ ec.title +]
, pagetitle modx.
[+ ec.desc +]
, introtext modx.
рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХред
рдпреБрдкреАрдбреАред
рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ bezumkin@yandex.ru рдкрд░ рднреЗрдЬреЗрдВ, рдпрд╛ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВред
UPD.2
рдХреИрд▓реЗрдВрдбрд░ рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг , рдбреЗрдЯрдкрд┐рдХрд░ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рджреЛрд╖реЛрдВ рдХреЗ рдмрд┐рдирд╛ рддреИрдпрд╛рд░ рд╣реИ !