Ejemplo n.º 1
0
 /**
  * Системный 301 редирект
  *
  * @param  string $url  ссылка, на которую надо перейти
  * @param  string $msg  текст сообщения, отображаемый после перехода
  * @param  string $type тип перехода - ошибка, предупреждение, сообщение и т.д.
  * @return void
  */
 public function redirect($url, $msg = '', $type = 'success')
 {
     $iFilter = joosInputFilter::instance();
     $url = $iFilter->process($url);
     empty($msg) ? null : joosFlashMessage::add($iFilter->process($msg), $type);
     $url = preg_split("/[\r\n]/", $url);
     $url = $url[0];
     if ($iFilter->badAttributeValue(array('href', $url))) {
         $url = JPATH_SITE;
     }
     if (headers_sent()) {
         echo "<script>document.location.href='{$url}';</script>\n";
     } else {
         !ob_get_level() ?: ob_end_clean();
         joosRequest::send_headers_by_code(301);
         joosRequest::send_headers("Location: " . $url);
     }
     exit;
 }
Ejemplo n.º 2
0
 public static function save($redirect = 0)
 {
     joosCSRF::check_code();
     $obj_data = joosAutoadmin::get_active_model_obj();
     $save_result = $obj_data->save($_POST);
     $option = joosRequest::param('option');
     if ($save_result !== true) {
         $errors = $obj_data->get_errors();
         joosFlashMessage::add($errors, 'success');
         joosAutoadmin::edit($obj_data, $obj_data);
         return;
     }
     switch ($redirect) {
         default:
         case 0:
             // просто сохранение
             joosRoute::redirect('index2.php?option=' . $option . '&menu=' . static::$active_menu, 'Всё ок!');
             break;
         case 1:
             // применить
             joosRoute::redirect('index2.php?option=' . $option . '&menu=' . static::$active_menu . '&task=edit&id=' . $obj_data->id, 'Всё ок, редактируем дальше');
             break;
         case 2:
             // сохранить и добавить новое
             joosRoute::redirect('index2.php?option=' . $option . '&menu=' . static::$active_menu . '&task=create', 'Всё ок, создаём новое');
             break;
     }
 }