Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Как сделать вывод подкатегорий в новом окне в добавление новостей?

Как сделать вывод подкатегорий в новом окне в добавление новостей?


     24.01.2015    Общие вопросы по PHP    1079

вопрос
Здравствуйте.

Есть окно стандартного выбора категорий при создании новости. Но не очень удобно выбирать подкатегории, так как каждая категория имеет большое количество подкатегорий. Возможно ли сделать вывод подкатегорий в новом окне?

Маленькая особенность:

При нажатии в категорию (основную). В другом окне появляются её подкатегории.

За ранее большое спасибо.

Ответа пока нет


Комментарии пользователей (12)

atlantistim
9

atlantistim - 24 января 2015 07:34 - Юзер

очень нужная тема, тоже есть такая необходимость, так как на сайте более 15 категорий и в них по 20 подкатегорий. Либо может еще какой то удобный способ выбора категорий.

wsionc
8

wsionc - 24 января 2015 21:56 - Юзер

Если вариант такой подойдет могу подробней описать как сделать!!!
Скриншот № 1
Скриншот № 2
Скриншот № 3

ychelovek
2

125 | 23

ychelovek - 25 января 2015 00:39 - Юзер

Опишите пожалуйста

roma
5

65 | 4

roma - 24 января 2015 23:35 - Юзер

wsionc,http://ruvit.ws/uploads/qip-shot-screen-012.png

Идёт как категория, или это просто надпись?

wsionc
8

wsionc - 25 января 2015 00:53 - Юзер

Все что вы видите на скриншотах это категории, скрины сделаны с работающего сайта....

roma
5

65 | 4

roma - 25 января 2015 00:59 - Юзер

wsionc, я говорю про раздел мультфильмы. Мультфильмы, это категория - а всё что под ним, под категории? Или это просто надпись Мультфильмы, а всё остальное категории?

wsionc
8

wsionc - 25 января 2015 01:08 - Юзер

Это просто надпись, ниже под категории...

roma
5

65 | 4

roma - 25 января 2015 01:38 - Юзер

Увы.. но не надо такое. Спасибо.

wsionc
8

wsionc - 25 января 2015 01:58 - Юзер

Ошибочку написал, мультфильмы это основная категория, а все что ниже то под категории...

roma
5

65 | 4

roma - 25 января 2015 02:56 - Юзер

wsionc,ну давайте попробуем сделать так. Но на самом деле, тот вариант, который хочу я, был бы на много лучше. Просто ваш вариант он хоть и решает одну проблему, но с ней и вторая выходит - так как категорий 30 где-то и след, будет 30 подобных полей с подкатегориями - громоздка..

wsionc
8

wsionc - 25 января 2015 09:50 - Юзер


Пример того что вы получите вы можете посмотреть на скриншоте.
Для начало ищем в addnews.php и удаляем (по желанию можно оставить)

$categories_list = CategoryNewsSelection( 0, 0 );


Например у вас идут категории фильмы - id 34 , сериалы -id 23 и мультфильмы - id 17 тогда прописуем так,


$categories_film = CategoryNewsSelection( 0, 34 );
$categories_serial = CategoryNewsSelection( 0, 23 );
$categories_cartoon = CategoryNewsSelection( 0, 17 );


Ниже ищем


                             <div class="form-group">
                              <label class="control-label col-lg-2">{$lang['addnews_cat']}</label>
                              <div class="col-lg-10">
                                <select data-placeholder="{$lang['addnews_cat_sel']}" name="category[]" id="category" onchange="onCategoryChange(this)" $category_multiple style="width:100%;max-width:350px;">{$categories_list}</select>
                              </div>
                            </div>


В место него вставляем


<!-- Start -->
<div class="form-group1" style="margin-left: 17%;margin-bottom: 20px; */">
<table width="600px">
<thead>
<tr>
<td style="width:200px;padding-bottom: 7px;"><b>Фильмы</b></td>
<td style="width:200px;padding-bottom: 7px;"><b>Сериалы</b></td>
<td style="width:200px;padding-bottom: 7px;"><b>Мультфильмы</b></td>
</tr>
</thead>
<td style="width:200px;"><select name="category[]" id="category" onchange="onCategoryChange(this)" $category_multiple style="max-width:220px;">{$categories_film}</select></td>
<td style="width:200px;"><select name="category[]" id="category" onchange="onCategoryChange(this)" $category_multiple style="max-width:220px;">{$categories_serial}</select></td>
<td style="width:200px;"><select name="category[]" id="category" onchange="onCategoryChange(this)" $category_multiple style="max-width:220px;">{$categories_cartoon}</select></td>
</table>
</div>
<!-- End-->                    


На этом все, тут пример сделан на 3 основные категории в них выводится еще по 20 категорий...

P.S. Ранее я скрины скидывал там используются вкладки tab, в тех скринах выводится около 850-900 категорий. И все работает на отлично.

Если кто то может посоветовать лучше и более простой вариант, было бы интересно посмотреть так как тут надо немного поработать ручками...)))


Вот вкладки TAB что использовались на первых скринах
<div class="tabs">
    <input id="tab1" type="radio" name="tabs" checked>
    <label for="tab1" title="Вкладка 1">Вкладка 1</label>

    <input id="tab2" type="radio" name="tabs">
    <label for="tab2" title="Вкладка 2">Вкладка 2</label>

    <input id="tab3" type="radio" name="tabs">
    <label for="tab3" title="Вкладка 3">Вкладка 3</label>

    <input id="tab4" type="radio" name="tabs">
    <label for="tab4" title="Вкладка 4">Вкладка 4</label>

    <section id="content1">
        <p>
        Здесь размещаете любое содержание....
        </p>
    </section>  
    <section id="content2">
        <p>
          Здесь размещаете любое содержание....
        </p>
    </section>
    <section id="content3">
        <p>
          Здесь размещаете любое содержание....
        </p>
    </section>
    <section id="content4">
        <p>
          Здесь размещаете любое содержание....
        </p>
    </section>    
</div>



/* Базовый контейнер табов */
.tabs {
  min-width: 320px;
  max-width: 800px;
  padding: 0px;
  margin: 0 auto;
}
/* Стили секций с содержанием */
section {
  display: none;
  padding: 15px;
  background: #fff;
  border: 1px solid #ddd;
}
input {
  display: none;
}
/* Стили вкладок (табов) */
label {
  display: inline-block;
  margin: 0 0 -1px;
  padding: 15px 25px;
  font-weight: 600;
  text-align: center;
  color: #aaa;
  border: 1px solid #ddd;
  background: #f1f1f1;
  border-radius: 3px 3px 0 0;
}
/* Подключаем шрифт-иконки Font Awesome в формате Unicode */
label:before {
  font-family: fontawesome;
  font-weight: normal;
  margin-right: 10px;
}
label[for*='1']:before {
  content: '\f19a';
}
label[for*='2']:before {
  content: '\f17a';
}
label[for*='3']:before {
  content: '\f13b';
}
label[for*='4']:before {
  content: '\f13c';
}
/* Изменения стиля заголовков вкладок при наведении */
label:hover {
  color: #888;
  cursor: pointer;
}
/* Стили для активной вкладки */
input:checked + label {
  color: #555;
  border: 1px solid #ddd;
  border-top: 1px solid #009933;
  border-bottom: 1px solid #fff;
  background: #fff;
}
/* Активация секций с помощью переключателя :checked */
#tab1:checked ~ #content1,
#tab2:checked ~ #content2,
#tab3:checked ~ #content3,
#tab4:checked ~ #content4 {
  display: block;
}
/* медиа запросы для различных типов носителей */  
@media screen and (max-width: 680px) {
  label {
    font-size: 0;
  }
  label:before {
    margin: 0;
    font-size: 18px;
  }
}
@media screen and (max-width: 400px) {
  label {
    padding: 15px;
  }
}


Далее ваша фантазия как вы хотите все разместить

ychelovek
2

125 | 23

ychelovek - 25 января 2015 13:59 - Юзер

Ну если с указанием конкретных категорий то можно вообще с помощью JS размутиться... Но не удаляйте пожалуйста, посмотрю. Спасибо!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы