Exemple #1
0
 /**
  * Método que desplegará y procesará el formulario de contacto
  * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]delaf.cl)
  * @version 2015-04-12
  */
 public function index()
 {
     // si no hay datos para el envió del correo electrónico no
     // permirir cargar página de contacto
     if (Configure::read('email.default') === NULL) {
         Model_Datasource_Session::message('Página de contacto deshabilitada', 'error');
         $this->redirect('/');
     }
     // si se envió el formulario se procesa
     if (isset($_POST['submit'])) {
         $_POST['nombre'] = trim(strip_tags($_POST['nombre']));
         $_POST['correo'] = trim(strip_tags($_POST['correo']));
         $_POST['mensaje'] = trim(strip_tags($_POST['mensaje']));
         if (!empty($_POST['nombre']) and !empty($_POST['correo']) and !empty($_POST['mensaje'])) {
             $email = new Network_Email();
             $email->replyTo($_POST['correo'], $_POST['nombre']);
             $email->to(Configure::read('email.default.to'));
             $email->subject('Contacto desde la web #' . date('YmdHis'));
             $msg = $_POST['mensaje'] . "\n\n" . '-- ' . "\n" . $_POST['nombre'] . "\n" . $_POST['correo'];
             $status = $email->send($msg);
             if ($status === true) {
                 Model_Datasource_Session::message('Su mensaje ha sido enviado, se responderá a la brevedad.', 'ok');
                 $this->redirect('/contacto');
             } else {
                 Model_Datasource_Session::message('Ha ocurrido un error al intentar enviar su mensaje, por favor intente nuevamente.<br /><em>' . $status['message'] . '</em>', 'error');
             }
         } else {
             Model_Datasource_Session::message('Debe completar todos los campos del formulario', 'error');
         }
     }
 }
Exemple #2
0
 /**
  * Acción para poder cambiar la configuración de la sesión a través de la
  * URL
  * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]delaf.cl)
  * @version 2014-03-22
  */
 public function config($var, $val, $redirect = null)
 {
     Model_Datasource_Session::write('config.' . $var, $val);
     if (!$redirect) {
         $this->redirect('/');
     } else {
         $this->redirect(base64_decode($redirect));
     }
 }
Exemple #3
0
 /**
  * Constructor de la clase
  * @param request Objeto con la solicitud realizada
  * @param response Objeto para la respuesta que se enviará al cliente
  * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]delaf.cl)
  * @version 2014-03-22
  */
 public function __construct(Network_Request $request, Network_Response $response)
 {
     // copiar objeto para solicitud y respuesta
     $this->request = $request;
     $this->response = $response;
     // crear colección de componentes
     if (count($this->components)) {
         $this->Components = new Controller_Component_Collection();
         // crear las clases e inicializa atributos con componentes
         $this->Components->init($this);
     }
     // agregar variables por defecto que se pasarán a la vista
     $this->set(array('_base' => $this->request->base, '_request' => $this->request->request, '_url' => $this->request->url));
     // obtener layout por defecto (el configurado en Config/core.php)
     $this->layout = Model_Datasource_Session::read('config.page.layout');
 }
Exemple #4
0
 /**
  * Función que realiza la traducción de un string a otro idioma.
  *
  * Plantilla para archivo master.po (para locale en_US.utf8):
  *
  *	msgid ""
  *	msgstr ""
  *	"Project-Id-Version: proyecto en_US master\n"
  *	"PO-Revision-Date: 2014-03-02 11:37-0300\n"
  *	"Last-Translator: Nombre del traductor <*****@*****.**>\n"
  *	"Language-Team: English\n"
  *	"Language: en_US\n"
  *	"MIME-Version: 1.0\n"
  *	"Content-Type: text/plain; charset=UTF-8\n"
  *	"Content-Transfer-Encoding: 8bit\n"
  *	"Plural-Forms: nplurals=2; plural=(n != 1);\n"
  *
  *	msgid "Buscar"
  *	msgstr "Search"
  *
  * Guardar la plantilla en DIR_WEBSITE/Locale/en_US.utf8/LC_MESSAGES/master.po
  * Luego ejecutar:
  *   $ msgfmt master.po -o master.mo
  *
  * En caso que se esté creando desde un archivo pot se debe crear el archivo po con:
  *   $ msginit --locale=en_US.utf8 --input=master.pot
  * Lo anterior creará el archivo en_US.po y luego se usa msgfmt con este archivo
  *
  * La locale que se esté utilizando debe existir en el sistema, verificar con:
  *   $ locale -a
  * En caso que no exista editar /etc/locale.gen para agregarla y luego ejecutar:
  *   # locale-gen
  *
  * Cuando se crean o modifican los directorios en DIR_WEBSITE/Locale se
  * debe reiniciar el servicio Apache (¿?)
  *
  * @param string Texto que se desea traducir
  * @param domain Dominio que se desea utilizar para la traducción
  * @param locale Localee (o idioma) al cual traducir el texto
  * @param encoding Tipo de codificación de las traducciones
  * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]delaf.cl)
  * @version 2014-06-04
  */
 public static function translate($string, $domain = 'master', $locale = null, $encoding = 'UTF-8')
 {
     if (!$locale) {
         $locale = Model_Datasource_Session::read('config.language');
     }
     if (!strpos($locale, '_')) {
         if (!isset(self::$locale[$locale])) {
             $locale = Configure::read('language');
         }
         $locale = self::$locale[$locale];
     }
     putenv("LANG=" . $locale);
     setlocale(LC_MESSAGES, $locale);
     bindtextdomain($domain, DIR_WEBSITE . '/Locale');
     textdomain($domain);
     bind_textdomain_codeset($domain, $encoding);
     return gettext($string);
 }