MODx - Ditto рдХреЗ рдмрд┐рдирд╛ рдШрдЯрдирд╛рдУрдВ / рд╕рдорд╛рдЪрд╛рд░реЛрдВ рдХрд╛ рдЕрдкрдирд╛ рдЕрдЬрд╛рдХреНрд╕ рдХреИрд▓реЗрдВрдбрд░

рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рджреВрд╕рд░реЗ рджрд┐рди рдХрд╛рдо рджрд┐рдпрд╛: рдореЙрдбрдПрдХреНрд╕ рдЗрд╡реЛрд▓реНрдпреВрд╢рди рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдПрдХ рдХреИрд▓реЗрдВрдбрд░ рдмрдирд╛рдПрдВред

рдореБрдЭреЗ рдЗрд╕ рдЗрдВрдЬрди рд╕реЗ, рдЗрд╕рдХреЗ рдЕрднреВрддрдкреВрд░реНрд╡ рд▓рдЪреАрд▓реЗрдкрди рдФрд░ рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИред



рдХрд╛рд░реНрдп рд╕рд░рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдорд┐рд▓рд╛, рдореИрдВ рдореБрд╢реНрдХрд┐рд▓ рдХреНрд╖рдгреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рд╕реЗ рдорд┐рд▓рд╛ред

рддреЛ, рдЬреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреА рдПрдХ рдкреЙрдк-рдЕрдк рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдХреИрд▓реЗрдВрдбрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ - рдХреГрдкрдпрд╛, рд╣реИрдмрд░рдХреЛрдЯ рдХреЗ рддрд╣рдд!







рд╣рдореЗрдВ рдЬреЛ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╣реИ рдЙрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:





рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╡реЗрдВрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреАрд╡реА рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рдПрдВред рддрддреНрд╡реЛрдВ рдореЗрдВ рдореЙрдбреЗрдХреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдкрд░ рдЬрд╛рдПрдВ- > рддрддреНрд╡реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВ- > рдкреИрд░рд╛рдореАрдЯрд░ (рдЯреАрд╡реА) -> рдирдпрд╛ рдкреИрд░рд╛рдореАрдЯрд░ (рдЯреАрд╡реА)

: 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 рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЯреВрд▓рдЯрд┐рдкреНрд╕ рдмрдирд╛рддрд╛ рд╣реИред



рдорд╣реАрдиреЗ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рдПрдХ рдирдИ рддрд╛рд░реАрдЦ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреЙрдк-рдЕрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдбреЛрдо рдмрджрд▓ рдЧрдпрд╛ рд╣реИ)ред



рдЙрд╕реА рд╕рдордп, рд╣рдо рдШрдЯрдирд╛рдУрдВ рдХреЛ рддрд╛рд░реАрдЦ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд▓рдЯрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрд╕ рддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдЪрд╛рд░ рдкреГрд╖реНрда рдкрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ)ред рдорд╣реАрдиреЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП (рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ)

рдбрд╛рдЙрдирд▓реЛрдб рдЗрдВрдбрд┐рдХреЗрдЯрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ + рдХреИрд▓реЗрдВрдбрд░ рдЦреБрдж рдХрд╛рд▓рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИ, рд╢реИрд▓реА рдФрд░ рд╕рд╛рдордЧреНрд░реА рджреЛрдиреЛрдВред



рдЕрдм рдХрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВред



рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП 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

рдХреИрд▓реЗрдВрдбрд░ рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг , рдбреЗрдЯрдкрд┐рдХрд░ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рджреЛрд╖реЛрдВ рдХреЗ рдмрд┐рдирд╛ рддреИрдпрд╛рд░ рд╣реИ !



All Articles