categories = awpcp_categories_collection(); } else { $this->categories = $categories; } if ( is_null( $listings ) ) { $this->listings = awpcp_listings_collection(); } else { $this->listings = $listings; } if ( is_null( $walker ) ) { $this->walker = awpcp_content_aware_sidebars_categories_walker( $this->id ); } else { $this->walker = $walker; } if ( is_null( $request ) ) { $this->request = awpcp_request(); } else { $this->request = $request; } } protected function _get_content( $args = array() ) { $categories = $this->get_categories( $args ); $control_items = array(); foreach ( $categories as $category ) { $control_items[ $category->id ] = $category->name; } return $control_items; } private function get_categories( $args = array() ) { $args = wp_parse_args( $args, array( 'include' => '' ) ); if ( empty( $args['include'] ) ) { $categories = $this->categories->get_all(); } else { $categories = $this->categories->find( array( 'id' => $args['include'] ) ); } return $categories; } public function in_context() { $category_id = $this->request->get_category_id(); $ad_id = $this->request->get_ad_id(); return $category_id > 0 || $ad_id > 0; } public function get_context_data() { $category_id = $this->request->get_category_id(); if ( $category_id > 0 ) { return array( $category_id ); } $ad_id = $this->request->get_ad_id(); if ( $ad_id > 0 ) { $ad = $this->listings->find_by_id( $ad_id ); return is_null( $ad ) ? array() : array( $ad->ad_category_id ); } return array(); } public function meta_box_content() { $categories = $this->get_categories(); if ( empty( $categories ) ) { return; } echo '