$query = $CI->db->get(); if ($query->num_rows() > 0) { $books = $query->result_array(); $out = ''; foreach ($books as $book) { if (is_login()) { $tl = '<p><a href="' . getinfo('siteurl') . 'admin/guestbook/editone/' . $book['guestbook_id'] . '">' . t('Редактировать') . '</a></p>'; } else { $tl = ''; } // pr($book); $out .= '<a id="guestbook-' . $book['guestbook_id'] . '"></a>'; $guestbook_text = htmlspecialchars($book['guestbook_text']) . "\n"; $guestbook_text = str_replace(array("\r\n", "\r"), "\n", $guestbook_text); $guestbook_text = preg_replace('!(.*)\\n!', "<p>\$1</p>", $guestbook_text); $guestbook_text = str_replace('<p></p>', "", $guestbook_text); // pr($guestbook_text, 1); $out .= str_replace(array('[id]', '[ip]', '[browser]', '[date]', '[name]', '[text]', '[title]', '[email]', '[icq]', '[site]', '[phone]', '[custom1]', '[custom2]', '[custom3]', '[custom4]', '[custom5]', '[url]'), array($book['guestbook_id'], $book['guestbook_ip'], $book['guestbook_browser'], mso_date_convert('Y-m-d H:i:s', $book['guestbook_date']), htmlspecialchars($book['guestbook_name']), $guestbook_text, htmlspecialchars($book['guestbook_title']) . ' ', htmlspecialchars($book['guestbook_email']) . ' ', htmlspecialchars($book['guestbook_icq']) . ' ', htmlspecialchars($book['guestbook_site']) . ' ', htmlspecialchars($book['guestbook_phone']) . ' ', htmlspecialchars($book['guestbook_custom1']) . ' ', htmlspecialchars($book['guestbook_custom2']) . ' ', htmlspecialchars($book['guestbook_custom3']) . ' ', htmlspecialchars($book['guestbook_custom4']) . ' ', htmlspecialchars($book['guestbook_custom5']) . ' ', getinfo('siteurl') . 'guestbook#guestbook-' . $book['guestbook_id']), $options['format']); } if ($out) { echo $options['start'] . $out . $options['end']; } } // здесь пагинация mso_hook('pagination', $pag); echo '</div></div>'; # конечная часть шаблона if ($fn = mso_find_ts_file('main/main-end.php')) { require $fn; } # end file
function mso_page_date($date = 0, $format = 'Y-m-d H:i:s', $do = '', $posle = '', $echo = true) { if (!$date) { return ''; } if (is_array($format)) { if (isset($format['format'])) { $df = $format['format']; } else { $df = 'D, j F Y г.'; } if (isset($format['days'])) { $dd = $format['days']; } else { $dd = tf('Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье'); } if (isset($format['month'])) { $dm = $format['month']; } else { $dm = tf('января февраля марта апреля мая июня июля августа сентября октября ноября декабря'); } } else { $df = $format; $dd = false; $dm = false; } // учитываем смещение времени time_zone $out = mso_date_convert($df, $date, true, $dd, $dm); if ($echo) { echo $do . $out . $posle; } else { return $do . $out . $posle; } }
function calendar_widget_custom($arg = array(), $num = 1) { # массив названий месяцев if (!isset($arg['months'])) { $arg['months'] = array(t('Январь'), t('Февраль'), t('Март'), t('Апрель'), t('Май'), t('Июнь'), t('Июль'), t('Август'), t('Сентябрь'), t('Октябрь'), t('Ноябрь'), t('Декабрь')); } # массив названий дней недели if (!isset($arg['days'])) { $arg['days'] = array(t('Пн'), t('Вт'), t('Ср'), t('Чт'), t('Пт'), t('Сб'), t('Вс')); } # оформление виджета if (!isset($arg['header'])) { $arg['header'] = '<h2 class="box"><span>' . t('Календарь') . '</span></h2>'; } if (!isset($arg['block_start'])) { $arg['block_start'] = '<div class="calendar">'; } if (!isset($arg['block_end'])) { $arg['block_end'] = '</div>'; } if (!isset($arg['elem_previous'])) { $arg['elem_previous'] = '««'; } if (!isset($arg['elem_next'])) { $arg['elem_next'] = '»»'; } $prefs = array('start_day' => 'monday', 'month_type' => 'long', 'day_type' => 'long', 'show_next_prev' => TRUE, 'local_time' => time(), 'next_prev_url' => getinfo('site_url') . 'archive/'); $prefs['template'] = ' {table_open}<table border="0" cellpadding="0" cellspacing="0">{/table_open} {heading_row_start}<tr>{/heading_row_start} {heading_previous_cell}<th><a href="{previous_url}">' . $arg['elem_previous'] . '</a></th>{/heading_previous_cell} {heading_title_cell}<th colspan="{colspan}">{heading}</th>{/heading_title_cell} {heading_next_cell}<th><a href="{next_url}">' . $arg['elem_next'] . '</a></th>{/heading_next_cell} {heading_row_end}</tr>{/heading_row_end} {week_row_start}<tr class="week">{/week_row_start} {week_day_cell}<td>{week_day}</td>{/week_day_cell} {week_row_end}</tr>{/week_row_end} {cal_row_start}<tr>{/cal_row_start} {cal_cell_start}<td>{/cal_cell_start} {cal_cell_content}<a href="{content}">{day}</a>{/cal_cell_content} {cal_cell_content_today}<div class="today-content"><a href="{content}">{day}</a></div>{/cal_cell_content_today} {cal_cell_no_content}{day}{/cal_cell_no_content} {cal_cell_no_content_today}<div class="today">{day}</div>{/cal_cell_no_content_today} {cal_cell_blank} {/cal_cell_blank} {cal_cell_end}</td>{/cal_cell_end} {cal_row_end}</tr>{/cal_row_end} {table_close}</table>{/table_close}'; $CI =& get_instance(); $CI->load->library('calendar', $prefs); $mktime = mktime() + getinfo('time_zone') * 60 * 60; // с учетом часового пояса ? # если это архив, то нужно показать календарь на этот год и месяц if (is_type('archive')) { $year = (int) mso_segment(2); if ($year > date('Y', $mktime) or $year < 2000) { $year = date('Y', $mktime); } $month = (int) mso_segment(3); if ($month > 12 or $month < 1) { $month = date('m', $mktime); } } else { $year = date('Y', $mktime); $month = date('m', $mktime); } # для выделения дат нужно смотреть записи, которые в этом месяце $CI->db->select('page_date_publish'); $CI->db->from('page'); $CI->db->join('page_type', 'page_type.page_type_id = page.page_type_id'); $CI->db->where('page_status', 'publish'); $CI->db->where('page_type_name', 'blog'); $CI->db->where('page_date_publish >= ', mso_date_convert_to_mysql($year, $month)); $CI->db->where('page_date_publish < ', mso_date_convert_to_mysql($year, $month + 1)); # не выводить неопубликованные $CI->db->where('page_date_publish < ', mso_date_convert('Y-m-d H:i:s', date('Y-m-d H:i:s'))); $query = $CI->db->get(); $data = array(); if ($query->num_rows() > 0) { $pages = $query->result_array(); foreach ($pages as $key => $page) { $d = (int) mso_date_convert('d', $page['page_date_publish']); $data[$d] = getinfo('site_url') . 'archive/' . $year . '/' . $month . '/' . $d; } /* $data = array( 3 => 'http://your-site.com/news/article/2006/03/', 7 => 'http://your-site.com/news/article/2006/07/" title="123', 26 => 'http://your-site.com/news/article/2006/26/' ); */ } $out = $CI->calendar->generate($year, $month, $data); $month_en = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); $day_en = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'); $out = str_replace($month_en, $arg['months'], $out); $out = str_replace($day_en, $arg['days'], $out); # если используется английский, то заменим большие названия на маленькие $out = str_replace(array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'), array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'), $out); $out = $arg['header'] . $arg['block_start'] . $out . $arg['block_end']; return $out; }
function mso_remote_f_getpost($post) { if (!isset($post['remote_page_id']) or !$post['remote_page_id']) { return 'ERROR: missing arguments'; } require_once getinfo('common_dir') . 'page.php'; require_once getinfo('common_dir') . 'inifile.php'; // функции для работы с ini-файлом // удалим хуки для текста - должно отдаваться как в базе mso_remove_hook('content'); mso_remove_hook('content_auto_tag'); mso_remove_hook('content_balance_tags'); mso_remove_hook('content_out'); mso_remove_hook('content_complete'); $par = array('custom_type' => 'home', 'pagination' => false, 'content' => true, 'work_cut' => false, 'type' => false, 'page_id' => $post['remote_page_id'], 'date_now' => false, 'page_status' => false, 'page_id_autor' => $post['remote_users_id'], 'all_fields' => true); // если юзеру разрешено редактировать чужие страницы, то 'page_id_autor' сбрасываем // иначе только свои страницы можно загружать if (mso_check_user_password($post['remote_users_login'], $post['remote_users_password'], 'admin_page_edit_other')) { $par['page_id_autor'] = false; } $pages = mso_get_pages($par, $pagination); // получим странички $out = ''; if ($pages) { foreach ($pages as $page) { foreach ($page as $p_name => $p_val) { if ($p_name == 'page_categories_detail') { continue; } elseif ($p_name == 'users_description') { continue; } elseif ($p_name == 'users_avatar_url') { continue; } elseif ($p_name == 'users_login') { continue; } elseif ($p_name == 'page_content') { $p_val = str_replace("\n", '!RMTNR!', $p_val); } elseif ($p_name == 'page_categories') { // это массив, где хранятся id рубрик $p_val = implode(" ", $p_val); } elseif ($p_name == 'page_tags') { // это массив, где хранятся имена меток $p_val = implode('!RMTNR!', $p_val); } elseif ($p_name == 'page_meta') { // это массивы в массиве $pm = ''; foreach ($p_val as $page_meta_key => $page_meta_val) { $pm .= '!RMTMETA!' . $page_meta_key . '=' . implode('!RMTNR!', $page_meta_val); } $p_val = $pm; } elseif ($p_name == 'page_date_publish') { //page_date_publish=2009-01-05 22:27:22 $out .= NR . 'page_date_publish_year=' . mso_date_convert('Y', $p_val, false); $out .= NR . 'page_date_publish_mon=' . mso_date_convert('m', $p_val, false); $out .= NR . 'page_date_publish_day=' . mso_date_convert('d', $p_val, false); $out .= NR . 'page_date_publish_hour=' . mso_date_convert('H', $p_val, false); $out .= NR . 'page_date_publish_min=' . mso_date_convert('i', $p_val, false); $out .= NR . 'page_date_publish_sec=' . mso_date_convert('s', $p_val, false); } elseif (is_array($p_val)) { continue; } $out .= NR . $p_name . '=' . $p_val; } } # нужно передать и все метаполя, которые в шаблоне и admin_page/meta.ini. # Они могут быть пустыми, поэтому их нет в page_meta $all = mso_get_ini_file(getinfo('admin_plugins_dir') . 'admin_page/meta.ini'); if (file_exists(getinfo('template_dir') . 'meta.ini')) { $meta_templ = mso_get_ini_file(getinfo('template_dir') . 'meta.ini'); if ($meta_templ) { $all = array_merge($all, $meta_templ); } } $pm = ''; foreach ($all as $key => $val) { $pm .= '!RMTMETA!' . $key . '=' . _mso_implode($val); } $out .= NR . 'page_meta_template=' . $pm; } else { return 'ERROR: no page'; } return trim($out); }
?> <item> <title><![CDATA[<?php echo xml_convert(strip_tags($page_title)); ?> ]]></title> <link><?php echo getinfo('siteurl') . 'page/' . mso_slug($page_slug); ?> </link> <guid><?php echo getinfo('siteurl') . 'page/' . mso_slug($page_slug); ?> </guid> <pubDate><?php echo date('D, d M Y H:i:s ' . $time_zone, strtotime(mso_date_convert('Y-m-d H:i:s', $page_date_publish))); ?> </pubDate> <?php echo mso_page_cat_link($page_categories, ", ", '<category><![CDATA[', ']]></category>' . "\n", false, 'category', false); ?> <description><![CDATA[<?php echo mso_page_content($page_content) . mso_page_comments_link($page_comment_allow, $page_slug, ' ' . tf('Обсудить'), '', '', false); ?> ]]></description> </item> <?php } ?> </channel> </rss>
function _time_zone_current_time() { return '<br>' . t('Время сервера:') . ' <strong>' . date('H:i:s Y-m-d') . '</strong>' . '<br>' . t('С учётом поправки:') . ' <strong>' . mso_date_convert('H:i:s Y-m-d', date('Y-m-d H:i:s')) . '</strong>'; }
// теперь получаем сами записи $CI->db->from('guestbook'); $CI->db->where('guestbook_approved', '1'); $CI->db->order_by('guestbook_date', 'desc'); if ($pag and $offset) { $CI->db->limit($pag['limit'], $offset); } else { $CI->db->limit($pag['limit']); } $query = $CI->db->get(); if ($query->num_rows() > 0) { $books = $query->result_array(); $out = ''; foreach ($books as $book) { if (is_login()) { $tl = '<br><a href="' . getinfo('siteurl') . 'admin/guestbook/editone/' . $book['guestbook_id'] . '">' . t('Редактировать') . '</a>'; } else { $tl = ''; } // pr($book); $out .= '<a id="guestbook-' . $book['guestbook_id'] . '"></a>'; $out .= str_replace(array('[id]', '[ip]', '[browser]', '[date]', '[name]', '[text]', '[title]', '[email]', '[icq]', '[site]', '[phone]', '[custom1]', '[custom2]', '[custom3]', '[custom4]', '[custom5]'), array($book['guestbook_id'], $book['guestbook_ip'], $book['guestbook_browser'], mso_date_convert('Y-m-d H:i:s', $book['guestbook_date']), htmlspecialchars($book['guestbook_name']), str_replace("\n", "<br>", htmlspecialchars($book['guestbook_text']) . $tl), htmlspecialchars($book['guestbook_title']), htmlspecialchars($book['guestbook_email']), htmlspecialchars($book['guestbook_icq']), htmlspecialchars($book['guestbook_site']), htmlspecialchars($book['guestbook_phone']), htmlspecialchars($book['guestbook_custom1']), htmlspecialchars($book['guestbook_custom2']), htmlspecialchars($book['guestbook_custom3']), htmlspecialchars($book['guestbook_custom4']), htmlspecialchars($book['guestbook_custom5'])), $options['format']); } if ($out) { echo $options['start'] . $out . $options['end']; } } // здесь пагинация mso_hook('pagination', $pag); # конечная часть шаблона require getinfo('template_dir') . 'main-end.php';
} $offset = $current_paged * $pag['limit'] - $pag['limit']; } else { $pag = false; } // теперь получаем сами записи $CI->db->from('guestbook'); $CI->db->order_by('guestbook_date', 'desc'); if ($pag and $offset) { $CI->db->limit($pag['limit'], $offset); } else { $CI->db->limit($pag['limit']); } $query = $CI->db->get(); if ($query->num_rows() > 0) { $books = $query->result_array(); foreach ($books as $book) { if ($book['guestbook_approved']) { $approved = ''; } else { $approved = '<a title="' . t('Редактировать') . '" style="color: red" href="' . getinfo('site_admin_url') . 'guestbook/editone/' . $book['guestbook_id'] . '">' . t('Ожидает одобрения!') . '</a><br><br>'; } $CI->table->add_row('<a title="' . t('Редактировать') . '" href="' . getinfo('site_admin_url') . 'guestbook/editone/' . $book['guestbook_id'] . '">' . $book['guestbook_id'] . '</a>', $approved . mso_date_convert('Y-m-d H:i:s', $book['guestbook_date']) . '<br><br>' . $book['guestbook_ip'] . '<br><br>' . $book['guestbook_browser'], htmlspecialchars($book['guestbook_name']), mso_str_word(str_replace("\n", "<br>", htmlspecialchars($book['guestbook_text'])), 30), htmlspecialchars($book['guestbook_title']), htmlspecialchars($book['guestbook_email']), htmlspecialchars($book['guestbook_icq']), htmlspecialchars($book['guestbook_site']), htmlspecialchars($book['guestbook_phone']), htmlspecialchars($book['guestbook_custom1']), htmlspecialchars($book['guestbook_custom2']), htmlspecialchars($book['guestbook_custom3']), htmlspecialchars($book['guestbook_custom4']), htmlspecialchars($book['guestbook_custom5'])); } echo '<br>'; mso_hook('pagination', $pag); echo $CI->table->generate(); // вывод подготовленной таблицы echo '<br>'; mso_hook('pagination', $pag); }
exit('No direct script access allowed'); } /* Файл: date-menu2.php Название: «Дата и меню2» Расположение: header Схематичный вид: дата | Меню 2 PHP-связи: > if ($fn = mso_fe('components/date-menu2/date-menu2.php')) require($fn); */ $pt = new Page_out(); // подготавливаем объект для вывода // вывод $pt->div_start('date-menu2', 'wrap'); $pt->div_start('r1'); echo mso_date_convert('D, j F Y г.', date('Y-m-d H:i:s'), true, 'Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье', 'января февраля марта апреля мая июня июля августа сентября октября ноября декабря'); $pt->div_end('r1'); $pt->div_start('r2'); if ($fn = mso_fe('components/menu2/menu2.php')) { require $fn; } $pt->div_end('r2'); $pt->clearfix(); $pt->div_end('date-menu2', 'wrap'); # end file
$f_status_draft = $f_status_private = $f_status_publish = ''; if ($f_status == 'draft') { $f_status_draft = 'checked'; } elseif ($f_status == 'private') { $f_status_private = 'checked'; } else { $f_status_publish = 'checked'; } // ($f_status == 'publish') $name_submit = 'f_submit[' . $id . ']'; // дата публикации $f_date_change = ''; // сменить дату не нужно - будет время автоматом поставлено текущее $date_cur = strtotime($page_date_publish); $date_time = t('Сохранено:') . ' ' . $page_date_publish; $date_time .= '<br>' . t('На блоге как:') . ' ' . mso_date_convert('Y-m-d H:i:s', $page_date_publish); $date_time .= '<br>' . t('Тек. время:') . ' ' . date('Y-m-d H:i:s'); $date_cur_y = date('Y', $date_cur); $date_cur_m = date('m', $date_cur); $date_cur_d = date('d', $date_cur); $tyme_cur_h = date('H', $date_cur); $tyme_cur_m = date('i', $date_cur); $tyme_cur_s = date('s', $date_cur); $date_all_y = array(); for ($i = 2005; $i < 2021; $i++) { $date_all_y[$i] = $i; } $date_all_m = array(); for ($i = 1; $i < 13; $i++) { $date_all_m[$i] = $i; }
function sitemap($arg = '') { if (mso_segment(2) == 'cat') { return sitemap_cat($arg); } global $MSO; // кэш строим по url, потому что у он меняется от пагинации $cache_key = 'sitemap' . serialize($MSO->data['uri_segment']); $k = mso_get_cache($cache_key); if ($k) { return $k; } // да есть в кэше $options = mso_get_option('plugin_sitemap', 'plugins', array()); // получаем опции if (!isset($options['limit'])) { $options['limit'] = 30; } else { $options['limit'] = (int) $options['limit']; } if ($options['limit'] < 2) { $options['limit'] = 30; } $out = ''; // параметры для получения страниц $par = array('limit' => $options['limit'], 'custom_type' => 'home', 'content' => false, 'cat_order' => 'category_id_parent', 'cat_order_asc' => 'asc'); if ($f = mso_page_foreach('sitemap-mso-get-pages')) { require $f; } $pages = mso_get_pages($par, $pagination); // получим все if ($pages) { $out .= '<div class="page_content"><div class="sitemap">' . NR . mso_hook('sitemap_do'); $out .= '<div class="sitemap-link"><a href="' . getinfo('siteurl') . 'sitemap/cat">' . tf('Группировка по рубрикам') . '</a>' . NR . '</div>'; $first = true; foreach ($pages as $page) { $date = mso_date_convert('m/Y', $page['page_date_publish']); if ($first) { $out .= '<h3>' . $date . '</h3>' . NR . '<ul>' . NR; $first = false; } elseif ($date1 != $date) { $out .= '</ul>' . NR . '<h3>' . $date . '</h3>' . NR . '<ul>' . NR; } $slug = mso_slug($page['page_slug']); $out .= '<li>' . mso_date_convert('d', $page['page_date_publish']) . ': <a href="' . getinfo('siteurl') . 'page/' . $slug . '" title="' . htmlspecialchars($page['page_title']) . '">' . htmlspecialchars($page['page_title']) . '</a>'; if ($page['page_categories']) { $out .= ' <span>(' . mso_page_cat_link($page['page_categories'], ' → ', '', '', false) . ')</span>'; } # синонимы ссылок /* . ' (' . '<a href="' . getinfo('siteurl') . $slug . '" title="slug: ' . $slug . '">slug</a>, ' . '<a href="' . getinfo('siteurl') . 'page/' . $page['page_id'] . '" title="page: ' . $page['page_id'] . '">page: ' . $page['page_id'] . '</a>, ' . '<a href="' . getinfo('siteurl') . $page['page_id'] . '" title="id: ' . $page['page_id'] . '">id: ' . $page['page_id'] . '</a>)' */ # /синонимы ссылок $out .= '</li>' . NR; $date1 = $date; } $out .= '</ul>' . NR . mso_hook('sitemap_posle') . '</div></div>' . NR; } $pagination['type'] = ''; ob_start(); mso_hook('pagination', $pagination); $out .= ob_get_contents(); ob_end_clean(); mso_add_cache($cache_key, $out); // сразу в кэш добавим return $out; }
} $cats = str_replace(' ', ', ', trim($cats)); foreach ($page['page_tags'] as $val) { $tags .= '<a href="' . $view_url_tag . $val . '">' . $val . '</a> '; } $tags = str_replace(' ', ', ', trim($tags)); $title = '<a class="title" href="' . $this_url . $page['page_id'] . '">' . $page['page_title'] . '</a>' . ' [<a href="' . $view_url . $page['page_slug'] . '" target="_blank">' . t('Просмотр') . '</a>]'; if ($cats) { $title .= '<br>' . t('Рубрика:') . ' ' . $cats; } if ($tags) { $title .= '<br>' . t('Метки:') . ' ' . $tags; } $title .= '<p class="admin_page_qhint"><small>' . $qhint . '</small></p>'; // $date_p = '<span title="Дата и время сохранения записи">' . $page['page_date_publish'] . '</span>'; // это время публикации как установлено на сервере $date_p = '<span title="' . t('Дата отображения на блоге с учетом временной поправки') . '">' . mso_date_convert('Y-m-d H:i:s', $page['page_date_publish']) . '</span>'; $CI->table->add_row($page['page_id'], $title, $date_p, $page['page_type_name'], $page['page_status'], $page['users_nik']); } $pagination['type'] = ''; $pagination['range'] = 10; mso_hook('pagination', $pagination); echo mso_load_jquery('jquery.tablesorter.js') . ' <script> $(function() { $("table.tablesorter").tablesorter(); }); </script>'; echo $CI->table->generate(); // вывод подготовленной таблицы // добавляем форму для удаления записи $all_pages = form_dropdown('f_page_delete', $all_pages, -1, '');
function get_formats_args($key, $numarg) { if (isset($this->formats[$key][$numarg - 1])) { // в форматировании могут встречаться специальные замены $f = $this->formats[$key][$numarg - 1]; // пока указываем некоторые, потом нужно будет подумать как сделать замены по всем ключам val $f = str_replace('[page_count_comments]', $this->val('page_count_comments'), $f); $f = str_replace('[page_date_publish]', $this->val('page_date_publish'), $f); // [page_date_publish_iso] формирует дату согласно ISO8601 $dp = mso_date_convert(DATE_ISO8601, $this->val('page_date_publish'), false, false, false); $f = str_replace('[page_date_publish_iso]', $dp, $f); if ($this->val('page_last_modified')) { $f = str_replace('[page_last_modified]', $this->val('page_last_modified'), $f); $dp = mso_date_convert(DATE_ISO8601, $this->val('page_last_modified'), false, false, false); $f = str_replace('[page_last_modified_iso]', $dp, $f); } return $f; } else { return ''; // нет ключа } }
$id = $row['comusers_id']; $CI->table->add_row('ID', $id); _mso_add_row(t('Ник'), 'f_nik', $row['comusers_nik']); _mso_add_row(t('E-mail'), 'f_email', $row['comusers_email']); _mso_add_row(t('ICQ'), 'f_icq', $row['comusers_icq']); _mso_add_row(t('Сайт'), 'f_url', $row['comusers_url']); _mso_add_row(t('Twitter'), 'f_msn', $row['comusers_msn']); _mso_add_row(t('Jabber'), 'f_jaber', $row['comusers_jaber']); _mso_add_row(t('Skype'), 'f_skype', $row['comusers_skype']); _mso_add_row(t('URL аватара'), 'f_avatar_url', $row['comusers_avatar_url']); $CI->table->add_row(t('Описание'), '<textarea name="f_description" cols="90" rows="3">' . htmlspecialchars($row['comusers_description']) . '</textarea>'); $CI->table->add_row(t('Примечание админа'), '<textarea name="f_admin_note" cols="90" rows="3">' . htmlspecialchars($row['comusers_admin_note']) . '</textarea>'); // ДР это три поля $y = mso_date_convert('Y', $row['comusers_date_birth']); $m = mso_date_convert('n', $row['comusers_date_birth']); $d = mso_date_convert('j', $row['comusers_date_birth']); $y_r = array_flip(range(1960, 2008)); foreach ($y_r as $key => $val) { $y_r[$key] = $key; } $m_r = array_flip(range(1, 12)); foreach ($m_r as $key => $val) { $m_r[$key] = $key; } $d_r = array_flip(range(1, 31)); foreach ($d_r as $key => $val) { $d_r[$key] = $key; } $CI->table->add_row(t('Дата рождения'), t('Год:') . ' ' . form_dropdown('f_date_birth_y', $y_r, $y, ' style="width: 100px;" ') . ' ' . t('Месяц:') . ' ' . form_dropdown('f_date_birth_m', $m_r, $m, ' style="width: 100px;" ') . ' ' . t('День:') . ' ' . form_dropdown('f_date_birth_d', $d_r, $d, ' style="width: 100px;" ')); ###!!! что за уведомления? для чего??? $CI->table->add_row(t('Уведомления'), form_dropdown('f_notify', array('0' => t('Без уведомлений'), '1' => t('Подписаться')), $row['comusers_notify'], ' style="width: 300px;" '));
<link><?php echo getinfo('siteurl') . 'page/' . mso_slug($page_slug); ?> #comment-<?php echo $comments_id; ?> </link> <guid><?php echo getinfo('siteurl') . 'page/' . mso_slug($page_slug); ?> #comment-<?php echo $comments_id; ?> </guid> <pubDate><?php echo date('D, d M Y H:i:s ' . $time_zone, strtotime(mso_date_convert('Y-m-d H:i:s', $comments_date))); ?> </pubDate> <author>none@none.com (<?php echo xml_convert(strip_tags($users_nik . $comments_author_name . $comusers_nik)); ?> )</author> <description><![CDATA[<?php echo $comments_content; ?> ]]></description> </item> <?php } ?> </channel>
if ($f = mso_page_foreach('page-comments')) { require $f; // подключаем кастомный вывод continue; // следующая итерация } extract($comment); //pr($comment); if ($users_id) { $class = ' class="users"'; } elseif ($comusers_id) { $class = ' class="comusers"'; } else { $class = ' class="anonim"'; } $comments_date = mso_date_convert('Y-m-d в H:i:s', $comments_date); $comment_info = ''; echo NR . '<li' . $class . '>'; $comment_info .= '<span class="url">' . $comments_url . '</span>'; if ($comusers_url and mso_get_option('allow_comment_comuser_url', 'general', 0)) { $comment_info .= ' <a href="' . $comusers_url . '" rel="nofollow" class="outlink"><img src="' . getinfo('template_url') . 'images/outlink.png" width="16" height="16" alt="link" title="' . tf('Сайт комментатора') . '"></a>'; } $comment_info .= ' | <span class="date"><a href="#comment-' . $comments_id . '" id="comment-' . $comments_id . '">' . $comments_date . '</a></span>'; if ($edit_link) { $comment_info .= ' | <a href="' . $edit_link . $comments_id . '">edit</a>'; } if (!$comments_approved) { $comment_info .= ' | ' . tf('Ожидает модерации'); } if ($f = mso_page_foreach('page-comments-out')) { require $f;
function guestbook_widget_custom($options = array(), $num = 1) { // кэш $cache_key = 'guestbook_widget_custom' . serialize($options) . $num; $k = mso_get_cache($cache_key); if ($k) { return $k; } // да есть в кэше $out = ''; if (!isset($options['header'])) { $options['header'] = ''; } if (!isset($options['limit'])) { $options['limit'] = 10; } if (!isset($options['max-word'])) { $options['max-word'] = 20; } if (!isset($options['text-do'])) { $options['text-do'] = ''; } if (!isset($options['text-posle'])) { $options['text-posle'] = ''; } if (!isset($options['format-date'])) { $options['format-date'] = 'Y-m-d H:i:s'; } if (!isset($options['format'])) { $options['format'] = '<p><b><a href="[url]">[name]</a></b></p> <p>[text]<br><i>[date]</i></p> <hr>'; } $options_guestbook = mso_get_option('plugin_guestbook', 'plugins', array()); if (!isset($options_guestbook['slug'])) { $options_guestbook['slug'] = 'guestbook'; } $CI =& get_instance(); $CI->db->from('guestbook'); $CI->db->where('guestbook_approved', '1'); $CI->db->order_by('guestbook_date', 'desc'); $CI->db->limit($options['limit']); $query = $CI->db->get(); if ($query->num_rows() > 0) { $books = $query->result_array(); foreach ($books as $book) { // pr($book); $text = str_replace("\n", "<br>", htmlspecialchars($book['guestbook_text'])); if ($options['max-word']) { $text = mso_str_word($text, $options['max-word']); } $out .= str_replace(array('[id]', '[ip]', '[browser]', '[date]', '[name]', '[text]', '[title]', '[email]', '[icq]', '[site]', '[phone]', '[custom1]', '[custom2]', '[custom3]', '[custom4]', '[custom5]', '[url]'), array($book['guestbook_id'], $book['guestbook_ip'], $book['guestbook_browser'], mso_date_convert($options['format-date'], $book['guestbook_date']), htmlspecialchars($book['guestbook_name']), $text, htmlspecialchars($book['guestbook_title']), htmlspecialchars($book['guestbook_email']), htmlspecialchars($book['guestbook_icq']), htmlspecialchars($book['guestbook_site']), htmlspecialchars($book['guestbook_phone']), htmlspecialchars($book['guestbook_custom1']), htmlspecialchars($book['guestbook_custom2']), htmlspecialchars($book['guestbook_custom3']), htmlspecialchars($book['guestbook_custom4']), htmlspecialchars($book['guestbook_custom5']), getinfo('siteurl') . $options_guestbook['slug'] . '#guestbook-' . $book['guestbook_id']), $options['format']); } } if ($out) { $out = $options['header'] . $options['text-do'] . $out . $options['text-posle']; } mso_add_cache($cache_key, $out); // сразу в кэш добавим return $out; }