Przeglądanie rekordów - Symfony browser helper
Napisany przez Szymon Sawicki dnia 5 kwietnia 2008, godzina 18:33
Tagi: Symfony + programowanie + propel
A oto prosty sposób, aby w Symfony uzyskać browsing dla dowolnych obiektów Propela. Browser ma postać dodatkowego helpera, który wstawia się w dodatkowym szablonie, np.: _browser.php. Jedyne, co musisz wpisać w tym szablonie to:
<?php echo browser($propelObject) ?>
A tutaj kod całego helpera umożliwiającego przeglądanie kolejnych rekordów:
<?php
function browser($object)
{
// wyświetl browsera tylko dla istniejących obiektów
if($object->getId())
{
$rule = sfRouting::getInstance()->getCurrentRouteName();
if($rule == 'default')
{
// Obsługa jedynie akcji domyslnej dla edycji w adminie czyli edit
$action_name = sfContext::getInstance()->getActionName();
if(in_array($action_name, array('edit', 'create', 'save')))
$rule = sfContext::getInstance()->getModuleName().'/edit';
else
return null;
}
else
{
$rule = '@'.$rule;
}
$html = '';
$object_class = get_class($object);
$primaryKeyColumn = call_user_func_array(array($object_class.'Peer', 'translateFieldName'), array('id', BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_COLNAME));
$prev_label = ' poprzedni';
$next_label = 'następny ';
$c = new Criteria();
$c->add($primaryKeyColumn, $object->getId(), Criteria::LESS_THAN);
$c->addDescendingOrderByColumn($primaryKeyColumn);
$prev = call_user_func_array(array($object_class.'Peer', 'doSelectOne'), array($c));
$c = new Criteria();
$c->add($primaryKeyColumn, $object->getId(), Criteria::GREATER_THAN);
$c->addAscendingOrderByColumn($primaryKeyColumn);
$next = call_user_func_array(array($object_class.'Peer', 'doSelectOne'), array($c));
if($prev)
$html .= link_to(image_tag('previous.gif', 'align=absmiddle') . ' poprzedni', $rule.'?id=' . $prev->getId());
else
$html .= image_tag('previous.gif', 'align=absmiddle') . $prev_label;
$html .= ' ';
if($next)
$html .= link_to('następny ' . image_tag('next.gif', 'align=absmiddle'), $rule.'?id=' . $next->getId());
else
$html .= $next_label . image_tag('next.gif', 'align=absmiddle');
return $html;
}
else
{
return false;
}
}
?> Wyszukiwanie
Archiwum
- Luty 2009 (2)
- Czerwiec 2008 (1)
- Kwiecień 2008 (3)
- Marzec 2008 (1)
Popularne tagi
- AJAX
- LogiShop
- PHP
- Symfony
- cms
- e-commerce
- gamespace
- gry
- logicms
- logisoft
- onet.pl
- oprogramowanie sklepu
- pozycjonowanie
- pozycjonowanie internetowe
- pozycjonowanie stron internetowych
- projektowanie sklepów internetowych
- projektowanie stron
- seo
- sklep
- sklep internetowy
- sklepy
- sklepy internetowe
- strony internetowe
- tworzenie sklepów internetowych
- tworzenie stron internetowych

mapa serwisu

