application_form($post_id); } /** * Returns array of application form fields. * * @since 1.6 * @access public * @var string $post_id Post id. * @return array Application form fields. */ function aol_form_fields($post_id = 0){ $aol = new SinglePostTemplate(); return $aol->application_form_fields($post_id); } /** * Returns array of application features. * * @since 1.6 * @access public * @var string $post_id Post id. * @return array Application form fields. */ function aol_features($style = 'table'){ $aol = new SinglePostTemplate(); return $aol->ad_features(0, $style); } /** * Returns array of ad features. * * @since 1.6 * @access public * @var string $post_id Post id. * @return array Application form fields. */ function get_aol_ad_features($post_id){ global $post; if(empty($post_id)) $post_id = $post->ID; $raw_fields = get_post_meta($post_id); $fields = array(); $i=0; foreach($raw_fields as $key => $val){ if(substr($key, 0, 13) == '_aol_feature_'){ $fields[$key] = maybe_unserialize($val[0]); // } } return $fields; } /** * Returns array of application form fields in correct order. * * @since 1.6 * @access public * @var string $post_id Post id. * @return array Application form fields. */ function get_aol_ad_post_meta($post_id){ $form_fields = array(); $keys_order = get_post_meta($post_id, '_aol_fields_order', TRUE); $metas = get_post_meta($post_id); //If fields order is not set in DB then fetch all form fields without order. if(empty($keys_order)){ foreach ($metas as $key => $val){ if(substr($key, 0, 9) == '_aol_app_') $form_fields[$key] = unserialize ($val[0]); } } //Get fields according to field order. else{ foreach ($keys_order as $key){ $form_fields[$key] = unserialize($metas[$key][0]); } } return $form_fields; } /* * Returns Ad types with relevent data. */ function aol_ad_types(){ return get_option_fixed('aol_ad_types', array('ad' => array('singular' => 'Ad', 'plural' => 'Ads', 'description' => 'All Ads', 'filters' => array()))); } function add_aol_prefix($value){ if(!strpos($value, 'aol_')) $value = 'aol_'.$value; return $value; } function remove_aol_prefix($value){ if(strpos($value, 'aol_') !== FALSE) $value = substr($value, 4); return $value; } function aol_ad_prefix(&$value, $key){ if(!strpos('aol_', $value)) $value = 'aol_'.$value; } /** * Returns Registered AOL Ad Types. * * @since 1.8 * This function do not accept any parameters. * @return array Array of ad types */ function get_aol_ad_types(){ $types = aol_ad_types(); $types = array_keys($types); array_walk($types, 'aol_ad_prefix'); return $types; } function aol_manager_capability(){ return 'edit_applications'; } /* * Return array of filters */ function aol_ad_filters(){ $filters = array( 'category' => array('singular' => __('Category', 'ApplyOnline'), 'plural' => __('Categories', 'ApplyOnline')), 'type' => array('singular' => __('Type', 'ApplyOnline'), 'plural' => __('Types', 'ApplyOnline')), 'location' => array('singular' => __('Location', 'ApplyOnline'), 'plural' => __('Locations', 'ApplyOnline')) ); return apply_filters('aol_ad_filters', $filters); } function aol_app_statuses(){ $filters = array('pending' => __('Pending', 'ApplyOnline'), 'rejected'=> __('Rejected', 'ApplyOnline'), 'shortlisted' => __('Shortlisted', 'ApplyOnline')); return apply_filters('aol_app_statuses', $filters); } /* * Change post status similsar to its terms. * */ function aol_set_object_terms($object_id, $tt_id, $taxonomy){ if($taxonomy == 'added_term_relationship') wp_update_post(array('ID' => $object_id, 'post_status' => $tt_id[0])); } //add_action('set_object_terms','aol_set_object_terms', 10, 3); /* * Return active status of current Application(CPT) * */ function aol_app_statuses_active(){ $statuses = aol_app_statuses(); $active = apply_filters('aol_app_active_statuses', get_option_fixed('aol_app_statuses', $statuses)); foreach ($statuses as $key => $val){ if(!in_array(sanitize_key($key), $active)) unset($statuses[$key]); } return $statuses; } function aol_ad_current_filters(){ $filters = aol_ad_filters(); $set_filters = get_option_fixed('aol_ad_filters', array()); foreach ($filters as $key => $val){ if(!in_array(sanitize_key($key), $set_filters)) unset($filters[$key]); } return $filters; } function aol_ad_cpt_filters($cpt){ $cpt = remove_aol_prefix($cpt); $filters = aol_ad_filters(); $types = get_option_fixed( 'aol_ad_types', array( 'ad' => array( 'singular' => 'ad', 'plural' => 'Ads', 'filters' => array_keys( aol_ad_filters() ) ) ) ); $cpt_filters = isset($types[$cpt]['filters']) ? (array)$types[$cpt]['filters']: array(); //Remove filters which are not sett to the ad. foreach ($filters as $key => $val){ if(!in_array(sanitize_key($key), $cpt_filters)) unset($filters[$key]); } return $filters; } function aol_sanitize_taxonomies($taxonomies){ $tax_keys = array(); foreach($taxonomies as $key => $tax){ $tax_keys[] = 'aol_ad_'.sanitize_key($key); } return $tax_keys; } if ( ! function_exists( 'aol_set_current_menu' ) ) { function aol_set_current_menu( $parent_file ) { global $submenu_file, $current_screen, $pagenow; # Set the submenu as active/current while anywhere in your Custom Post Type (nwcm_news) if ( $current_screen->post_type == 'aol_ad' ) { if ( $pagenow == 'edit-tags.php' or $pagenow == 'term.php' ) { $submenu_file = 'edit-tags.php?taxonomy='.str_replace('edit-', '', $current_screen->id).'&post_type=' . $current_screen->post_type; $parent_file = 'aol-settings'; } } return $parent_file; } add_filter( 'parent_file', 'aol_set_current_menu' ); } function aol_array_check($array){ if(!is_array($array)) $array = array(); return $array; } function aol_sanitize_filters($types){ foreach($types as $key => $type){ $types[$key] = array_merge(array('filters' => null), $type); } return $types; } function aol_email_content_type() { return 'text/html'; } /* * @field array * $field */ function aol_form_generator($fields, $fieldset = 0, $prepend = NULL, $post_id = 0){ $form_output = NULL; foreach($fields as $field): //$field['val'] = isset($field['value']) ? $field['value'] : NULL; $field['val'] = isset($field['val']) ? $field['val'] : NULL; //Used by Tracker add-on to display saved value. //$field['val'] = apply_filters('aol_form_field_value', $field['val'], $field['key'], $field['type'], $post_id); $field_key = esc_attr($field['key']); if(isset($field['required']) AND (int)$field['required'] == 1){ $required = '*'; $req_class = 'required'; } else $required = $req_class = null; $field['label'] = isset($field['label']) ? $field['label'] : str_replace('_',' ',$field['key']); $field['description'] = isset($field['description']) ? $field['description'] : NULL; $wrapper_start = '
'.$required. str_replace(array('[a', '[/a]', ']'), array('', '>'), sanitize_text_field($field['description'])).'
';
print_r($var);
echo '';
}
function get_aol_settings(){
$settings = apply_filters('aol_settings', array());
return $settings;
}
/*Quick hack for a fatal error on Application Editor*/
if( !function_exists('has_blocks') ){
function has_blocks( $post = null ) {
if ( ! is_string( $post ) ) {
$wp_post = get_post( $post );
if ( $wp_post instanceof WP_Post ) {
$post = $wp_post->post_content;
}
}
return false !== strpos( (string) $post, '