Помощь Изменить список категорий на такой

Тема в разделе "DLE", создана пользователем Хомячок, 24 янв 2011.

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

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

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

    Хомячок

    Регистр.:
    10 апр 2008
    Сообщения:
    184
    Симпатии:
    103
    Привет всем! Решил изменить вид категорий при добавлении новости на такой:
    [​IMG]
    Выводятся все категории. При нажатии выделяется серым и запоминается как выделенная категория. При отправке передается вроде со всей формой. Очень удобно имхо)

    Но содрать с сайта и прикрутить к дле не получается! Может кто-нибудь видел подобный модуль к дле или другим движкам. Мне главное рабочий html+js код (чтобы можно было это передавать с формой), остальное сам прикручу).

    Могу дать ссылку на сайт, но там надо региться.
    http://mix.sibnet.ru/create/movie/
     
    krast90 нравится это.
  2. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.065
    Симпатии:
    197
    Сделайте чекбоксами в 2-3 столбика или сколько хотите, будет то же самое, даже удобнее
     
  3. fri

    fri Создатель

    Регистр.:
    14 авг 2009
    Сообщения:
    32
    Симпатии:
    1
    Судя по всему там флеш используется(чисто по внешнему виду).

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

    http://www.xiper.net/collect/html-and-css-tricks/verstka-form/nice-select-jquery.html

    Если чекбоксами сделаете

    http://www.xiper.net/collect/html-and-css-tricks/verstka-form/nice-checkbox.html

    Будет ничем не хуже
     
  4. Хомячок

    Хомячок

    Регистр.:
    10 апр 2008
    Сообщения:
    184
    Симпатии:
    103
    Спасибо за варианты! Но вариант на том сайте компактней и наглядней всех предложенных. Селект вообще не удобен при выборе нескольких категорий, не видно все и надо оторожно крутить, чтоб найти нужную. Либо надо увеличивать его размер, но лучше уж тогда чекбоксами в несколько столбцов.

    Работет на чистом javascript + библиотека prototype.js. Почти удалось содрать, только в ie не работает почему-то, да и при подключении prototype.js у меня дизайн портится. Поэтому, если нет больше вариантов, придется мне делать чекбоксами.
     
    krast90 нравится это.
  5. fri

    fri Создатель

    Регистр.:
    14 авг 2009
    Сообщения:
    32
    Симпатии:
    1
    Мог бы помочь, но дело в том что по вашей ссылке я вообще не нашел этого селекта
     
  6. JSilver

    JSilver Постоялец

    Регистр.:
    18 апр 2006
    Сообщения:
    106
    Симпатии:
    48
    вот, нацарапал на коленке...
    Код:
    <html>
    <script>
    var slct="slct";
    function yo() {
    var st="";
    x=document.getElementById(slct);
    x.multiple=true;
    x.style.visibility = 'hidden';
    for (var i=0;i<x.length;i++)
      {
      st+='<span onclick="sw('+i+',this);"';
      if (x.options[i].selected==true) {
        st+=' style="border:thin dotted #FF0000;"';
      }
      st+='>'+x.options[i].text+'</span>&nbsp; ';
      };
    document.getElementById("my").innerHTML='<div id="my">'+st+'</div>';
    }
    function sw(vl,cn) {
    x=document.getElementById(slct);
    if (x.options[vl].selected==true) {
      x.options[vl].selected=false;
      cn.style.border="0px";
    } else {
      x.options[vl].selected=true;
      cn.style.border="thin dotted #FF0000";
    }
    }
    </script>
    <body onload="yo();">
    <form id=frm>
    <select id=slct>
    <option value=1>val1
    <option value=2>val2
    <option value=3>val3
    <option value=4>val4
    </select>
    <div id="my"></div>
    </form>
    </body>
    </html>
     
    Хомячок нравится это.
  7. Хомячок

    Хомячок

    Регистр.:
    10 апр 2008
    Сообщения:
    184
    Симпатии:
    103
    Спасибо! Почти как надо, только осталось кое-что поправить. Вот, я загрузил скрипт со своими поправками:
    http://films.film.locum.ru/123.php
    Там осталось несколько косяков:
    1. первое значение val1 почему-то выделяется всегда, независимо от наличия selected"
    2. можно <body onload="yo();"> как-то по другому сделать, просто это будет только при добавлении новости, а функция будет на всем сайте выполняться(((
    3. Хотелось бы иметь возможность более одного блока <select></select>, т.е. у меня будет блок с категориями и блок со странами. Потом может еще блок с режиссерами. Большие блоки будут сворачиваться/разворачиваться с помощью функции ShowOrHide дле по нажатию на треугольник: http://mix.sibnet.ru/img/icon-arrow-down.gif
    4. В скрипте по ссылке выше подключен файл со стилями style.css
    Нужно чтобы по умолчанию все val1,val2,val3 выглядели стилем: <span class="labeler"></span>, а при выделении (вместо рамки) стиль менялся на <span class="labeler invert"></span>
    Вроде как остальное норм, все работает!
     
    krast90 нравится это.
  8. JSilver

    JSilver Постоялец

    Регистр.:
    18 апр 2006
    Сообщения:
    106
    Симпатии:
    48
    2 Хомячок: да всё это решаемо. рыбу я тебе слепил, а уж соль и перец, как говорится - по вкусу...
    вот для дальнейшего движения мысли:
    Код:
    <html>
    <script>
    function yo(slct) {
    var st="";
    x=document.getElementById(slct);
    x.style.visibility = 'hidden';
    for (var i=0;i<x.length;i++)
      {
      st+='<span onclick="sw('+i+',this,'+"'"+slct+"'"+');"';
      if (x.options[i].selected==true) {
        st+=' style="border:thin dotted #FF0000;"';
      }
      st+='>'+x.options[i].text+'</span>&nbsp; ';
      };
    document.getElementById("div-"+slct).innerHTML='<div id="div-"'+slct+'>'+st+'</div>';
    }
    function sw(vl,cn,sl) {
    x=document.getElementById(sl);
    if (x.options[vl].selected==true) {
      x.options[vl].selected=false;
      cn.style.border="0px";
    } else {
      x.options[vl].selected=true;
      cn.style.border="thin dotted #FF0000";
    }
    }
    </script>
    <body>
    <form id=frm>
    <select id=slct multiple>
    <option value=1>val1
    <option value=2>val2
    <option value=3>val3
    <option value=4>val4
    </select>
    <div id="div-slct"></div>
    </form>
    <script>
    yo("slct");
    </script>
    <form id=frm2>
    <select id=selct>
    <option value=1>val1
    <option value=2>val2
    <option value=3>val3
    <option value=4>val4
    </select>
    <div id="div-selct"></div>
    </form>
    <script>
    yo("selct");
    </script>
    </body>
    </html>
     
    Хомячок нравится это.
Статус темы:
Закрыта.