Помощь Категории с галочками, в добавлении новостей

Тема в разделе "DLE", создана пользователем mishqa35, 28 дек 2010.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. mishqa35

    mishqa35 Создатель

    Регистр.:
    24 мар 2008
    Сообщения:
    33
    Симпатии:
    6
    Помогите доделать вывод категорий, с галочками в две\три колонки.
    Реализован вывод в одну колонку.
    Версия dle 9.0
    Изменял файлы.
    modules/addnews.php
    PHP:
            if( $config['allow_multi_category'] ) {
            
    //    $cats = "<select name=\"catlist[]\" id=\"category\" onchange=\"onCategoryChange(this.value)\" style=\"width:316px;height:73px;\" multiple>";
            
    } else {
            
    //    $cats = "<select name=\"catlist[]\" id=\"category\" onchange=\"onCategoryChange(this.value)\">";
            
    }
            
    $cats $categories_list;
            
    //$cats .= "</select>";
            
    $tpl->set'{category}'$cats );
    modules/functions.php
    PHP:
    function CategoryNewsSelection($categoryid 0$parentid 0$nocat TRUE$sublevelmarker ''$returnstring '') {
        global 
    $cat_info$user_group$member_id;
        
    $allow_list explode','$user_group[$member_id['user_group']]['cat_allow_addnews'] );
        
    $spec_list explode','$user_group[$member_id['user_group']]['cat_add'] );
        
    $root_category = array ();
        
    //if( $parentid == 0 ) {
        //    if( $nocat ) $returnstring .= '<option value="0"></option>';
        //} else {
        //    $sublevelmarker .= '&nbsp;&nbsp;&nbsp;';
        //}
        
    if( count$cat_info ) ) {
            foreach ( 
    $cat_info as $cats ) {
                if( 
    $cats['parentid'] == $parentid $root_category[] = $cats['id'];
            }
            if( 
    count$root_category ) ) {
                foreach ( 
    $root_category as $id ) {
                    if( 
    $allow_list[0] == "all" or in_array$id$allow_list ) ) {
                        if( 
    $spec_list[0] == "all" or in_array$id$spec_list ) ) $color "black";
                        else 
    $color "red";
                        
    $returnstring .= "<input type=\"checkbox\" name=\"catlist[]\" id=\"category\" value=\"" $id '" ';
                        if( 
    is_array$categoryid ) ) {
                            foreach ( 
    $categoryid as $element ) {
                                if( 
    $element == $id $returnstring .= 'checked';
                            }
                        } elseif( 
    $categoryid == $id $returnstring .= 'checked';
                        
    $returnstring .= '>' $sublevelmarker $cat_info[$id]['name'] . '<br />';
                    }
                    
    $returnstring CategoryNewsSelection$categoryid$id$nocat$sublevelmarker$returnstring );
                }
            }
        }
        return 
    $returnstring;
    }
    На первом скриншоте показано что выводится, на втором то что хотелось бы реализовать. Но что то не выходит. Нужно добавить толи таблицу и код для разбивки по местам или хз что. Зарание спасибо, с меня спасибка.
    [​IMG] [​IMG]
     
  2. Hayk

    Hayk Прохожие

    попробуй вставить float:left для checkbox.

    $returnstring .= "<input style=\"float:left;\" type=\"checkbox\" name=\"catlist[]\" id=\"category\" value=\"" . $id . '" ';

    p.s. поделись сомной этим хаком тоже :D
     
  3. mishqa35

    mishqa35 Создатель

    Регистр.:
    24 мар 2008
    Сообщения:
    33
    Симпатии:
    6
    Весь код хака в первом посте.
    А одним style=\"float:left;\" тут не обойтись.
    ps; тема все еще актуальна, решения так и не придумал. help:thenks:
     
  4. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    Элементарно, засуньте категории в таблицу, сделайте счетчик и скажем при $j равном 5 вставляйте </td><td> и обнуляйте $j
    вот пример, может не до конца въехал в код, так как уже праздную НГ :yahoo: ...

    PHP:
    function CategoryNewsSelection($categoryid 0$parentid 0$nocat TRUE$sublevelmarker ''$returnstring '') {
        global 
    $cat_info$user_group$member_id;
        
    $allow_list explode','$user_group[$member_id['user_group']]['cat_allow_addnews'] );
        
    $spec_list explode','$user_group[$member_id['user_group']]['cat_add'] );
        
    $root_category = array ();
        
    //if( $parentid == 0 ) {
        //    if( $nocat ) $returnstring .= '<option value="0"></option>';
        //} else {
        //    $sublevelmarker .= '&nbsp;&nbsp;&nbsp;';
        //}
        
    if( count$cat_info ) ) {
            foreach ( 
    $cat_info as $cats ) {
                if( 
    $cats['parentid'] == $parentid $root_category[] = $cats['id'];
            }
            if( 
    count$root_category ) ) {
                
    $j=1;
                
    $returnstring .="<table><tr><td>";
                foreach ( 
    $root_category as $id ) {
                    if( 
    $allow_list[0] == "all" or in_array$id$allow_list ) ) {
                        if( 
    $spec_list[0] == "all" or in_array$id$spec_list ) ) $color "black";
                        else 
    $color "red";
                        
    $returnstring .= "<input type=\"checkbox\" name=\"catlist[]\" id=\"category\" value=\"" $id '" ';
                        if( 
    is_array$categoryid ) ) {
                            foreach ( 
    $categoryid as $element ) {
                                if( 
    $element == $id $returnstring .= 'checked';
                            }
                        } elseif( 
    $categoryid == $id $returnstring .= 'checked';
                        
    $returnstring .= '>' $sublevelmarker $cat_info[$id]['name'] . '<br />';
                        if(
    $j==5)
                        {
                            
    $returnstring .="</td><td>";
                            
    $j=0;
                        }
                        
    $j++;
                    }
                    
    $returnstring CategoryNewsSelection$categoryid$id$nocat$sublevelmarker$returnstring );

                }
                
    $returnstring .="</td></tr></table>";
            }
        }
        return 
    $returnstring;
    }
     
    mishqa35 нравится это.
  5. mishqa35

    mishqa35 Создатель

    Регистр.:
    24 мар 2008
    Сообщения:
    33
    Симпатии:
    6
    Juri, большое тебе спасибо! Все точно так как и хотел, добавил стили выравнивания и убрал вывод не нужных категорий, и все стало выглядеть шикарно.
    С наступающим тебя! ;)

    ps; тему можно закрывать.
     
Статус темы:
Закрыта.