Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // ЭЖ-5
- // модуль "Новостная лента"
- // Титоров Даниил, Багин Влад
- define('PAGE','news');
- require_once 'includes/general.php';
- include("_amur.php");
- if($user->r > 2){ $user->r = 1; }
- // ДОБАВЛЕНИЕ НОВОСТИ
- if(isset($_REQUEST['add_news'])){
- $name = trim($_POST['name']);
- $info = f::replaceImgInRef($_POST['info']);
- $tags = news::get_tag_info();
- if(isset($_POST['tar'])){$tar = intval($_POST['tar']);} else { $tar = 0; }
- $dirname=$tags['base_head'];
- $schooldata='<br>'.$tags['base_fullname'].'; <br> Адрес: '.$tags['base_adress'].'; <br> Телефон: '.$tags['base_phone_rec'];
- $info=str_replace('[DIRNAME]', $dirname, $info);
- $info=str_replace('[SCHOOL_DATA]', $schooldata, $info);
- $date_start = ($_POST['date_start']);
- $date_start = f::df($date_start,'Y-m-d');
- $author = $user->id;
- $z = 0;
- if($name == ""){ $mess = _('Заголовок не может быть пустым'); $z++; f::error($mess);}
- if ($z==0){
- // новость назначена всем учителям или родитедям
- if($tar>=-2 && $tar<=0 || $tar==-4){
- $add_news = "INSERT INTO `n_news` (
- `id_news`, `news_start`, `news_auth`, `news_name`, `news_news`, `news_group`, `news_sms`
- ) VALUES (null, ?, ?i, ?, ?, ?i, '1')";
- $data = array( $date_start, $user->id, $name, $info, $tar );
- $id_news = $db->query($add_news, $data, 'id');
- }
- // новость назанчена одному или несколькким классам
- if(isset($_REQUEST['tar_cl']) && !isset($_REQUEST['students']) ){
- $cl = array_values($_REQUEST['tar_cl']);
- $n = count($cl);
- for($j=0;$j<$n;$j++){
- $id_cl = $cl[$j];
- $add_news = "INSERT INTO `n_news` (
- `id_news`, `news_start`, `news_auth`, `news_name`, `news_news`, `news_group`, `news_sms`
- ) VALUES (null, ?, ?i, ?, ?, ?i, '1')";
- $data = array( $date_start, $user->id, $name, $info, $id_cl );
- $id_news = $db->query($add_news, $data, 'id');
- }
- }
- // новость назначена отдельным ученикам
- if(isset($_REQUEST['students']) && $_REQUEST['students']!=null){
- $add_news = "INSERT INTO `n_news` (
- `id_news`, `news_start`, `news_auth`, `news_name`, `news_news`, `news_group`, `news_sms`
- ) VALUES (null, ?, ?i, ?, ?, ?i, '1')";
- $data = array( $date_start, $user->id, $name, $info, $tar );
- $id_news = $db->query($add_news, $data, 'id');
- $st = array_values($_REQUEST['students']);
- $n = count($st);
- for($j=0;$j<$n;$j++){
- $add_st = 'INSERT INTO `n_group` ( `id_group`, `group_news`, `group_user` )
- VALUES (null, ?i, ?i)';
- $data = array( $id_news, $st[$j] );
- $result = $db->query($add_st, $data);
- }
- }
- }
- }
- // УДАЛЕНИЕ НОВОСТИ
- if(isset($_REQUEST['delete_news'])){
- $id_news = intval($_REQUEST['id_news']);
- $sql_del1 = "DELETE FROM `n_news` WHERE id_news = ?i ";
- $result = $db->query( $sql_del1, array( $id_news ) );
- $sql_del2 = "DELETE FROM `n_group` WHERE group_news = ?i ";
- $result = $db->query( $sql_del2, array( $id_news ) );
- }
- // ИЗМЕНЕНИЕ НОВОСТИ
- if(isset($_REQUEST['change_news'])){
- $id_news = intval($_REQUEST['id_news']);
- $name = ($_POST['name']);
- $info = f::replaceImgInRef($_POST['info']);
- $date_start = ($_POST['date_start']);
- $date_start = f::df($date_start,'Y-m-d');
- $author = $user->id;
- // проверка на совпадение
- $z = 0;
- $sql_z = 'SELECT * FROM `n_news`
- WHERE news_name = ?
- AND news_start = ?
- AND news_auth = ?
- AND id_news <> ?i
- ';
- $data = array( $name, $date_start, $user->id, $id_news);
- $n = $db->query($sql_z, $data, 'el');
- if($n > 0) { $z++; $mess = _("Такая новость уже существует."); f::error($mess); }
- if($name == null) { $z++; $mess = _("Нет названия новости."); f::error($mess); }
- if($z == 0){
- $upd_news = "UPDATE `n_news` SET
- news_start = ?,
- news_name = ?,
- news_news = ?
- WHERE id_news = ?i
- ";
- $data = array( $date_start, $name, $info, $id_news );
- $id_news = $db->query($upd_news, $data);
- $mess = _('Новость изменена. При изменении новости меняется только само содержание новости, но не группа пользователей, которым она предназначена.'); f::error($mess);
- }
- }
- f::datepicker();
- f::tinymce('info');
- f::js('modules/news/news.js');
- // f::js('lib/sorttable.js');
- $smarty->assign('news_count',news::get_news_count() );
- // $smarty->assign('news',(news::get_news()));
- $class = register::get_classes();
- $class_mass = array();
- foreach( $class as $v){
- $id_class = $v['id_class'];
- $class_number = $v['class_number'];
- $class_letter = $v['class_letter'];
- $class_name = $v['class_name'];
- if ($class_name != null) {
- if ($class_number != 0) { $class_name .= ' ('.$class_number.')'; }
- } else {
- $class_name = $class_number.' «'.$class_letter.'»';
- }
- $class_mass[$id_class] = $class_name;
- }
- $pagination_data=news::get_news();
- // подменяем имя для кого предназначена новость
- foreach($pagination_data as $k=>$v)
- {
- $gr = $pagination_data[$k]['news_group'];
- $gr_name = '';
- if ($gr==0){ $gr_name = _('всем'); }
- if ($gr==-1){ $gr_name = _('педагогам'); }
- if ($gr==-2){ $gr_name = _('всем обучающимся'); }
- if ($gr==-3){ $gr_name = _('группе'); }
- if ($gr==-4){ $gr_name = _('родителям'); }
- if ($gr>0 && isset($class_mass[$gr])){ $gr_name = $class_mass[$gr]; }
- $pagination_data[$k]['news_group'] = $gr_name;
- }
- //заголовки полей
- $pagination_head=array(
- 'news_start'=>_('Дата').':',
- 'news_name'=>_('Новость').':',
- 'name'=>_('Автор').':',
- 'news_group'=>_('Предназначена').':'
- );
- //список полей в которых надо переформатировать дату
- $pagination_date_format=array('news_start'=>'d.m.Y');
- pagination::set('news',$pagination_data,$pagination_head,$pagination_date_format);
- $smarty->assign('content','news/news.tpl');
- $smarty->assign('help','newsHelp_p1');
- $smarty->assign('help_h',_('модуль «Лента новостей»'));
- $smarty->display('general.tpl');
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement