public function executeLastPoliticoRadicali()
 {
     $id = $this->getRequestParameter('id');
     $politico = OppPoliticoPeer::retrieveByPk($id);
     $this->forward404Unless($politico instanceof OppPolitico);
     $c = oppNewsPeer::getNewsForItemCriteria('OppPolitico', $id);
     $c->addDescendingOrderByColumn(NewsPeer::DATE);
     $c->add(NewsPeer::GENERATOR_PRIMARY_KEYS, null, Criteria::ISNOTNULL);
     $c->setLimit(30);
     $news = oppNewsPeer::doSelect($c);
     $feed = $this->_make_feed_from_news('Ultime per ' . $politico, '@parlamentare?id=' . $id . '&slug=' . Util::slugify($politico), $news, 2);
     $this->_send_output($feed);
     return sfView::NONE;
 }
 private function _fetchNewsForItem($item_model, $item_id)
 {
     $n_news = oppNewsPeer::countNewsForItem($item_model, $item_id);
     $c = oppNewsPeer::getNewsForItemCriteria($item_model, $item_id);
     $c->addDescendingOrderByColumn(NewsPeer::DATE);
     $c->setLimit(sfConfig::get('app_news_dropdown_limit', 10));
     $news = oppNewsPeer::doSelect($c);
     $grouped_news = array();
     foreach ($news as $n) {
         $date = strtotime($n->getDate());
         if ((is_string($date) || is_integer($date)) && !array_key_exists($date, $grouped_news)) {
             $grouped_news[$date] = array();
         } else {
             $grouped_news['nessuna data'] = array();
         }
         $grouped_news[$date][] = $n;
     }
     krsort($grouped_news);
     $this->grouped_news = $grouped_news;
     $this->has_more = 0;
     if ($n_news > count($news)) {
         $this->has_more = $n_news;
     }
 }
/**
 * fetch today's news regarding objects monitored by the user
 * today's news are last 24h's news
 *
 * @param string $user - OppUser object
 * @return void
 * @author Guglielmo Celata
 */
function opp_test_single_newsletter($user, $date = null)
{
    $start_time = microtime(true);
    $df = new sfDateFormat('it_IT');
    echo pakeColor::colorize(sprintf('date: %s, name: %s... ', is_null($date) ? 'Today' : $date, $user), array('fg' => 'red', 'bold' => true));
    $news_c = oppNewsPeer::getTodayNewsForUserCriteria($user, $date);
    $news_c->add(oppNewsPeer::PRIORITY, 2, Criteria::LESS_EQUAL);
    $news = oppNewsPeer::doSelect($news_c);
    // raggruppa le news per data
    $grouped_news = array();
    foreach ($news as $n) {
        $date = strtotime($n->getDate());
        if (!is_string($date) && !is_int($date)) {
            $date = 0;
        }
        if (!array_key_exists($date, $grouped_news)) {
            $grouped_news[$date] = array();
        }
        $grouped_news[$date][] = $n;
    }
    krsort($grouped_news);
    echo pakeColor::colorize(sprintf("(%d)\n", count($news)), array('fg' => 'cyan'));
    if (count($news) > 0) {
        echo pakeColor::colorize(sprintf("\t    |        ID | CREATED_AT      | REL_MODEL |    REL_ID |      GENERATOR_MODEL | P |\n"), array('fg' => 'cyan', 'bold' => true));
    }
    foreach ($grouped_news as $date_ts => $news) {
        echo pakeColor::colorize(sprintf("%2d/%3s/%4d\n", $df->format($date_ts, 'dd'), $df->format($date_ts, 'MMM'), $df->format($date_ts, 'yyyy')), array('fg' => 'cyan', 'bold' => true));
        foreach ($news as $i => $n) {
            echo pakeColor::colorize(sprintf("\t%3d | %9d | %10s | %10s | %9d | %20s | %1d |\n", $i + 1, $n->getId(), $n->getCreatedAt('y-m-d H:i'), $n->getRelatedMonitorableModel(), $n->getRelatedMonitorableId(), $n->getGeneratorModel(), $n->getPriority()));
        }
    }
    echo "\n";
    $execution_time = microtime(true) - $start_time;
    if (isset($raw_email) && $raw_email != '') {
        echo " ok (";
    } else {
        echo " no mail (";
    }
    echo pakeColor::colorize(sprintf("%f", $execution_time), array('fg' => 'cyan'));
    echo ")\n";
}