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; }
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; }