当前位置: 首页>>代码示例>>PHP>>正文


PHP Dispatcher::call方法代码示例

本文整理汇总了PHP中Dispatcher::call方法的典型用法代码示例。如果您正苦于以下问题:PHP Dispatcher::call方法的具体用法?PHP Dispatcher::call怎么用?PHP Dispatcher::call使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Dispatcher的用法示例。


在下文中一共展示了Dispatcher::call方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: action_comentar

 /**
  * Agregamos un comentario en la foto.
  * @param int $foto ID de la foto donde comentar.
  */
 public function action_comentar($foto)
 {
     // Verificamos el método de envio.
     if (Request::method() != 'POST') {
         Request::redirect('/foto/ver/' . $foto);
     }
     // Verifico esté conectado.
     if (!Usuario::is_login()) {
         $_SESSION['flash_error'] = 'Debes iniciar sessión para poder realizar comentarios.';
         Request::redirect('/usuario/login');
     }
     // Convertimos el foto a ID.
     $foto = (int) $foto;
     // Cargamos la foto.
     $model_foto = new Model_Foto($foto);
     // Verificamos exista.
     if (!is_array($model_foto->as_array())) {
         $_SESSION['flash_error'] = 'La foto que quiere comentar no se encuentra disponible.';
         Request::redirect('/foto/');
     }
     // Verifico se pueda comentar.
     if (!(Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_COMENTAR_CERRADO) || $model_foto->soporta_comentarios() && Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_COMENTAR))) {
         $_SESSION['post_comentario_error'] = 'No tienes permisos para realizar comentarios en esa foto.';
         Request::redirect('/foto/ver/' . $foto);
     }
     // Obtenemos el comentario.
     $comentario = isset($_POST['comentario']) ? $_POST['comentario'] : NULL;
     // Verificamos el formato.
     $comentario_clean = preg_replace('/\\[.*\\]/', '', $comentario);
     if (!isset($comentario_clean[20]) || isset($comentario[400])) {
         $_SESSION['post_comentario_error'] = 'El comentario debe tener entre 20 y 400 caracteres.';
         // Evitamos la visualización de la plantilla.
         $this->template = NULL;
         Dispatcher::call('/foto/ver/' . $foto, TRUE);
     } else {
         // Evitamos XSS.
         $comentario = htmlentities($comentario, ENT_NOQUOTES, 'UTF-8');
         // Insertamos el comentario.
         $id = $model_foto->comentar(Usuario::$usuario_id, $comentario);
         // Envio el suceso.
         $model_suceso = new Model_Suceso();
         if (Usuario::$usuario_id != $model_foto->usuario_id) {
             $model_suceso->crear($model_foto->usuario_id, 'foto_comentario_crear', TRUE, $id);
             $model_suceso->crear(Usuario::$usuario_id, 'foto_comentario_crear', FALSE, $id);
         } else {
             $model_suceso->crear($model_foto->usuario_id, 'foto_comentario_crear', FALSE, $id);
         }
         // Informo el resultado.
         $_SESSION['post_comentario_success'] = 'El comentario se ha realizado correctamente.';
         Request::redirect('/foto/ver/' . $foto);
     }
 }
开发者ID:4bs4,项目名称:marifa,代码行数:56,代码来源:foto.php

示例2: action_install

 /**
  * Prueba descarga de un plugin.
  */
 public function action_install()
 {
     Dispatcher::call('');
     // Prueba del uso de memoria.
     // Nombre del plugin.
     $p_nombre = "Test Plugin";
     // Borramos el plugin.
     // if (file_exists(Plugin_Manager::nombre_as_path($p_nombre)))
     // {
     // Update_Utils::unlink(Plugin_Manager::nombre_as_path($p_nombre));
     // }
     // Objeto manejador de plugins.
     $pkg_manager = Plugin_Manager::get_instance();
     // Verificamos su existencia
     $o_plugin = $pkg_manager->get(Plugin_Manager::make_name($p_nombre));
     if ($o_plugin === NULL) {
         // Realizamos la instalación.
         // Cargamos el actualizador.
         $o_updater = new Update_Updater();
         // Descargamos el paquete e instalamos el paquete. Se usa 1 para mostrar actualizaciones.
         if ($o_updater->install_package(Update_Utils::make_hash($p_nombre), 1)) {
             // Actualizamos la cache.
             $pkg_manager->regenerar_lista();
             // Cargamos el paquete.
             $o_plugin = new Plugin_Plugin($p_nombre);
             // Realizamos la actualizacion.
             $o_plugin->install();
             // Activamos el paquete.
             $pkg_manager->set_state(Plugin_Manager::make_name($p_nombre), TRUE, TRUE);
             echo "Instalación existosa";
         } else {
             echo "Problema al realizar la instalación";
         }
     } else {
         // Buscamos actualizaciones.
         $upd_id = $o_plugin->check_updates();
         if ($upd_id === FALSE) {
             echo "No hay actualizaciones";
         } else {
             // Instalamos la actualizacion.
             // Desactivo el plugin.
             if ($o_plugin->info()->estado) {
                 $o_plugin->remove();
             }
             // Directorio del plugin.
             $orig_path = Plugin_Manager::nombre_as_path($p_nombre);
             $tmp_path = rtrim($orig_path, '/') . '.bkp';
             // Realizamos una copia.
             Update_Utils::copyr($orig_path, $tmp_path);
             // Borramos el original.
             Update_Utils::unlink($orig_path);
             // Cargamos el actualizador.
             $o_updater = new Update_Updater();
             // Descargamos el paquete e instalamos el paquete.
             if (!$o_updater->install_package(Update_Utils::make_hash($p_nombre), $upd_id)) {
                 // Recuperamos el original.
                 Update_Utils::copyr($tmp_path, $orig_path);
                 echo "No se pudo actualizar a la versión {$upd_id}.";
             } else {
                 echo "Actualización a la versión {$upd_id} exitosa.";
             }
             // Realizamos la instalación.
             $o_plugin->install();
             // Borramos la copia.
             Update_Utils::unlink($tmp_path);
         }
     }
     if (!Request::is_cli()) {
         echo "<br />";
     }
 }
开发者ID:4bs4,项目名称:marifa,代码行数:74,代码来源:home.php

示例3: action_comentar

 /**
  * Agregamos un comentario a un post.
  * @param int $post ID del post donde colocar el comentario.
  */
 public function action_comentar($post)
 {
     // Verificamos usuario logueado.
     if (!Usuario::is_login()) {
         $_SESSION['flash_error'] = 'Debes iniciar sessión para poder comentar posts.';
         Request::redirect('/usuario/login');
     }
     // Verificamos el método de envio.
     if (Request::method() != 'POST') {
         Request::redirect('/post/index/' . $post);
     }
     // Convertimos el post a ID.
     $post = (int) $post;
     // Cargamos el post.
     $model_post = new Model_Post($post);
     // Verificamos exista.
     if (!is_array($model_post->as_array())) {
         $_SESSION['flash_error'] = 'El post que desea comentar no se encuentra disponible.';
         Request::redirect('/');
     }
     // Verifico permisos.
     if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_COMENTAR) || !$model_post->comentar && !Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_COMENTAR_CERRADO)) {
         $_SESSION['flash_error'] = 'El post que deseas comentar no permite comentarios nuevos.';
         Request::redirect('/post/index/' . $post);
     }
     // Obtenemos el comentario.
     $comentario = isset($_POST['comentario']) ? $_POST['comentario'] : NULL;
     // Verificamos el formato.
     $comentario_clean = preg_replace('/\\[.*\\]/', '', $comentario);
     if (!isset($comentario_clean[20]) || isset($comentario[400])) {
         $_SESSION['post_comentario_error'] = 'El comentario debe tener entre 20 y 400 caracteres.';
         // Evitamos la salida de la vista actual.
         $this->template = NULL;
         Dispatcher::call('/post/index/' . $post, TRUE);
     } else {
         // Transformamos entidades HTML.
         $comentario = htmlentities($comentario, ENT_NOQUOTES, 'UTF-8');
         // Insertamos el comentario.
         $id = $model_post->comentar(Usuario::$usuario_id, $comentario);
         if ($id) {
             // Agregamos los sucesos.
             $model_suceso = new Model_Suceso();
             if (Usuario::$usuario_id != $model_post->usuario_id) {
                 $model_suceso->crear($model_post->usuario_id, 'post_comentario_crear', TRUE, $id);
                 $model_suceso->crear(Usuario::$usuario_id, 'post_comentario_crear', FALSE, $id);
             } else {
                 $model_suceso->crear($model_post->usuario_id, 'post_comentario_crear', FALSE, $id);
             }
             $_SESSION['post_comentario_success'] = 'El comentario se ha realizado correctamente.';
             Request::redirect('/post/index/' . $post);
         } else {
             $_SESSION['post_comentario_error'] = 'Se produjo un error al colocar el comentario. Reintente.';
             // Evitamos la salida de la vista actual.
             $this->template = NULL;
             Dispatcher::call('/post/index/' . $post, TRUE);
         }
     }
 }
开发者ID:4bs4,项目名称:marifa,代码行数:62,代码来源:post.php


注:本文中的Dispatcher::call方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。