本文整理汇总了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);
}
}
示例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 />";
}
}
示例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);
}
}
}