Функции для работы с категориями


Эти функции добавляем например в ads_config.php затем можно использовать в формах.
! Если вы хотите составить какой либо список категорий и организовать в форме ввода выбор данных из этого списка для начала поместите все эти рубрики в категорию контейнер, а id этого контейнера и будет параметр $child_of без него здесь не получится.

Если необходимо добавить выпадающий список для выбора какой нибудь категории
элемент SELECT используем
function ads_category_select:

$child_of — id рубрики-контейнера, если не назначена берется значение ads_basecat
$name — параметр name html элемента SELECT

function ads_category_select($child_of=false,$name = 'post_category[]'){
    global $ads_post;
    if(!$child_of) {
        if($ads_post['ads_basecat']) $child_of = $ads_post['ads_basecat'];
        else  $child_of = $_REQUEST['ads_basecat'];
    }
    $args = array('child_of' =>$child_of, 'hide_empty' => 0,
            'hierarchical' => 1, 'name'=>$name,'echo'=>0);
    $select_loc = wp_dropdown_categories($args);
    return $select_loc = preg_replace('~]+>~','\0',$select_loc);
}

Выводит список флажков для выбора :

     

function ads_category_checkbox

function ads_category_checkbox($child_of=false){
    global $ads_post;
    if(!$child_of) {
        if($ads_post['ads_basecat']) $child_of = $ads_post['ads_basecat'];
        else  $child_of = $_REQUEST['ads_basecat'];
    }
    $ads_ganres = get_categories(array('child_of'=>$child_of,'hide_empty'=> 0));
    if(!sizeof( $ads_ganres)) return '';
    foreach($ads_ganres as $key=>$value){
     echo "term_id\" />
       ";
    }
}

Выбор при помощи переключателей INPUT TYPE = radio

за объект в целом за единицу площади

function ads_radio_checkbox

function ads_radio_checkbox($child_of=false){
    global $ads_post;
    if(!$child_of) {
        if($ads_post['ads_basecat']) $child_of = $ads_post['ads_basecat'];
        else  $child_of = $_REQUEST['ads_basecat'];
    }
    $ads_ganres = get_categories(array('child_of'=>$child_of,'hide_empty'=> 0));
    if(!sizeof( $ads_ganres)) return '';
    foreach($ads_ganres as $key=>$value){
        if(in_array($value->term_id, $_POST['post_category']) )
            echo "term_id\" checked=\"checked\" />
       ";
        else
            echo "term_id\" />
       ";
    }
}

И function ads_child_category — проверяет выбрана ли категория из контейнера $parent или нет, если выбранно возращает массив совпаших категорий,
потом можно проверить кол-во. Использовать ее можно когда надо убедится, что пользователь таки выбрал нужную категорию, а в случае с флажочками можно посчитать сколько флажков он выбрал:

function ads_child_category($parent,$childs=''){
    if(!$childs) $childs = $_POST['post_category'];
    if(!$childs)  return false;
    $category = get_categories(array('child_of'=>$parent,'hide_empty'=> 0));
    if(!sizeof($category)) return false;
    $resalt = false;
    foreach($category as $cat){
        if(in_array($cat->term_id,$childs ))
            $resalt[] =  $cat->term_id;
    }
    return $resalt;
}

function ads_category_print($child_of=false, $sp=’, ‘, $link=1) эту функция выводит список категорий присвоенных конкретному объявлению (запсиси) и также эти рубрики должны быть под рубриками контейнера $child_of.
$sp разделитель между рубриками
$link ввиде ссылки или просто название категорий

function ads_category_print($child_of=false, $sp=', ', $link=1){
        global $ads_post, $post;
        if(!$child_of) {
            if($ads_post['ads_basecat']) $child_of = $ads_post['ads_basecat'];
            else  $child_of = $_REQUEST['ads_basecat'];
        }
        $ads_ganres = get_categories(array('child_of'=>$child_of,'hide_empty'=> 0,'fields'=>'ids'));

        $post_category = get_the_category($post->ID);
        if(!sizeof( $ads_ganres)) return '';
        foreach($post_category as $key=>$value){
            if( in_array($value->term_id,$ads_ganres) ){
                 if($link) $arr[] =''.$value->name.'';
                 else $arr[] = $value->name;
            }
        }
        if(sizeof($arr))  return implode($sp, $arr);
        else return '';
}

Обсуждение на сайте: wp.od.ua

Рубрика:  октября 21, 2010.
/ » » »


Похожие записи:

Новости

  • Власть Киева экономит на школьниках
  • Украина и Польша начнут общий проект
  • Украинцы отдадут за газ всю зарплату
  • В Одессе откроется волонтерский центр
  • Россияне будут въезжать в Украину по загранпаспортам
  • В Харькове укрепляют границы с Россией
  • Планы прекратить транзит газа в Европу
  • Комментарии


    Расширеный поиск +

    Другие статьи

    Объявления

    Мои проекты на WordPress

    Одесса Процессор Недвижимости, - специализированная доска объявлений по недвижимости на стоимость сборки $300 с установкой.
    �льичевск - доска объявлений городская доска объявлений, основные разделы: недвижимость, транспорт, услуги, работа, куплю-продам. Стоимость сборки $300 с установкой.
    HiTech.Expert- все о высоких технологиях - разработка, поддержка.

    Счетчики

    our blog