Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.41 KB | None | 0 0
  1. <?php
  2. // ЭЖ-5
  3. // модуль "Новостная лента"
  4. // Титоров Даниил, Багин Влад
  5.  
  6. define('PAGE','news');
  7. require_once 'includes/general.php';
  8.    
  9. include("_amur.php");
  10. if($user->r > 2){ $user->r = 1; }
  11.  
  12. // ДОБАВЛЕНИЕ НОВОСТИ
  13. if(isset($_REQUEST['add_news'])){
  14.     $name = trim($_POST['name']);
  15.     $info = f::replaceImgInRef($_POST['info']);
  16.     $tags = news::get_tag_info();
  17.     if(isset($_POST['tar'])){$tar = intval($_POST['tar']);} else { $tar = 0; }
  18.     $dirname=$tags['base_head'];
  19.     $schooldata='<br>'.$tags['base_fullname'].'; <br> Адрес: '.$tags['base_adress'].'; <br> Телефон: '.$tags['base_phone_rec'];
  20.     $info=str_replace('[DIRNAME]', $dirname, $info);
  21.     $info=str_replace('[SCHOOL_DATA]', $schooldata, $info);
  22.    
  23.    
  24.     $date_start = ($_POST['date_start']);
  25.     $date_start = f::df($date_start,'Y-m-d');
  26.     $author     = $user->id;
  27.    
  28.     $z = 0;
  29.     if($name == ""){ $mess = _('Заголовок не может быть пустым');  $z++; f::error($mess);}
  30.  
  31.     if ($z==0){
  32.         // новость назначена всем учителям или родитедям
  33.         if($tar>=-2 && $tar<=0 || $tar==-4){
  34.             $add_news = "INSERT INTO `n_news` (
  35.                                 `id_news`, `news_start`, `news_auth`, `news_name`, `news_news`, `news_group`, `news_sms`
  36.                             ) VALUES (null, ?, ?i, ?, ?, ?i, '1')";
  37.             $data = array( $date_start, $user->id, $name, $info, $tar );
  38.             $id_news = $db->query($add_news, $data, 'id');
  39.         }
  40.            
  41.         // новость назанчена одному или несколькким классам
  42.         if(isset($_REQUEST['tar_cl']) && !isset($_REQUEST['students']) ){
  43.             $cl = array_values($_REQUEST['tar_cl']);
  44.             $n = count($cl);
  45.             for($j=0;$j<$n;$j++){
  46.                 $id_cl = $cl[$j];
  47.                 $add_news = "INSERT INTO `n_news` (
  48.                         `id_news`, `news_start`, `news_auth`, `news_name`, `news_news`, `news_group`, `news_sms`
  49.                         ) VALUES (null, ?, ?i, ?, ?, ?i, '1')";
  50.                 $data = array( $date_start, $user->id, $name, $info, $id_cl );
  51.                 $id_news = $db->query($add_news, $data, 'id');
  52.             }
  53.         }
  54.            
  55.         // новость назначена отдельным ученикам
  56.         if(isset($_REQUEST['students']) && $_REQUEST['students']!=null){
  57.             $add_news = "INSERT INTO `n_news` (
  58.                             `id_news`, `news_start`, `news_auth`, `news_name`, `news_news`, `news_group`, `news_sms`
  59.                             ) VALUES (null, ?, ?i, ?, ?, ?i, '1')";
  60.             $data = array( $date_start, $user->id, $name, $info, $tar );
  61.             $id_news = $db->query($add_news, $data, 'id');
  62.                
  63.             $st = array_values($_REQUEST['students']);
  64.             $n =  count($st);
  65.             for($j=0;$j<$n;$j++){
  66.                 $add_st =   'INSERT INTO `n_group` ( `id_group`, `group_news`, `group_user` )
  67.                                 VALUES (null, ?i, ?i)';
  68.                 $data = array( $id_news, $st[$j] );
  69.                 $result = $db->query($add_st, $data);
  70.             }
  71.         }
  72.     }  
  73. }
  74.  
  75. // УДАЛЕНИЕ НОВОСТИ
  76. if(isset($_REQUEST['delete_news'])){
  77.     $id_news = intval($_REQUEST['id_news']);
  78.     $sql_del1 = "DELETE FROM `n_news` WHERE id_news = ?i ";
  79.     $result = $db->query( $sql_del1, array( $id_news ) );
  80.    
  81.     $sql_del2 = "DELETE FROM `n_group` WHERE group_news = ?i ";
  82.     $result = $db->query( $sql_del2, array( $id_news ) );
  83. }
  84.  
  85. // ИЗМЕНЕНИЕ НОВОСТИ
  86. if(isset($_REQUEST['change_news'])){
  87.    
  88.     $id_news = intval($_REQUEST['id_news']);
  89.     $name = ($_POST['name']);
  90.     $info = f::replaceImgInRef($_POST['info']);
  91.    
  92.     $date_start = ($_POST['date_start']);
  93.     $date_start = f::df($date_start,'Y-m-d');
  94.     $author   = $user->id;
  95.    
  96.     // проверка на совпадение
  97.     $z = 0;
  98.     $sql_z =    'SELECT * FROM `n_news`
  99.                     WHERE  news_name = ?
  100.                     AND news_start = ?
  101.                     AND news_auth = ?
  102.                     AND id_news <> ?i
  103.                 ';
  104.     $data = array( $name, $date_start, $user->id, $id_news);
  105.     $n = $db->query($sql_z, $data, 'el');
  106.     if($n > 0)  { $z++; $mess = _("Такая новость уже существует."); f::error($mess); }
  107.     if($name == null) { $z++; $mess  = _("Нет названия новости."); f::error($mess); }    
  108.    
  109.     if($z == 0){
  110.         $upd_news = "UPDATE `n_news` SET
  111.                         news_start  = ?,
  112.                         news_name   = ?,
  113.                         news_news   = ?
  114.                     WHERE id_news = ?i
  115.                     ";
  116.         $data = array( $date_start, $name, $info, $id_news );
  117.         $id_news = $db->query($upd_news, $data);   
  118.        
  119.         $mess = _('Новость изменена. При изменении новости меняется только само содержание новости, но не группа пользователей, которым она предназначена.');  f::error($mess);
  120.     }
  121. }
  122.  
  123. f::datepicker();
  124. f::tinymce('info');
  125. f::js('modules/news/news.js');
  126. // f::js('lib/sorttable.js');
  127.  
  128. $smarty->assign('news_count',news::get_news_count() );
  129. // $smarty->assign('news',(news::get_news()));
  130.  
  131. $class = register::get_classes();
  132. $class_mass = array();
  133. foreach( $class as $v){
  134.     $id_class   = $v['id_class'];
  135.     $class_number = $v['class_number'];
  136.     $class_letter = $v['class_letter'];
  137.     $class_name = $v['class_name'];
  138.                
  139.     if ($class_name != null) {
  140.             if ($class_number != 0) { $class_name .= ' ('.$class_number.')'; }
  141.         } else {
  142.         $class_name = $class_number.' &laquo;'.$class_letter.'&raquo;';
  143.     }
  144.     $class_mass[$id_class] = $class_name;
  145. }
  146.  
  147.  
  148. $pagination_data=news::get_news();
  149. // подменяем имя для кого предназначена новость
  150. foreach($pagination_data as $k=>$v)
  151.     {
  152.         $gr = $pagination_data[$k]['news_group'];
  153.         $gr_name = '';
  154.         if ($gr==0){ $gr_name = _('всем'); }
  155.         if ($gr==-1){ $gr_name = _('педагогам'); }
  156.         if ($gr==-2){ $gr_name = _('всем обучающимся'); }
  157.         if ($gr==-3){ $gr_name = _('группе'); }
  158.         if ($gr==-4){ $gr_name = _('родителям'); }
  159.         if ($gr>0 && isset($class_mass[$gr])){ $gr_name = $class_mass[$gr]; }
  160.         $pagination_data[$k]['news_group'] = $gr_name;
  161.     }
  162.  
  163. //заголовки полей
  164. $pagination_head=array(
  165.         'news_start'=>_('Дата').':',
  166.         'news_name'=>_('Новость').':',
  167.         'name'=>_('Автор').':',
  168.         'news_group'=>_('Предназначена').':'
  169. );
  170. //список полей в которых надо переформатировать дату
  171. $pagination_date_format=array('news_start'=>'d.m.Y');
  172. pagination::set('news',$pagination_data,$pagination_head,$pagination_date_format);
  173.  
  174. $smarty->assign('content','news/news.tpl');
  175.    
  176. $smarty->assign('help','newsHelp_p1');
  177. $smarty->assign('help_h',_('модуль «Лента новостей»'));
  178. $smarty->display('general.tpl');
  179. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement