Behaviour para mostrar elementos como vistos o no.
Tiene la capacidad de conocer para cada modelo al cual es agregado que registros estan marcados como vistos y cuales no.
Cada registro tendrá basicamente 3 estados:
- No visto
- Visto
- Modificado
Cada vez que se edite un elemento asociado pasará a modificado. Las siguiente sucesiones de estados pueden realizarse:
- No visto -> visto
- visto -> modificado
- Modificado -> visto
Agrege el plugin a su directorio de CakePHP:
Use los siguientes comandos:
git submodule add https://github.com/tranfuga25s/cakephp-viewed.git app/Plugin/Viewed
git submodule init
git submodule update
Luego siga las intrucciones de agregado del plugin.
Utilice el siguiente link para descargar el archivo comprimido: []
Cree la carpeta app/Plug/Viewed
Descomprima los contenidos del archivo dentro del directorio recién creado.
Incluya el plugin dentro de su bootstrap:
CakePlugin::load( 'Viewed' );
Luego agregamos el behavior al modelo que deseamos:
public $actsAs = array( 'Viewed.Viewed' );
Lo ultimo que faltará será generar la tabla necesaria para guardar los datos
./app/Console/cake schema create --plugin Viewed
Por ultimo es necesario conocer que usuario está generando el cambio para poder retornar las propiedades de visto corretamente. Para eso, el Behavior intentará llamar a la función "getCurrentUser". Esta funcion puede ser modificada mediante la configuración. Esta función debe devolver el ID del usuario que está realizando la acción.
Como el nombre de campo "viewed" y "modified" ya pueden estar tomados dentro de la aplicación, se podrá configurar otro nombre:
public $actsAs = array(
'Viewed' => array(
'fields' => array(
'viewed' => 'visto',
'modified' => 'modificado_desde_visto'
)
)
);
Siguiendo con el ejemplo anterior, si queremos utilizar la función "obtenerUsuario", la colocamos sin parentesis así:
public $actsAs = array(
'Viewed' => array(
'fields' => array(
'viewed' => 'visto',
'modified' => 'modificado_desde_visto'
),
'userFunction' => 'obtenerUsuario'
)
);
Una vez configurado el Behavior en el modelo necesario, este agregará el campo configurado al array de datos traido automaticamente.
- Agregar configuracion para que el campo aparezca también cuando se utiliza al funcion read().
Para realizar algúna colaboración simplemente realize un Fork del respositorio, realice los cambios y test necesarios y haga un "pull request".