Ver índice de contenidos del libro

4.5. La plantilla de la página de una oferta de trabajo

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');

Nota 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().

La página de una oferta de trabajo

Figura 4.6 La página de una oferta de trabajo