Example #1
0
 private function _list_products($limit = 5, $product_group = '')
 {
     $product_qb = new org_openpsa_qbpager('org_openpsa_products_product_dba', 'latest_products');
     $this->_request_data['product_qb'] =& $product_qb;
     $product_qb->results_per_page = $limit;
     $product_qb->set_limit($limit);
     $product_qb->add_order('metadata.published', 'DESC');
     if ($product_group != '') {
         $group_qb = org_openpsa_products_product_group_dba::new_query_builder();
         $group_qb->add_constraint('code', '=', $product_group);
         $groups = $group_qb->execute();
         if (count($groups) == 0) {
             return false;
             // No matching group
         } else {
             $categories_qb = org_openpsa_products_product_group_dba::new_query_builder();
             $categories_qb->add_constraint('up', '=', $groups[0]->id);
             $categories = $categories_qb->execute();
             $categories_in = array();
             if (count($categories) == 0) {
                 /* No matching categories belonging to this group
                  * So we can search for the application using only
                  * this group id
                  */
                 $product_qb->add_constraint('productGroup', 'INTREE', $groups[0]->id);
             } else {
                 for ($i = 0; $i < count($categories); $i++) {
                     $categories_in[$i] = $categories[$i]->id;
                 }
                 $product_qb->add_constraint('productGroup', 'IN', $categories_in);
             }
         }
     }
     if ($this->_config->get('enable_scheduling')) {
         $product_qb->add_constraint('start', '<=', time());
         $product_qb->begin_group('OR');
         /*
          * List products that either have no defined end-of-market dates
          * or are still in market
          */
         $product_qb->add_constraint('end', '=', 0);
         $product_qb->add_constraint('end', '>=', time());
         $product_qb->end_group();
     }
     $this->_request_data['products'] = $product_qb->execute();
     $this->_request_data['product_group'] = $product_group;
 }
Example #2
0
 public function _handler_viewActivity($handler_id, $args, &$data)
 {
     $status = parent::_handler_read($handler_id, $args, $data);
     if ($_MIDGARD['user'] == $this->_person->id) {
         $this->_component_data['active_leaf'] = "own_details";
     }
     $qb_latest = new org_openpsa_qbpager('midcom_helper_activitystream_activity_dba', 'activity');
     $qb_latest->add_order('metadata.revised', 'DESC');
     $qb_latest->add_constraint('actor', '=', $this->_object->id);
     $qb_latest->set_limit($this->_config->get('activity_results_per_page'));
     $qb_latest->results_per_page = $this->_config->get('activity_results_per_page');
     $latest = $qb_latest->execute();
     $this->_request_data['qb'] = $qb_latest;
     $this->_request_data['items'] = $latest;
     return $status;
 }