суббота, 29 января 2011 г.

Symfony: doctrine raw sql, get alphabet from i18n model

Задача: получить алфавит из i18n модели, для разных языков.
Показать только те буквы на которые начинаются имена.

in actions.class.php

$lang = $request->getParameter('lang', 'ru');

$query = "
SELECT substring(`name`,1,1) as firstletter
FROM `xxx_translation`
WHERE `lang` = '".$lang."' AND
substring(`name`,1,1) <> ''
GROUP BY substring(`name`,1,1)
";

$pdo = Doctrine_Manager::getInstance()->getCurrentConnection()->getDbh();
$stmt = $pdo->prepare($query);
$stmt->execute();

$this->abc = $stmt->fetchAll(PDO::FETCH_COLUMN, 0);


in template

<?php if ($abc): ?>
<ul id="abcList">
<?php foreach ($abc as $letter): ?>
<li><?php echo link_to($letter, '@user_list?search='.$letter.'&pos=start')?> </li>
<?php endforeach; ?>
</ul>
<br clear="all" />
<?php endif; ?>


Css

ul#abcList li {
float: left;
display: inline;
list-style: none;
padding: 4px;
}

Комментариев нет: