Общее неудобство соби - неюзабилити!

Тема в разделе "SOBI", создана пользователем infoman, 30.08.2007.

  1. infoman
    Offline

    infoman Пользователь

    Регистрация:
    28.08.2007
    Сообщения:
    581
    Симпатии:
    12
    Пол:
    Мужской
    ДОбрый день
    итак компонент соби оч мне панравился но! он оч не удобный в плане пользования
    1)dtree просто ужас ане примочка! вырезать адназначно! у меня не работал в фоксе и в ие
    и потом просто оно неудобно само по себе я зашол в раздел и решил добавить запись туда ну зачем мне опять ДТРИИ разварачивать? при добавлениии? если я уже в нужной категории сижу?
    я хотел сделать так:
    например я зашол на сайт увидел нужную мне категорию зшел в неё увидел подкатегорию провалился туда и только патом я бы добавил свою запись в каталог
    это намного удобней и больше напоминает систему каталогов виндовс что естественно большенству юзверей намного удобней
    кроме того в каталоге каторый я делал было около 100 категорий около 600 подкатегорий и более 2000 разделов что естественно приводило дтрии в бешенство
    и браузеры страшно ругались что скрипт ест память.....


    2)кнопку добавить тоже нужно приструнить
    ибо если у вас просто категории она полезна можно запретить добавление в рутт
    а вот если у вас 2 3 уровня подкатегорий этот метод не проходит и что? я что потом корневые категории чистить буду распихивая в подразделы? НЕТ!
    нужно делать фильтр кнопки добавить

    3) дизайн
    если мы отказались от дтрии нужно чтобы все эти категории красиво вывешивались на сайте
    я сделал так: http://www.rrcat.ru (сайт на заказ)
    если вы кликнете в пункте навигатор по регионам вы увидите как всё работает и как красиво всё уложено
    4) патчвей тоже претерпел изменения чтобы человек мог зайдя в какойто раздел выбрать более высокую категорию не используя навигатор по каталогу

    если вам понравилась моя идея могу написать как я эти пункты делал:[
     
  2.  
  3. Лат
    Offline

    Лат Звоните 8 (905) 778-52-44

    Регистрация:
    31.01.2007
    Сообщения:
    1 745
    Симпатии:
    113
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    да что уж там, лучше сразу выкладывай свою версию компонента.
     
  4. infoman
    Offline

    infoman Пользователь

    Регистрация:
    28.08.2007
    Сообщения:
    581
    Симпатии:
    12
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    смешно правда:) ноя не делал инстал пакет :)
    я установил старую соби и повер закинул свой каталог :)
    почистил базы и залил дамп :)
    но я када делал изменения лог делал
    дома посмотрю там все изменения описаны :)
     
  5. Offline

    DjAndy Недавно здесь

    Регистрация:
    20.11.2006
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    Оч. понравилась. Расскажи pls.
     
  6. infoman
    Offline

    infoman Пользователь

    Регистрация:
    28.08.2007
    Сообщения:
    581
    Симпатии:
    12
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    Посмотреть вложение com_sobi21.zip
    вот както так
    как именно не помню ибо еслиб ты спросил через год яб воще чё такое собби бы не вспомнилB)
    эт тебе сырой скриптик
    там обрати внимание на >1000
    и на русскими стовами сноски типа //////тутт я сделал так.....
    [!] далжно получится
    админку не изменял вроде
     
  7. infoman
    Offline

    infoman Пользователь

    Регистрация:
    28.08.2007
    Сообщения:
    581
    Симпатии:
    12
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    в mod_sobi2menu.php
    // $cid = intval( mosGetParam( $_REQUEST, 'catid', 0 ) );
    $query = "SELECT cats.catid, name, ordering " .
    "FROM `#__sobi2_cats_relations` AS rel " .
    "LEFT JOIN `#__sobi2_categories` AS cats ON rel.catid = cats.catid " .
    "WHERE published = 1 AND rel.parentid = '1' ".
    "ORDER BY {$config->catsOrdering}";
    $database->setQuery( $query );
    $categoryList = $database->loadObjectList();
    if(sizeof($categoryList) > 0) {
    require_once($mosConfig_absolute_path.'/templates/******/head.php' );
    echo "<ul>";
    echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr>";
    foreach($categoryList as $category) {
    $href = sefRelToAbs("index.php?option=com_sobi2&amp;catid={$category->catid}&amp;Itemid={$config->sobi2Itemid}");
    $name = $config->getSobiStr($category->name);
    echo "<td><li><a href='{$href}'>{$name}</a></li>";
    $i++;
    if ($i%2 != 0) echo "</td>";
    else echo "</td></tr><tr>";
    }
    echo "</table>";
    echo "</ul>";
    require_once($mosConfig_absolute_path.'/templates/*****/end.php' );
    }
    }
    echo "</div>";
    ?>

    Добавлено через 5 минут
    в хеад,пшп
    <?php
    ?>
    <a href="javascript:collapse2.slideit()"><h4><font color="#ff6600">Кликни и выбери регион для поиска или размещения новых объявлений</font></h4></a>
    <div id="cat" style="width: 400px; background-color: #FFFFFF;">
    в енд,пшп

    <?php
    ?>
    </div>

    <script type="text/javascript">

    //Syntax: var uniquevar=new animatedcollapse("DIV_id", animatetime_milisec, enablepersist(true/fase), [initialstate] )
    var collapse2=new animatedcollapse("cat", 800, true)

    </script>
    в наблон между хеадами <script type="text/javascript" src="/templates/newave/animatedcollapse.js">
    </script>
    аниматедкаллапс:
    //Animated Collapsible DIV- Author: Dynamic Drive (http://www.dynamicdrive.com)
    //Last updated June 27th, 07'. Added ability for a DIV to be initially expanded.

    var uniquepageid=window.location.href.replace("http://"+window.location.hostname, "").replace(/^\//, "") //get current page path and name, used to uniquely identify this page for persistence feature

    function animatedcollapse(divId, animatetime, persistexpand, initstate){
    this.divId=divId
    this.divObj=document.getElementById(divId)
    this.divObj.style.overflow="hidden"
    this.timelength=animatetime
    this.initstate=(typeof initstate!="undefined" && initstate=="block")? "block" : "contract"
    this.isExpanded=animatedcollapse.getCookie(uniquepageid+"-"+divId) //"yes" or "no", based on cookie value
    this.contentheight=parseInt(this.divObj.style.height)
    var thisobj=this
    if (isNaN(this.contentheight)){ //if no CSS "height" attribute explicitly defined, get DIV's height on window.load
    animatedcollapse.dotask(window, function(){thisobj._getheight(persistexpand)}, "load")
    if (!persistexpand && this.initstate=="contract" || persistexpand && this.isExpanded!="yes") //Hide DIV (unless div should be expanded by default, OR persistence is enabled and this DIV should be expanded)
    this.divObj.style.visibility="hidden" //hide content (versus collapse) until we can get its height
    }
    else if (!persistexpand && this.initstate=="contract" || persistexpand && this.isExpanded!="yes") //Hide DIV (unless div should be expanded by default, OR persistence is enabled and this DIV should be expanded)
    this.divObj.style.height=0 //just collapse content if CSS "height" attribute available
    if (persistexpand)
    animatedcollapse.dotask(window, function(){animatedcollapse.setCookie(uniquepageid+"-"+thisobj.divId, thisobj.isExpanded)}, "unload")
    }

    animatedcollapse.prototype._getheight=function(persistexpand){
    this.contentheight=this.divObj.offsetHeight
    if (!persistexpand && this.initstate=="contract" || persistexpand && this.isExpanded!="yes"){ //Hide DIV (unless div should be expanded by default, OR persistence is enabled and this DIV should be expanded)
    this.divObj.style.height=0 //collapse content
    this.divObj.style.visibility="visible"
    }
    else //else if persistence is enabled AND this content should be expanded, define its CSS height value so slideup() has something to work with
    this.divObj.style.height=this.contentheight+"px"
    }


    animatedcollapse.prototype._slideengine=function(direction){
    var elapsed=new Date().getTime()-this.startTime //get time animation has run
    var thisobj=this
    if (elapsed<this.timelength){ //if time run is less than specified length
    var distancepercent=(direction=="down")? animatedcollapse.curveincrement(elapsed/this.timelength) : 1-animatedcollapse.curveincrement(elapsed/this.timelength)
    this.divObj.style.height=distancepercent * this.contentheight +"px"
    this.runtimer=setTimeout(function(){thisobj._slideengine(direction)}, 10)
    }
    else{ //if animation finished
    this.divObj.style.height=(direction=="down")? this.contentheight+"px" : 0
    this.isExpanded=(direction=="down")? "yes" : "no" //remember whether content is expanded or not
    this.runtimer=null
    }
    }


    animatedcollapse.prototype.slidedown=function(){
    if (typeof this.runtimer=="undefined" || this.runtimer==null){ //if animation isn't already running or has stopped running
    if (isNaN(this.contentheight)) //if content height not available yet (until window.onload)
    alert("Please wait until document has fully loaded then click again")
    else if (parseInt(this.divObj.style.height)==0){ //if content is collapsed
    this.startTime=new Date().getTime() //Set animation start time
    this._slideengine("down")
    }
    }
    }

    animatedcollapse.prototype.slideup=function(){
    if (typeof this.runtimer=="undefined" || this.runtimer==null){ //if animation isn't already running or has stopped running
    if (isNaN(this.contentheight)) //if content height not available yet (until window.onload)
    alert("Please wait until document has fully loaded then click again")
    else if (parseInt(this.divObj.style.height)==this.contentheight){ //if content is expanded
    this.startTime=new Date().getTime()
    this._slideengine("up")
    }
    }
    }

    animatedcollapse.prototype.slideit=function(){
    if (isNaN(this.contentheight)) //if content height not available yet (until window.onload)
    alert("Please wait until document has fully loaded then click again")
    else if (parseInt(this.divObj.style.height)==0)
    this.slidedown()
    else if (parseInt(this.divObj.style.height)==this.contentheight)
    this.slideup()
    }

    // -------------------------------------------------------------------
    // A few utility functions below:
    // -------------------------------------------------------------------

    animatedcollapse.curveincrement=function(percent){
    return (1-Math.cos(percent*Math.PI)) / 2 //return cos curve based value from a percentage input
    }


    animatedcollapse.dotask=function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
    var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
    if (target.addEventListener)
    target.addEventListener(tasktype, functionref, false)
    else if (target.attachEvent)
    target.attachEvent(tasktype, functionref)
    }

    animatedcollapse.getCookie=function(Name){
    var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
    if (document.cookie.match(re)) //if cookie found
    return document.cookie.match(re)[0].split("=")[1] //return its value
    return ""
    }

    animatedcollapse.setCookie=function(name, value, days){
    if (typeof days!="undefined"){ //if set persistent cookie
    var expireDate = new Date()
    var expstring=expireDate.setDate(expireDate.getDate()+days)
    document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()
    }
    else //else if this is a session only cookie
    document.cookie = name+"="+value
    }

    Добавлено через 1 час 24 минуты
    и ещё <1000 определяет на каком уровне catid можно добавлять новые обьявления в категорию (раздел)
    соответсвенно в дампе примерно так:
    catid=1 до 99 -это корневая категория
    catid=100 до 999 -это подкатегория
    catid=1000 до 2000 -это туда куда можно добавлять записи
    параметр <1000 присутствует в фильтре кнопки добавить
    и ещё гдето где не помню
    туда и надо обратить внимание
    и сначало структурировать на листочке ваш дамп и предпологаемое число категорий и подкатегорий
     
    Последнее редактирование: 20.12.2007
  8. Offline

    DjAndy Недавно здесь

    Регистрация:
    20.11.2006
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    Спасибо, бум разбираться.
    А какая есть альтернатива ?
     
  9. infoman
    Offline

    infoman Пользователь

    Регистрация:
    28.08.2007
    Сообщения:
    581
    Симпатии:
    12
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    ну незнаюB)
    а для каких целей?:)
     
  10. Offline

    DjAndy Недавно здесь

    Регистрация:
    20.11.2006
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    Вообще, вот что мне нравится и хотелось бы.
    http://hotline.ua/gd/2/
    С таким структурированием, и особенное внимание левой колонке - фильтры для выбора.
    Если перейти на главную страницу http://hotline.ua/ с неё есть переход на "Прайс листы", там уже что-то типа каталога, но тоже сделано не так как в SOBI.
    В SOBI я делал каталог фирм и предприятий. И должен сказать, мне не очень нравится как он выводит список фирм на листе, нет возможности изменять вид - инфо о фирме в строке, в ячейке таблицы, и т.п.. И нельзя настраивать выводимые поля предварительного просмотра. Т.е. видел подобные сайты более удобные для пользователей.
    Вспомнил о http://hotline.ua/gd/2/, и подобных разделах на этом сайте, потому что нужно делать раздел с прайсами... а привлекательность этого раздела будет зависеть от его удобств.
     
  11. infoman
    Offline

    infoman Пользователь

    Регистрация:
    28.08.2007
    Сообщения:
    581
    Симпатии:
    12
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    ну вапервых не жумла!
    фильтр цепляет переменные http://hotline.ua/gd/2/47(мадель)-21(диаганаль)-2036-36-30-175
    всё это позволяет выбирать из базы нужное
    кроме того если в списке есть подороже фильтр не удаляет список ;)хитрицы
    вопщем класная чтука! реализавать несложно (отдельно) всегото делоф переменные реквест и фильтры выборки из базы и фильтры формирующие сам фильтр чтоб его уменьшать
    итого 2странички кода или одна :)
    а вот как связать это с кмс :) незнаю
    точнее могу узнать
    но сёдня мне так впатлу этим заниматся такая лень ведь у мя сёдня празник[!]
     
  12. Offline

    DjAndy Недавно здесь

    Регистрация:
    20.11.2006
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    Ну... с праздничком. :)
     
  13. Лат
    Offline

    Лат Звоните 8 (905) 778-52-44

    Регистрация:
    31.01.2007
    Сообщения:
    1 745
    Симпатии:
    113
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    Соби- это зло. делать 6 хаков каждый раз при выходе новой версии- это не айс.
     
  14. infoman
    Offline

    infoman Пользователь

    Регистрация:
    28.08.2007
    Сообщения:
    581
    Симпатии:
    12
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    да вот былабы такая функция
    каторая как хочеш чё хочеш тебе бы вывадила ты ей тока списак параметров в массивен задаёш и фсё
    B)<? function all($anyparam_arry) {
    globalpeople_brain(decision($anyparam_arry))

    }:D:[
     
    werdi нравится это.
  15. Offline

    andrew-zn Гость

    Ответ: Общее неудобство соби - неюзабилити!

    Помогите. В каком файле и что надо менять, что бы у названия полей менять шрифт, а так же у самих полей. И вывод полей на сайт имел сразу класс, например: class="rightcol".
    Т.е. в админке это не надо прописывать. Еще хорошо было бы, убрать визуальный html-редактор в соби2.
     
  16. werdi
    Offline

    werdi Недавно здесь

    Регистрация:
    18.11.2007
    Сообщения:
    72
    Симпатии:
    1
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    СУПЕР :friend: :dancing: Все работает! Спасибо!
    Эх, еще б наворотов таких в Соби! :sun:
     
  17. Offline

    xPx Недавно здесь

    Регистрация:
    05.04.2007
    Сообщения:
    5
    Симпатии:
    0
    Ответ: Общее неудобство соби - неюзабилити!

    Кто-нибудь может подсказать чайнику, в какой строчке CSS можно изменить стиль заголовок полей? А то весь текст в одну большую кашу превращается :(
     
  18. werdi
    Offline

    werdi Недавно здесь

    Регистрация:
    18.11.2007
    Сообщения:
    72
    Симпатии:
    1
    Пол:
    Мужской
    Ответ: Общее неудобство соби - неюзабилити!

    Мистика млин... В одних шаблонах работает в других нет :(

    Эх пардон... - вечно эти относительные пути..... :X
     
    Последнее редактирование: 29.02.2008

Поделиться этой страницей

Загрузка...