20.08.2015 Views

Ez publish 3.* Tutorial Introducción en el desarrollo de ... - eZ Projects

Ez publish 3.* Tutorial Introducción en el desarrollo de ... - eZ Projects

Ez publish 3.* Tutorial Introducción en el desarrollo de ... - eZ Projects

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1 Introducción <strong>en</strong> <strong>el</strong> <strong><strong>de</strong>sarrollo</strong> <strong>de</strong> ext<strong>en</strong>siones <strong>en</strong> <strong>eZ</strong> <strong>publish</strong> 201.3.9 Acceso a base <strong>de</strong> datosQueremos ahora volver a m<strong>en</strong>cionar la base <strong>de</strong> datos. Queremos guardar <strong>el</strong> valord<strong>el</strong> formulario <strong>en</strong> nuestra nueva tabla jacext<strong>en</strong>sion_data.Para esto <strong>en</strong> <strong>eZ</strong> Publish existe la clase <strong>eZ</strong>Persist<strong>en</strong>tObject. Ésta ya conti<strong>en</strong>e lasfunciones para crear, cambiar, <strong>el</strong>iminar o extraer datos.Para po<strong>de</strong>r usar esta funcionalidad creamos una nueva claseJACExt<strong>en</strong>stionDataÉsta la guardamos <strong>en</strong> la carpeta ezroot/ext<strong>en</strong>sion/jacext<strong>en</strong>sion/classes con <strong>el</strong>nombre jacext<strong>en</strong>siondata.php (ver Listing 14).La función mas importante es JACExt<strong>en</strong>stionData::<strong>de</strong>finition(). Aqui se <strong>de</strong>fine laestructura d<strong>el</strong> objeto <strong>de</strong>s JACExt<strong>en</strong>sionData y se <strong>de</strong>fine <strong>en</strong> que tabla y con quecolumnas <strong>de</strong> tablas se guardarán los datos.Despues creamos las funciones create(), fetchByID(),fetchList(), getListCount(). Se muestran tres difer<strong>en</strong>tes maneras <strong>en</strong> que los datos semostrarán ( <strong>eZ</strong>Persist<strong>en</strong>tObject::fetchObject(),<strong>eZ</strong>Persist<strong>en</strong>tObject::fetchObjectList(), comando SQL directo).Si es possible se <strong>de</strong>berían usar las funciones <strong>eZ</strong>Persist<strong>en</strong>tObject fetch. No se<strong>de</strong>berían usar <strong>en</strong>tradas SQL específicos para base <strong>de</strong> datos, para que los comandosSQL puedan funcionar con <strong>el</strong> sistema <strong>de</strong> base <strong>de</strong> datos <strong>eZ</strong> Publish, por ejemploMysql, Postgres, Oracle.(ver tambi<strong>en</strong> API http://pubsvn.ez.no/doxyg<strong>en</strong>/class<strong>eZ</strong>Persist<strong>en</strong>tObject.html )Posteriom<strong>en</strong>te usamos las funciones creadas <strong>en</strong> <strong>el</strong> script create.php. Para guardarnuevos datos, creamos un nuevo objeto d<strong>el</strong> tipo JACExt<strong>en</strong>sionData mediante lafunción JACExt<strong>en</strong>sionData::create($value) . La función create() crea <strong>el</strong> valuetransmitido ( valor d<strong>el</strong> formulario) , la user_id actual y la hora actual.Con la función store() guardamos ahora los datos <strong>en</strong> la tabla <strong>de</strong> base <strong>de</strong> datosjacext<strong>en</strong>sion_data. Para ver como han cambiado los datos, escribimos éstas <strong>en</strong> lavista Debug (ver Listing 15).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!