Practical symfony Day 14 Feed #last part

Категори-ын Feed дэх хамгийн сүүлийн ажлын байрууд

Jobeet-ын нэг зорилго нь гэвэл хүмүүсд тухайн тохирсон ажлыг нь олоход туслах явдал юм.

Эхлээд категори-ын route-ыг өөрчилж өөр өөр формат дэмждэг болгоцгоое:


// apps/frontend/config/routing.yml

category:

url:

/category/:slug.:sf_format

class:

sfDoctrineRoute

param:

{ module: category, action: show, sf_format: html }

options: { model: JobeetCategory, type: object }

requirements:

 

sf_format: (?:html|atom)

Одоо категори-ын route html болон atom форматуудыг адилхан ойлгодог боллоо. Template дэх категорийн холбоосуудыг шинэчлэе:

<!-- apps/frontend/modules/job/templates/indexSuccess.php -->

<div class="feed">

<a href="<?php echo url_for('category', array('sf_subject' => $category,

'sf_format' => 'atom')) ?>">Feed</a>

</div>

Listing

15-14

<!-- apps/frontend/modules/category/templates/showSuccess.php -->

<div class="feed">

<a href="<?php echo url_for('category', array('sf_subject' => $category,

'sf_format' => 'atom')) ?>">Feed</a>

 

</div>

Сүүлийн алхам маань showSuccess.atom.php template үүсгэх болж байна. Гэвч feed нь мөн л ажлын байрны жагсаалтыг харуулах учираас бид кодоо дахин боловсруулж _list.atom.php гэсэн partial үүсгэе. Html форматд ашиглагддаг шиг partial-ыг мөн форматаар ялгаж болдог:

<!-- apps/frontend/job/templates/_list.atom.php -->

<?php use_helper('Text') ?>

<?php foreach ($jobs as $job): ?>

<entry>

<title><?php echo $job->getPosition() ?> (<?php echo

$job->getLocation() ?>)</title>

<link href="<?php echo url_for('job_show_user', $job, true) ?>" />

<id><?php echo sha1($job->getId()) ?></id>

<updated><?php echo gmstrftime('%Y-%m-%dT%H:%M:%SZ',

strtotime($job->getCreatedAt())) ?></updated>

<summary type="xhtml">

<div xmlns="http://www.w3.org/1999/xhtml">

<?php if ($job->getLogo()): ?>

<div>

<a href="<?php echo $job->getUrl() ?>">

<img src="http://<?php echo $sf_request->getHost().'/uploads/

jobs/'.$job->getLogo() ?>"

alt="<?php echo $job->getCompany() ?> logo" />

</a>

</div>

<?php endif; ?>

<div>

<?php echo simple_format_text($job->getDescription()) ?>

</div>

<h4>How to apply?</h4>

<p><?php echo $job->getHowToApply() ?></p>

</div>

</summary>

<author>

<name><?php echo $job->getCompany() ?></name>

</author>

</entry>

 

<?php endforeach; ?>

Одоо ажлын байрны template хэсэг дээр _list.atom.php partial-ыг ашиглах боломжтой боллоо:

<!-- apps/frontend/modules/job/templates/indexSuccess.atom.php -->

<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">

<title>Jobeet</title>

<subtitle>Latest Jobs</subtitle>

<link href="<?php echo url_for('@job?sf_format=atom', true) ?>"

rel="self"/>

<link href="<?php echo url_for('@homepage', true) ?>"/>

<updated><?php echo gmstrftime('%Y-%m-%dT%H:%M:%SZ',

strtotime(Doctrine::getTable('JobeetJob')->getLatestPost()->getCreatedAt()))

?></updated>

<author>

<name>Jobeet</name>

</author>

<id><?php echo sha1(url_for('@job?sf_format=atom', true)) ?></id>

<?php foreach ($categories as $category): ?>

<?php include_partial('job/list', array('jobs' =>

$category->getActiveJobs(sfConfig::get('app_max_jobs_on_homepage')))) ?>

<?php endforeach; ?>

 

</feed>

Эцэст нь showSuccess.atom.php template-ыг үүсгэцгээе:

<!-- apps/frontend/modules/category/templates/showSuccess.atom.php -->

<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">

<title>Jobeet (<?php echo $category ?>)</title>

<subtitle>Latest Jobs</subtitle>

<link href="<?php echo url_for('category', array('sf_subject' =>

$category, 'sf_format' => 'atom'), true) ?>" rel="self" />

<link href="<?php echo url_for('category', array('sf_subject' =>

$category), true) ?>" />

<updated><?php echo gmstrftime('%Y-%m-%dT%H:%M:%SZ',

strtotime($category->getLatestPost()->getCreatedAt())) ?></updated>

<author>

<name>Jobeet</name>

</author>

<id><?php echo sha1(url_for('category', array('sf_subject' =>

$category), true)) ?></id>

<?php include_partial('job/list', array('jobs' => $pager->getResults()))

?>

 

</feed>

Гол ажлын байрны feed-ын хувьд тухайн категори дахь хамгийн сүүлийн ажлын байрны огноог харуулах хэрэгтэй:

// lib/model/doctrine/JobeetCategory.class.php

class JobeetCategory extends BaseJobeetCategory

{

public function getLatestPost()

{

$jobs = $this->getActiveJobs(1);

return $jobs[0];

}

// ...

 

}

Маргааш уулзатлаа баяртай.

Symfony -ын өөрийх нь формат дэмжих давуу тал нь танаас илүү нэмэлт зүйл шаардахгүйгээр таны сайтад feed нэмэх боломжоор хангадаг.

Өнөөдөр ажил хайгчдын хэсгийг сайжрууллаа. Маргааш бид Web Service-ыг ашиглан ажлын байр оруулагчдад хэрхэн гайхалтай үр дүнгээр хангахыг харах болно.

Advertisements

8 thoughts on “Practical symfony Day 14 Feed #last part

  1. сайн уу ubuntu дээр хаана нь virtual host-ийн тохиргоо хийдэг юм болоо зарим нь site available дээр үүсгэдгийн гэхийн би уг нь admin эрхээр орж байгаа юмаа gedit-ийг admin эрхээр нээдэг юм уу windows шиг заавал нэрээ өөрчилж хадгалах гээд байна

    • /etc/apache2/sites-available/ dotor admin erheer orno. Jishee ni: sudo gedit mysite.lo.conf geh met.
      end yaj tohiruulah ni bgaa.

      Neriig ni uurchilj hadgalahaar garch ireed bgaa bol, admin erheer oroogui bolohoor tegej bgaan,

      Za amjilt!

  2. sain bn uu.tanai site*-d oruulsan medeelleer dagaj web hiij bgaa yumu.hostod bairluulsan webee yaj hurdan unshdag bolgoh ve.bas menu-iin page-uudig tus buriin uuur uur ungutei bolgon gsn yum bolohuu.ene talaar hicheel esvel medeelel bval uguuch thu

    • Энэ сайтанд symfony гэсэн PHP хэлний фраймворкийн талаарх хичээлүүдийг орчуулан тавьсан байгаа. Сайтаа хурдан болгох маш олон арга байгаа,
      – хуудсуудаа cache-лэж дуудах (varnish, …etc)
      – accelator ашиглах
      – gzip ашиглах
      – мөн google webmaster – хэрэгслийг ашиглаж, зөвлөгөөг дагах гэх мэт6

      Өнгө өөрчлөх бол css -ээ өөрчлөөд л болоо шүү дээ.

      За Амжилт хүсье!

      • bayarlalaa.cache-iin talaar hicheel oruulj uguuch thu. mun
        – хуудсуудаа cache-лэж дуудах (varnish, …etc)
        – accelator ашиглах
        – gzip ашиглах
        – мөн google webmaster – хэрэгслийг ашиглаж, зөвлөгөөг дагах гэх мэт zuiluudiin talaar medeelel oruulah bolomj bgaa yu.cache-iin talaar medej avmaar bn.pls

Хариулт үлдээх

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Өөрчлөх )

Twitter picture

You are commenting using your Twitter account. Log Out / Өөрчлөх )

Facebook photo

You are commenting using your Facebook account. Log Out / Өөрчлөх )

Google+ photo

You are commenting using your Google+ account. Log Out / Өөрчлөх )

Connecting to %s