Jul 13

Introducción.

Después de actualizada la versión 5 del portal a la 6.12 o la instalación de una versión 6.x fresca, se hace necesario actualizar el portal a la nueva versión disponible, la 6.13.

Procedimiento.

  1. Realizar la copia de seguridad de la base de datos del portal.
  2. Ingresar al portal con el usuario cuyo id = 1.
  3. Modificar  la configuración del sitio poniéndolo en modo administración: ?q=admin/settings/site-maintenance.
  4. Actualizar los módulos disponibles según el módulo de update-status: ?q=admin/reports/updates.
  5. Desactivar los módulos (?q=admin/build/modules) y temas (?q=admin/build/themes) de terceros.
  6. Realizar la actualización de los archivos.
    1. $ wget http://ftp.drupal.org/files/projects/drupal-6.13.tar.gz
    2. $ rm site.old
    3. $ mv site site.old
    4. $ tar zxvf drupal-6.13.tar.gz
    5. $ mv drupal-6.13/ site
    6. $ cp -rf site.old/files site    (si no se utiliza la convención bajo sites/default).
    7. $ cp -rf site.old/sites site
    8. (web) $URL/apps/site/update.php
    9. (web) $URL/?q=admin/reports/updates
    10. rm site/install.php site/CHANGELOG.txt site/INSTALL.txt site/INSTALL.mysql.txt site/INSTALL.pgsql.txt site/LICENSE.txt site/MAINTAINERS.txt site/UPGRADE.txt
    11. $ rm drupal-6.13.tar.gz
  7. Activar los módulos (?q=admin/build/modules) y temas (?q=admin/build/themes) de terceros.
  8. Modificar  la configuración del sitio poniéndolo en línea nuevamente: ?q=admin/settings/site-maintenance.

Con esta actualización se introducen las siguientes modificaciones al esquema de actualizaciones de Drupal que se había estado siguiendo hasta la fecha.

  • Los archivos del usuario, diferentes a los de la distribución de Drupal, y a los cuales se les debe realizar copia de seguridad se encuentran en las siguientes ubicaciones.
    • sites/all/libraries.  Librerías que aplican a todos los sitios.
    • sites/all/modules.  Módulos de terceros que aplican a todos los sitios.
    • sites/all/themes.  Temas de terceros que aplican a todos los sitios.
    • sites/default/files.  Archivos de usuario de un sitio específico (default).
    • sites/default/settings.php.  Configuración de un sitio específico (default).
  • Si no se utiliza la convención bajo sites los directorios libraries, modules, themes y files se ubicarán en el directorio raíz de la distribución de Drupal, esto debe tenerse muy en cuenta ya que deberán agregarse como pasos durante la copia de seguridad y deberá tenerse extremo cuidado para evitar conflictos con los archivos del núcleo de la distribución que utilizan la mayoría de estos directorios.

Enlaces.

Tagged with:



En July 13 de 2009, Jorge Iván Meza Martínez escribió acerca de Actualización de portales web basados en Drupal a la versión 6.13.
Jul 13

Introducción.

Después de poblado el modelo con la información proporcionada por el usuario a través del formulario, la validación verifica que la información del modelo sea correcta mediante la aplicación de un conjunto de reglas definidas específicamente para cada modelo.

Especificación de reglas.

  • Para especificar las reglas de validación de un modelo es necesario sobreescribir el método rules().
    public function rules()
    {
        return array(
            array('value1, value2, operator', 'required'),
            array('value1, value2', 'numerical')
        );
    }
  • El método rules() retorna un arreglo cuyos elementos corresponden con la siguiente especificación.
    array('<lista de atributos>', '<validador>', 'on' => '<lista de escenarios>', ... <opciones adicionales>)
    • El listado de atributos corresponde con los nombres separados por comas de los atributos a los cuales se les aplica la regla de valildación.
    • El nombre del validador determina el tipo de verificación que se debe realizar sobre los atributos.
    • El parámetro on (opcional) permite especificar en cuales escenarios (lista separada por comas) aplica la regla.
    • Las opciones adicionales son parejas nombre/valor que permiten asignar valores iniciales a las propiedades del validador.

Tipos de validadores.

Existen tres tipos de formas como es posible especificar las reglas de validación.

  1. Como un método del modelo.
  • La firma del método deberá corresponder con la siguiente.
    /**
     * @param string El nombre del atributo que será validado.
     * @param array Opciones adicionales especificadas en la regla de validación.
     */
    public function NombreValidador($atributo, $parametros)
  1. Como una clase que hereda de CValidator.
  2. Como un alias de un validador predefinido.

Validadores predefinidos.

Corresponden a alias mas cortos y sencillos de los validadores mas utilizados sobre los atributos.

Alias Clase Descripción
captcha CCaptchaValidator Debe ser igual al código de verificación mostrado en el CAPTCHA.
compare CCompareValidator Es igual a otro o a una constante.
email CEmailValidator Es una dirección de correo electrónico válida.
default CDefaultValueValidator Asigna un valor por defecto.
exist CExistsValidator Existe en una columna específica de la tabla.
file CFileValidator Contiene el nombre de un archivo subido al servidor.
filter CFilterValidator Transforma al atributo con el filtro.
in CRangeValidator Pertenece a una lista predefinida de valores.
length CStringValidator Su longitud se encuentra dentro de cierto rango específico.
match CRegularExpressionValidator Coincide con la expresión regular especificada.
numerical CNumberValidator Es un valor numérico.
required CRequiredValidator No permite valores vacíos.
type CTypeValidator Verifica que sea del tipo especificado.
unique CUniqueValidator Es único en la columna de la tabla en la base de datos.
url CUrlValidator Es una URL válida.

A continuación se muestras algunos ejemplos de estos validadores.

/* Se requiere un valor Username, no puede dejarse vacío */
array('username', 'required'),

/* Username deberá tener entre 3 y 12 carácteres */
array('username', 'length', 'min' => 3, 'max' => 12),

/* En el escenario 'registro', password deberá coincidir con password2 */
array('password', 'compare', 'compareAttribute' => 'password2', 'on' => 'registro'),

/* En el escenario 'login', password deberá ser autenticado (validador de método [1] o de clase [2]) */
array('password', 'authenticate', 'on' => 'login')

Ejecución de la validación.

  • Es posible forzar a la validación manualmente mediante el llamado al método CModel::validate().  El llamado a métodos como CActiveRecord::save() lanzan automáticamente la validación.
  • El retorno del método CModel::validate() se utiliza para verificar si la validación fue exitosa o si falló alguna de las reglas.
  • Es posible (opcional) definir un escenario para la ejecución de la validación.  En caso de especificarse se tomarán en cuenta las reglas que NO tienen definido un escenario (parámetro on) y aquellas cuyo escenario coincida con el definido para la ejecución de la validación.  En caso de no especificarse un escenario, se tomarán en cuenta únicamente las primeras reglas, las que NO tienen definido un escenario.
$modelo -> scenario = 'registro';

if($modelo -> validate())
{
    // Éxito en la validación
}
else
{
    // Fracaso en la validación
}
  • Es posible obtener mayor información del validador mediante los siguientes métodos que pueden ser aplicados globalmente para todos los atributos o a uno en específico.
    • CModel::hasErrors().  Verifica si hubo o no errores en la validación.
    • CModel::getErrors().  Obtiene los mensajes de error generados durante la validación.

Enlaces.

Tagged with:



En July 13 de 2009, Jorge Iván Meza Martínez escribió acerca de Modelos de formularios con Yii (validación).