A continuación se va a modificar la plantilla de la página que muestra los detalles de una oferta de trabajo. Abre el archivo showSuccess.php y reemplaza todo su contenido por el siguiente código PHP:
<!-- apps/frontend/modules/job/templates/showSuccess.php --> <?php use_stylesheet('job.css') ?> <?php use_helper('Text') ?> <div id="job"> <h1><?php echo $job->getCompany() ?></h1> <h2><?php echo $job->getLocation() ?></h2> <h3> <?php echo $job->getPosition() ?> <small> - <?php echo $job->getType() ?></small> </h3> <?php if ($job->getLogo()): ?> <div class="logo"> <a href="<?php echo $job->getUrl() ?>"> <img src="/uploads/jobs/<?php echo $job->getLogo() ?>" alt="<?php echo $job->getCompany() ?> logo" /> </a> </div> <?php endif; ?> <div class="description"> <?php echo simple_format_text($job->getDescription()) ?> </div> <h4>How to apply?</h4> <p class="how_to_apply"><?php echo $job->getHowToApply() ?></p> <div class="meta"> <small>posted on <?php echo $job->getCreatedAt('m/d/Y') ?></small> </div> <div style="padding: 20px 0"> <a href="<?php echo url_for('job/edit?id='.$job->getId()) ?>">Edit</a> </div> </div>
Para mostrar los detalles de la oferta de trabajo, la plantilla hace uso de una variable llamada $job que se debe pasar desde la acción. Como en la acción show esta variable se llama $jobeet_job, es necesario modificar su nombre (ten en cuenta que en la acción esta variable aparece dos veces):
// apps/frontend/modules/job/actions/actions.class.php public function executeShow(sfWebRequest $request) { $this->job = JobeetJobPeer::retrieveByPk($request->getParameter('id')); $this->forward404Unless($this->job); }
Algunos métodos accesores de Propel también admiten argumentos. Como se ha definido una columna llamada created_at de tipo timestamp, el método getCreatedAt() permite establecer como su primer argumento el formato en el que se quiere obtener la fecha:
$job->getCreatedAt('m/d/Y');
Para mostrar la descripción de la oferta de trabajo en formato HTML, se utiliza el helper simple_format_text(), ya que entre otras cosas, reemplaza los saltos de línea por etiquetas <br/>. Como este helper pertenece al grupo de helpers llamado Text y Symfony no lo carga por defecto, tenemos que cargarlo a mano mediante el helper use_helper().
Figura 4.6. La página de una oferta de trabajo
válido para Symfony 1.2