コード例 #1
0
ファイル: glossary.php プロジェクト: anvnguyen/Goteo
 public function index()
 {
     // Términos por página
     $tpp = 5;
     // indice de letras
     $index = array();
     // sacamos todo el glosario
     $glossary = Model\Glossary::getAll();
     //recolocamos los post para la paginacion
     $p = 1;
     $page = 1;
     $posts = array();
     foreach ($glossary as $id => $post) {
         // tratar el texto para las entradas
         $post->text = str_replace(array('%SITE_URL%'), array(SITE_URL), $post->text);
         $posts[] = $post;
         // y la inicial en el indice
         $letra = \strtolower($post->title[0]);
         $index[$letra][] = (object) array('title' => $post->title, 'url' => '/glossary/?page=' . $page . '#term' . $post->id);
         $p++;
         if ($p > $tpp) {
             $p = 1;
             $page++;
         }
     }
     return new View('view/glossary/index.html.php', array('tpp' => $tpp, 'index' => $index, 'posts' => $posts));
 }
コード例 #2
0
ファイル: glossary.php プロジェクト: isbkch/Goteo
 public static function process($action = 'list', $id = null)
 {
     $errors = array();
     $url = '/admin/glossary';
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         $editing = false;
         if (!empty($_POST['id'])) {
             $post = Model\Glossary::get($_POST['id']);
         } else {
             $post = new Model\Glossary();
         }
         // campos que actualizamos
         $fields = array('id', 'title', 'text', 'media', 'legend');
         foreach ($fields as $field) {
             $post->{$field} = $_POST[$field];
         }
         // tratar la imagen y ponerla en la propiedad image
         if (!empty($_FILES['image_upload']['name'])) {
             $post->image = $_FILES['image_upload'];
             $editing = true;
         }
         // tratar las imagenes que quitan
         foreach ($post->gallery as $key => $image) {
             if (!empty($_POST["gallery-{$image->id}-remove"])) {
                 $image->remove('glossary');
                 unset($post->gallery[$key]);
                 if ($post->image == $image->id) {
                     $post->image = '';
                 }
                 $editing = true;
             }
         }
         if (!empty($post->media)) {
             $post->media = new Model\Project\Media($post->media);
         }
         /// este es el único save que se lanza desde un metodo process_
         if ($post->save($errors)) {
             if ($action == 'edit') {
                 Message::Info('El término se ha actualizado correctamente');
             } else {
                 Message::Info('Se ha añadido un nuevo término');
                 $id = $post->id;
             }
             $action = $editing ? 'edit' : 'list';
         } else {
             Message::Error(implode('<br />', $errors));
             Message::Error('Ha habido algun problema al guardar los datos');
         }
     }
     switch ($action) {
         case 'remove':
             // eliminar un término
             if (Model\Glossary::delete($id)) {
                 Message::Info('Término eliminado');
             } else {
                 Message::Error('No se ha podido eliminar el término');
             }
             break;
         case 'add':
             // nueva entrada con wisiwig
             // obtenemos datos basicos
             $post = new Model\Glossary();
             $message = 'Añadiendo un nuevo término';
             return new View('view/admin/index.html.php', array('folder' => 'glossary', 'file' => 'edit', 'action' => 'add', 'post' => $post, 'message' => $message));
             break;
         case 'edit':
             if (empty($id)) {
                 throw new Redirection('/admin/glossary');
                 break;
             } else {
                 $post = Model\Glossary::get($id);
                 if (!$post instanceof Model\Glossary) {
                     Message::Error('La entrada esta corrupta, contacte con nosotros.');
                     $action = 'list';
                     break;
                 }
             }
             $message = 'Editando un término existente';
             return new View('view/admin/index.html.php', array('folder' => 'glossary', 'file' => 'edit', 'action' => 'edit', 'post' => $post, 'message' => $message));
             break;
     }
     // lista de términos
     $posts = Model\Glossary::getAll();
     return new View('view/admin/index.html.php', array('folder' => 'glossary', 'file' => 'list', 'posts' => $posts));
 }