private function getGraphData($type, $query_ids)
 {
     $results = array('cnt' => $type == 'keyword' ? array('facebook' => array(), 'twitter' => array()) : array(), 'min' => 0, 'max' => 0);
     $search = new Default_Model_DbTable_Search();
     foreach ($search->getGraphInfo($query_ids) as $obj) {
         $darr = getdate($obj['search_published']);
         $date = mktime(0, 0, 0, $darr['mon'], $darr['mday'], $darr['year']);
         $campaign = $type == 'keyword' ? $obj['search_source'] : $obj['query_id'];
         if (isset($results['cnt'][$campaign][$date])) {
             $results['cnt'][$campaign][$date]++;
         } else {
             $results['cnt'][$campaign][$date] = 1;
         }
         $results['min'] = $results['min'] && $results['min'] < $date ? $results['min'] : $date;
         $results['max'] = $results['max'] && $results['max'] > $date ? $results['max'] : $date;
     }
     $search_index = new Default_Model_DbTable_SearchIndex();
     foreach ($search_index->getGraphInfo($query_ids) as $obj) {
         $campaign = $type == 'keyword' ? $obj['index_source'] : $obj['query_id'];
         if (isset($results['cnt'][$campaign][$obj['index_date']])) {
             $results['cnt'][$campaign][$obj['index_date']] += $obj['index_count'];
         } else {
             $results['cnt'][$campaign][$obj['index_date']] = $obj['index_count'];
         }
         $results['min'] = $results['min'] && $results['min'] < $obj['index_date'] ? $results['min'] : $obj['index_date'];
         $results['max'] = $results['max'] && $results['max'] > $obj['index_date'] ? $results['max'] : $obj['index_date'];
     }
     return $results;
 }
 private function breakdown_block($campaign_id, $source)
 {
     $search = new Default_Model_DbTable_Search();
     $res = $search->getDigestData($campaign_id, $source);
     $ret = '<h2>' . ucfirst($source) . ' Breakdown</h2>
             <br/>Total mentions in the past 24 hours: ' . count($res) . '<br/><br/>' . (count($res) ? 'Latest entries:' : '') . '<ul>';
     $cnt = 0;
     while ($cnt++ < 10 && (list(, $obj) = each($res))) {
         $ret .= '<li>' . $obj['search_author_name'] . ': ' . substr(strip_tags($obj['search_content']), 0, 200) . '</li>';
     }
     $ret .= '</ul>';
     return $ret;
 }
 public function deleteAction()
 {
     if ($this->getRequest()->getParam('id')) {
         /* Delete keyword itself */
         $table = new Default_Model_DbTable_Keyword();
         $where = $table->getAdapter()->quoteInto('query_id = ?', $this->getRequest()->getParam('id'));
         $table->delete($where);
         /* Delete keyword to campaign relation */
         $table = new Default_Model_DbTable_KeywordToCampaign();
         $where = $table->getAdapter()->quoteInto(array('query_id = ?' => $this->getRequest()->getParam('id'), 'project_id = ?' => $this->getRequest()->getParam('campaign')));
         $table->delete($where);
         /* Delete search results for this query */
         $table = new Default_Model_DbTable_Search();
         $where = $table->getAdapter()->quoteInto('query_id = ?', $this->getRequest()->getParam('id'));
         $table->delete($where);
     }
     $this->_helper->redirector('index', 'keyword', 'default', array('campaign' => $this->getRequest()->getParam('campaign')));
 }