La multi ani!
Astazi e ziua lui Staicu Ionut, asa ca vreau sa ii zic un mare LA MULTI ANI! Multa sanatate, si sa scrii cod cat mai semantic.Si un mic cadou:
Astazi e ziua lui Staicu Ionut, asa ca vreau sa ii zic un mare LA MULTI ANI! Multa sanatate, si sa scrii cod cat mai semantic.Si un mic cadou:
Nu stiu daca titlul e prea maret, dar in fine sa va explic repede cum sta situatia.Daca aveti intr-un camp unixtime si vreti sa afisati toate luniile, din db pentru field-ul respectiv si faceti:
SELECT DISTINCT EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(date)) FROM `posts`
Veti primi un raspuns de genul:200908; well asta e superb, dar daca vreti sa faceti o archive, de genu cum au toate blogurile: August 2009 trebuie sa faceti cateva tricks.
Eu am scris un view helper pentru Zend Framework care face asta, sper sa va fie de folos:
class Zend_View_Helper_DateHelper extends Zend_View_Helper_Abstract
{
public function dateHelper($string = false)
{
if ($string !== false) {
$_month = substr($string, -2);
$_year = substr($string, 0, strlen(date("Y")));
$months = array('01' => "January",
'02' => "February",
'03' => "March",
'04' => "April",
'05' => "May",
'06' => "June",
'07' => "July",
'08' => "August",
'09' => "September",
'10' => "October",
'11' => "Novemeber",
'12' => "December");
return $months[$_month].' '.$_year;
}else{
return false;
}
}
}
Trebuie doar sa ii dati un string de genu 200908, si va prelucra el totul.Sper ca este cuiva de folos.
Inainte de toate vreau sa spun ca nu voi acoperii prea mult in acest post, decat basics, cum sa setati url-ul, presupun ca deja aveti basics cu Zend_Paginator so:
Ok, url-urile default pt Zend_Paginator sunt: controller/action/page/
age, well astazi am avut nevoie de ceva diferit, din moment ce am mai avut m-ai multe pagina-ri pe o pagina.
In controller face-ti normal de exemplu:
private function showData($_id)
{
$data = $this->artists_categories
->select();
$do = $this->db->fetchAll($data);
if (count($do) > 0) {
$paginator = Zend_Paginator::factory($do);
$paginator->setItemCountPerPage(5)
->setPageRange(5)
->setCurrentPageNumber($_id);
return $paginator;
}else{
return false;
}
}
In views/scripts/action_name/pag/file_name setati:
<?php if ($this->pageCount): ?>
<ul class="top pag clearfix">
<?php if(count($this->pagesInRange) >= 2): ?>
<li>Go to page:</li>
<?php endif;?>
<?php if (isset($this->previous)): ?>
<li><a href="<?= $this->url(array('artists' => 'page', 'id' => $this->previous)); ?>">« Previous</a> </li>
<?php endif; ?>
<?php if(count($this->pagesInRange) >= 2): ?>
<?php foreach ($this->pagesInRange as $page): ?>
<li><a href="<?= $this->url(array('artists' => 'page', 'id' => $page)); ?>" <?php if($page == $this->current): ?>id="selected"<?php endif;?>><?=$page;?></a> </li>
<?php endforeach; ?>
<?php endif; ?>
<?php if (isset($this->next)): ?>
<li><a href="<?= $this->url(array('artists' => 'page', 'id' => $this->next)); ?>">Next »</a></li>
<?php endif; ?>
</ul>
<?php endif; ?>
Url-ul setat mai sus arata cam asa controller/action/artists/page/id/Id-ul
Sa nu uitati sa setati si route
/* Artists */
$ad->addRoute( 'artists', new Zend_Controller_Router_Route('artists/index/page/artists/id/:id', array('module' => 'admin','controller' => 'artists', 'action' => 'index')) );
Sper sa va fie de folos.
Cred ca este cel mai cool pe care l-am vazut pana acuma, thx to iamntz, font-ul se numeste Inconsolata, m-ai jos aveti si o poza, asa ca bonus de la mine
, poate va convingeti asa:
