0 Пользователей и 1 Гость просматривают эту тему.
  • 49 Ответов
  • 12812 Просмотров
*

fuss

  • Осваиваюсь на форуме
  • 38
  • 5 / 0
при добавлении объяв список вышлядит так:
 "раздел1/подраздел1"
 "раздел1/подраздел2"
 "раздел1/подраздел3"
 "разделN/подразделN"
итд
а хочеться компактности по типу
 "раздел1
       подраздел1
       подраздел2
       подраздел3
 раздел2
       подраздел1
       подраздел2
       подраздел3
Итд итп

хотелось бы видеть этот список таким как он реализован в модуле mod_adsmanager_search

Решение найдено но не полностью
необходимо изменить функцию
   function selectCategories($id, $level, $children,&$catid,$root_allowed,$option,$itemid,$linkoption,$current_cat_only =1) {
      if (@$children[$id]) {
         foreach ($children[$id] as $row) {
            if (($root_allowed == 1)||(!@$children[$row->id])) {
               if ($current_cat_only == 0)
               {?>
               <option value="<?php echo sefRelToAbs("index.php?option=$option$linkoption&amp;catid=".$row->id."&amp;Itemid=$itemid"); ?>" <?php if ($row->id ==$catid ) { echo "selected='selected'"; } ?>>
                  <?php echo $level.$row->name; ?>
               </option>
               <?php
               }
               else if ($row->id == $catid)
               {
                  echo $level.$row->name;
               }
            }
            adsmanager_html::selectCategories($row->id, $level."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $children,$catid,$root_allowed,$option,$itemid,$linkoption,$current_cat_only);
         }
      }
   }

и изменить параметр $conf с $conf->root_allowed на 1

<select name='category_choose' onchange="jumpmenu('parent',this)">
               <?php
                 
                if ((@$ad_id)&&($ad_id != ""))
                  $linkoption = "&amp;page=write_ad&amp;adid=$ad_id";
                else
                  $linkoption = "&amp;page=write_ad";
                 if ($catid == 0)
                 echo "<option value='#' selected=selected>".ADSMANAGER_SELECT_CATEGORY."</option>";     
                            echo "<option value='#' selected=selected>".ADSMANAGER_SELECT_CATEGORY."</option>";     
                 adsmanager_html::selectCategories(0,"&nbsp;&nbsp;",$cats,$catid,1,$option,$itemid,$linkoption,0);
               
           
               ?>
               </select>

но при этом я позваляю показывать разделы и разрешаю подавать в них объявления хотя в админке у меня запрещено это делать...
а теперь внимание вопрос...как сделать так чтоб корни разделов отображались но при это в них нельзя было давать объявы.
у тега option есть параметр disabled="disabled" его надо прикрутить ...как, незнаю(((
« Последнее редактирование: 16.02.2009, 00:56:19 от fuss »
*

fuss

  • Осваиваюсь на форуме
  • 38
  • 5 / 0
нашел решение:
надо в функцию selectCategories добавить:
<?php if ($id ==0 ) { echo " disabled=disabled '"; } ?>
и получиться:
function selectCategories($id, $level, $children,&$catid,$root_allowed,$option,$itemid,$linkoption,$current_cat_only =1) {
      if (@$children[$id]) {
         foreach ($children[$id] as $row) {
            if (($root_allowed == 1)||(!@$children[$row->id])) {
               if ($current_cat_only == 0)
               {?>
               <option value="<?php echo sefRelToAbs("index.php?option=$option$linkoption&amp;catid=".$row->id."&amp;Itemid=$itemid"); ?>" <?php if ($row->id ==$catid ) { echo " selected='selected '"; } ?>
               <?php if ($id ==0 ) { echo " disabled=disabled '"; } ?>>
                  <?php echo $level.$row->name; ?>
               
               </option>
               
               <?php
               }
               else if ($row->id == $catid)
               {
                  echo $level.$row->name;
               }
            }
            adsmanager_html::selectCategories($row->id, $level."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $children,$catid,$root_allowed,$option,$itemid,$linkoption,$current_cat_only);
         }
      }
      
      
   }
   
*

fuss

  • Осваиваюсь на форуме
  • 38
  • 5 / 0
получилось так что эту функцию использует и поиск, а там ненужно дисэйблить корни и самый простой выход это просто сдублировать фунцию без дисэйбла корней и назвать ее по другому п приминить ее применение в надлежащем месте.
вот и все...думаю кому-нибудь это пригодиться!
*

homelux

  • Захожу иногда
  • 190
  • 1 / 1
В каком файле все это делал, подскажи пожалуйста.
*

fuss

  • Осваиваюсь на форуме
  • 38
  • 5 / 0
В каком файле все это делал, подскажи пожалуйста.
/components/adsmanager/adsmanager.html.php
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Добрый день!
А не пробовали прикрутить к Adsmanager выбор категории каскадном виде с помощью AJAX и библиотеки JQuery:
Такая структура категорий на сайте:
Категория 1
-- Подкатегория 1 категории 1
-- Подкатегория 2 категории 1
-- Подкатегория 3 категории 1
Категория 2
--Подкатегория 1 категории 2
--Подкатегория 2 категории 2
Категория 3
--Подкатегория 1 категории 3
---Подподкатегория 1 подкатегории 1
---Подподкатегория 1 подкатегории 2
--Подкатегория 2 категории 3
................. и так далее

есть определенные наработки в этом направлении

Вставка в файл Adsmanager.html.php подача объявления строка 1486 где-то около:

   <script  src="components/com_adsmanager/ajax/jquery-1.3.2.js" type="text/javascript"></script>

         <script language="JavaScript" type="text/JavaScript">


/* Функция отсылает ajax-запрос */

function getCategory(pcategory, level) {
    $.ajax({
        url: 'components/com_adsmanager/ajax/list.php',
        type: 'POST',
        data: 'pcategory='+ pcategory +'&level='+ level,
        dataType: 'JSON',
        timeout: 5000,
        beforeSend: function(){
            // Блокируем все необходимы select`ы
            $('select[name^=category_]').attr('disabled', 'disabled');
        },
        complete: function(){            // Снимаем блокировку
            $('select[name^=category_]').removeAttr('disabled');
        },
        success: function(response){
            var data = eval('('+ response +')');
            // Если количество категорий в ответе 0 либо не определено
            if(data.count === 'undefined' || data.count == 0) {
                // просто удаляет старшие уровни каскада
                $('select[name=category_'+ (data.level - 1) +']')
                    .clearField('select[name^=category]')
                    .clearField('span');
                return false;
            }
            if( $('select[name=category_'+ data.level +']').length ) {
                // Если select этого уровня уже существует
                // мы должны удалить все старшие select`ы,
                // очистить старые данные и заполнить новым контентом
                $('select[name=category_'+ data.level +']')
                    .clearField('select[name^=category]')
                    .clearField('span')
                    .fillSelect(data.item);
            } else {
                // Если select этого уровня не существует,
                // мы должны его создать и заполнить данными
                $('#categories select:last').after('<span><br style="margin-bottom:10px; margin-top:10px;"/></span> <select name="category_'+ data.level +'" class="adsmanager_required"></select>');
                $('select[name=category_'+ data.level +']').fillSelect(data.item);
            }

            /* Сбрасываем старый обработчик */
            $('select[name=category_'+ data.level +']').unbind('change');
            /* Вешаем новый */
            $('select[name=category_'+ data.level +']').change(function(){ return clickEvent($(this)); });
            return false;
        },
        error: function(){
            // Сообщаем пользователю, что произошла ошибка
            $('#msg').append('<p>Some error with categories. Please, try later ;)</p>');
            return false;
        }
    });
}

/* Добавляем обработчик событий при изменении пункта списка */
function clickEvent(select)
{
    var id = select.find('option:selected').attr('value');
    /**
     * Если id=-1, значит выбран пункт "Выбор.."
     * значит мы должны просто очистить старшие списки
     */
    if (id == '-1') {
       select.clearField('select[name^=category]').clearField('span');
       return false;
    }

    var level = parseInt(select.attr('name').replace('category_', '')) + 1;
    return getCategory(id, level);
}

$(document).ready(function(){
    /* Развешиваем обработчики */
    $('select[name^=category] option').live("click", function(){
       var select = $(this).parents('select');
      var level = parseInt(select.attr('name').replace('category_', '')) + 1;
      return getCategory(select.find('option:selected').attr('value'), level);
  })

    /* Получаем список категорий */
    getCategory(0, 0);
});



         
</script>
           

            <div id="categories">
               <select name="category_0" class='adsmanager_required' onchange="jumpmenu('parent',this)"><span></span></select>
                </div>

 плюс в директории компонента создаем директорию AJAX и кидаем туда два прикрепленных файла:
list.php - обработчик (необходимо прописать базу данных и логин с пассом для доступа к базе данных)
jquery-1.3.2.js.php - переименовать в js перед копированием - непопиленная библиотека (нужно убрать ненужные функции и сжать)


теперь при по подаче у нас будет выборка из категорий в виде каскадных списков, но нужно еще сделать чтобы эти списки были активными!!!
Если есть профи, может глянут и помогут адаптировать сие чудо под Adsmanager???

[вложение удалено Администратором]
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Добрый день, всем интересующимся.
Реализовано:
Такая структура категорий на сайте:
Категория 1
-- Подкатегория 1 категории 1
-- Подкатегория 2 категории 1
-- Подкатегория 3 категории 1
Категория 2
--Подкатегория 1 категории 2
--Подкатегория 2 категории 2
Категория 3
--Подкатегория 1 категории 3
---Подподкатегория 1 подкатегории 1
---Подподкатегория 1 подкатегории 2
--Подкатегория 2 категории 3
................. и так далее

внешний вид в файле primer.jpg.


В файле ADSMANAGER.HTML.PHP ver 2.5 RC1 на строке 1500 идет вставка меток для генерации.
Далее создаем директорию в папке components/com_adsmanager/, имя директории-ajax и помещаем туда все файлы из архива ajax.
В двух файлах list.php и list_sel.php изменяем логин и пароль для доступа к базе данных, также не забываем сменить и имя таблицы базы (на мой взгляд нужно как то сделать подругому, чтобы не указывать в явном виде пароли и логины в файле обработчике!!!!! Это нужно доделать)

В принципе вроде все.

Некоторые баги(недоработки), может кто поможет?
1. в ие6 идет не корректное отображение категории в которой находишься на текущий момент;
2. Есть какие то проблемы с библиотекой MOOTOOLS

Есть вопросы, предложения, пожелания - помогу чем смогу.

Кто разбирается в JavaScripte - возможно глянет и файлики и найдет ошибки. Я не профи я всего лишь начинающий, поэтому ошибки думаю имеются.


[вложение удалено Администратором]
*

archik

  • Осваиваюсь на форуме
  • 31
  • 4 / 0
(на мой взгляд нужно как то сделать подругому, чтобы не указывать в явном виде пароли и логины в файле обработчике!!!!! Этоделать)

Ни кто еще не взялся проверить на ошибки? А "blackiceua" - большое, человеческое, спасибо.
*

sereja_rwb

  • Осваиваюсь на форуме
  • 28
  • 5 / 0
Хорошая затея...установил...но не работает, ошибок не выдает, не показывает под категории.
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Хорошая затея...установил...но не работает, ошибок не выдает, не показывает под категории.
Значит не подправил корректно запрос к базе, я так думаю
*

vasya000

  • Захожу иногда
  • 109
  • 0 / 0
  • Реально Вася :)
Ребят,можно сделать так,что бы:
-пользователь мог сам создавать категорию-например каким-нибудь своим товаром,+ комент к нему!А если другой пользователь создает такую же категорию(но с другим коментом),то коменты их складываются(при этом категория остается одна и та же)!
Как этого добиться!? !!!???!!!
Помогите! >:(
*

orchanin

  • Захожу иногда
  • 172
  • 3 / 0
Добрый день, всем интересующимся.
Реализовано:
Такая структура категорий на сайте:
Категория 1
-- Подкатегория 1 категории 1
-- Подкатегория 2 категории 1
-- Подкатегория 3 категории 1
Категория 2
--Подкатегория 1 категории 2
--Подкатегория 2 категории 2
Категория 3
--Подкатегория 1 категории 3
---Подподкатегория 1 подкатегории 1
---Подподкатегория 1 подкатегории 2
--Подкатегория 2 категории 3
................. и так далее

внешний вид в файле primer.jpg.


В файле ADSMANAGER.HTML.PHP ver 2.5 RC1 на строке 1500 идет вставка меток для генерации.
Далее создаем директорию в папке components/com_adsmanager/, имя директории-ajax и помещаем туда все файлы из архива ajax.
В двух файлах list.php и list_sel.php изменяем логин и пароль для доступа к базе данных, также не забываем сменить и имя таблицы базы (на мой взгляд нужно как то сделать подругому, чтобы не указывать в явном виде пароли и логины в файле обработчике!!!!! Это нужно доделать)

В принципе вроде все.

Некоторые баги(недоработки), может кто поможет?
1. в ие6 идет не корректное отображение категории в которой находишься на текущий момент;
2. Есть какие то проблемы с библиотекой MOOTOOLS

Есть вопросы, предложения, пожелания - помогу чем смогу.

Кто разбирается в JavaScripte - возможно глянет и файлики и найдет ошибки. Я не профи я всего лишь начинающий, поэтому ошибки думаю имеются.


Все делаю как ты описал! Но вот проблема категории не отображаются вообще вид остается прежним и пропадают из выпадающего списка категории он пуст становиться данные о базе введены верно
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Все делаю как ты описал! Но вот проблема категории не отображаются вообще вид остается прежним и пропадают из выпадающего списка категории он пуст становиться данные о базе введены верно
Дай ссылку глянуть, что у тебя получилось или сделай скрин и выложи. проверяй соединение с базой пароль и логин.
*

vasya000

  • Захожу иногда
  • 109
  • 0 / 0
  • Реально Вася :)
ну ребят!!!!!Помогите!!!!!
*

orchanin

  • Захожу иногда
  • 172
  • 3 / 0
Вопрос сразу  
Цитировать
также не забываем сменить и имя таблицы базы
зачем менять у меня в таком виде  jos_adsmanager_categories и где менять и на что?

Вот скрин пароль однозначно правельный также как и юзер и имя базы! В каждом файле по одному разу нужно ввести данные доступа к базе!

Категории забиты в базу т.е они есть! Также пробовал забивать категории после изменений!

[вложение удалено Администратором]
*

semo777

  • Захожу иногда
  • 76
  • 0 / 0
Аналогичная проблема список категорий не отображаетсяяяя...
Прописал в обоих php-шках пути, результат = нет категорий.
$db = mysql_connect ("localhost","kv","pass");
mysql_select_db ("kv",$db);
« Последнее редактирование: 29.08.2009, 15:34:20 от semo777 »
*

MOHCTPUK

  • Захожу иногда
  • 50
  • 5 / 6
  • d[-_-]b
А как сделать так:
У меня 2 главных категории, вних подкотегории. Мне надо сделать 2 кнопки, для добавления объявления. Так мне надо что бы при нажатии на одну кнопку что бы сразу выводилось форма подачи объявления 1 главной категории, Жму на второую кнопку что бы появилось бы вторая форма подачи объявления для 2 категории. Одим словом форми не должи видеть другие категории, я должны выдеть только подкотегории.

Теоритический думаю что то так сделать.
Задать ID главной категории, и задать что бы был вывод только тех котегории которые принодлежат её, и аналогично вделать для второй категории так же.
*

Rudolf

  • Захожу иногда
  • 65
  • 11 / 0
а не проще сделать еще одну такую же функцию одну из них подправить для формы добавления, а другую оставить как есть - для поиска
бизнес-планирование, финансовое моделирование
*

mirrustam

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Значит не подправил корректно запрос к базе, я так думаю


Скачал выложенный вами скрипт

Нашел кучу ошибок и пришёл к выводу, что вы его чуть подредактировали
перед публикацией для придания красоты и при этом внесли кучу ошибок по невнимательности.

например:
в файле needselect.js начиная со строки 161 участок кода
function testGetArr () {
        var adss = String(location);
        var newadss = /catid.{1,4}&/;
        if ( adss.test(newadss)!= true) {

будет работать только если его записать вот так
function testGetArr () {
        var adss = String(location);
        var newadss = /catid.{1,4}&/;
        if ( newadss.test(adss)!= true) {

т.е в 4-ой строке перепутанны местами переменные newadss и adss
и таких ошибок нашлось очень много.
все не выкладываю так как путаница довольно большая да и сам я перепутать мог многое

может выложите или скините на email те варианты , что у вас работают needselect.js и ajax.zip

буду очень благодарен!
« Последнее редактирование: 23.09.2009, 09:23:29 от mirrustam »
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Эти файлы работают! Не все корректно, в частности в  IE, в остальных браузерах все ок. Пишите проблемы может помогу, хотя сейчас этим и не занимаюсь толком...

[вложение удалено Администратором]
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Аналогичная проблема список категорий не отображаетсяяяя...
Прописал в обоих php-шках пути, результат = нет категорий.
$db = mysql_connect ("localhost","kv","pass");
mysql_select_db ("kv",$db);

А где все файлики лежат со скриптами? Путь к папке на сервере?
*

mirrustam

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Эти файлы работают! Не все корректно, в частности в  IE, в остальных браузерах все ок. Пишите проблемы может помогу, хотя сейчас этим и не занимаюсь толком...
В новом архиве появился ещё одни файл select.js с содержанием похожим на needselect.js
какой из них подключать?
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
Так все же есть решение работающие и где что править. Спасибо.
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
В новом архиве появился ещё одни файл select.js с содержанием похожим на needselect.js
какой из них подключать?
Так все же есть решение работающие и где что править. Спасибо.

Нужно только вписать свои логин, пароль, имя базы и сделать вставку в код adsmanager.html.php, а также закомментировать строки в нем же и все. Инфо ниже
« Последнее редактирование: 29.09.2009, 11:46:53 от blackiceua »
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
В новом архиве появился ещё одни файл select.js с содержанием похожим на needselect.js
какой из них подключать?
Код
		<?php
}
}

function displaySingleCatChooser($ad_id,$conf,$option,$cats,$catid,$itemid)
{
global $mosConfig_absolute_path;

if (($ad_id != "")&& file_exists( $mosConfig_absolute_path . "/components/com_paidsystem/api.paidsystem.php"))
{
$display_current_cat_only = 1;
adsmanager_html::selectCategories(0,"",$cats,$catid,$conf->root_allowed,""/*$link*/,$display_current_cat_only);
}
else
{
?>
<script  src="components/com_adsmanager/ajax/jquery-1.3.2.js" type="text/javascript"></script>
<script src="components/com_adsmanager/ajax/needselect.js" type="text/JavaScript"></script>

<div id="categories">
<select name="category_0" class='adsmanager_required'>
        <span>
        </span>
        </select>
    </div>


<?php
/*
if ((@$ad_id)&&($ad_id != ""))
$link = "index.php?option=$option&amp;Itemid=$itemid&amp;page=write_ad&amp;adid=$ad_id";
else
$link = "index.php?option=$option&amp;Itemid=$itemid&amp;page=write_ad";
if ($catid == 0)
echo "<option value='#' selected=selected>".ADSMANAGER_SELECT_CATEGORY."</option>";
if (function_exists("selectPaidCategories"))
selectPaidCategories(0,"",$cats,$catid,$conf->root_allowed,$link,0);
else
adsmanager_html::selectCategories(0,"",$cats,$catid,$conf->root_allowed,$link,0); */
?>

<?php
}
}

function displayMultipleCatsChooser($selectedcats,$cats,$conf,$option,$itemid)
{
?>

Вставляется в adsmanager.html.php вот это:
<script  src="components/com_adsmanager/ajax/jquery-1.3.2.js" type="text/javascript"></script>
<script src="components/com_adsmanager/ajax/needselect.js" type="text/JavaScript"></script>

   <div id="categories">
      <select name="category_0" class='adsmanager_required'>
        <span>
        </span>
        </select>
    </div>


Куда сориентируйся по вышеприведенному куску кода

Обрати внимание также на комментированные строки!
« Последнее редактирование: 29.09.2009, 11:41:35 от blackiceua »
*

MOHCTPUK

  • Захожу иногда
  • 50
  • 5 / 6
  • d[-_-]b
Так работает или не данный хак, или опять кглюки с IE ?
Пример работы можно посомтреть где нибудь.
спс.
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Так работает или не данный хак, или опять кглюки с IE ?
Пример работы можно посомтреть где нибудь.
спс.

  Это не хак! Для корректной работы в IE нужно дописать яваскрипт. Посмотреть к сожалению негде, установлено и работает только на локальном сервере. Все остальное работает корректно
*

mirrustam

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Вопрос сразу   зачем менять у меня в таком виде  jos_adsmanager_categories и где менять и на что?

Вот скрин пароль однозначно правельный также как и юзер и имя базы! В каждом файле по одному разу нужно ввести данные доступа к базе!

Категории забиты в базу т.е они есть! Также пробовал забивать категории после изменений!
ну как, получилось подключить скрипт?
Можно ссылку на ваш сайт ?
*

blackiceua

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Получилось настроить скрипт или нет? Мне тоже интересно. Есть проблемы?
« Последнее редактирование: 08.10.2009, 12:07:54 от blackiceua »
*

mirrustam

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Получилось настроить скрипт или нет? Мне тоже интересно. Есть проблемы?
Нет не получилось . В вашем последнем скрипте все теже описанные мной ошибки:
например , переменные все местами перепутаны, и другие.
Я его настроил только до момента когда выбирается 3-и селект - сыпится куча ошибок в любом браузере.
Когда вы готовили файлы к тому что бы выложить сюда вы всё там перепутали. Возьмите все файлы с рабочего проекта и выложите сюда как есть без изменений - разве что свои пароли поменяйте.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поле DropDown (в объявлении показывается весь список, а не выбранный пункт)

Автор elipssp

Ответов: 1
Просмотров: 772
Последний ответ 13.02.2017, 15:17:25
от grinat
Письмо админу при добавлении нового объявления

Автор Gover

Ответов: 4
Просмотров: 865
Последний ответ 02.06.2016, 19:38:14
от biper
Регистрация при добавлении объявления

Автор Maxandrey

Ответов: 1
Просмотров: 602
Последний ответ 13.02.2016, 23:26:55
от Maxandrey
AdsManager - Список

Автор SerGunSter

Ответов: 2
Просмотров: 884
Последний ответ 31.01.2016, 17:53:35
от voras
Многоязычность подсказок при добавлении объявления в AdsManager

Автор kanevlife

Ответов: 0
Просмотров: 3689
Последний ответ 26.01.2016, 21:28:50
от kanevlife