1. ВСЁ ЧТО НУЖНО ЗНАТЬ О JOOMLA — ЗА ОДИН ДЕНЬ!
    Гость, не пропусти Joomla!Day Russia 2017 - 20% скидка (JDCB9TOIIIA)
    Скрыть объявление

Выбор категорий при добавлении

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

  1. Offline

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

    Регистрация:
    02.02.2008
    Сообщения:
    2
    Симпатии:
    0
    Нужно вывести список категорий в dropdown при добавлении фирмы, нашел модуль sobidropdown в нем выводится список категорий как нужно.
    Код (PHP):
    1. <?php
    2. // Categories dropdown module for SOBI2
    3. // Author: Ashwin Date (ashwin.date@tekdi.net)
    4. // Website: www.tekdi.net
    5.  
    6. defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
    7. global $database, $mosConfig_live_site, $Itemid;
    8.  
    9. $option     = strtolower( strval( mosGetParam( $_REQUEST, 'option' ) ) );
    10. $first = $params->get('optionone');
    11. $parentid = $params->get('parent');
    12. $mode = $params->get('mode');
    13. $order = $params->get('order');
    14. $parent = ($parentid) ? $parentid : 1;
    15.  
    16. $button = $params->get('showbutton');
    17. if (!$button) $show = 'onchange="this.form.submit()"';
    18.  
    19. switch ($order) {
    20.     default:
    21.     case 'ordering':
    22.     $order_by = 'c.ordering';
    23.     break;
    24.    
    25.     case 'alpha':
    26.     $order_by = 'c.name';
    27.     break;
    28.    
    29.     case 'recency':
    30.     $order_by = 'c.catid DESC';
    31.     break;
    32.    
    33. }
    34.  
    35.    
    36. echo "<link rel='StyleSheet' href='{$mosConfig_live_site}/components/com_sobi2/includes/com_sobi2.css' type='text/css' />\n";
    37.  
    38. require_once($mosConfig_absolute_path.'/components/com_sobi2/config.class.php' );
    39. $config = new sobi2Config;
    40.  
    41. if ($config->sobi2Itemid == 9999999) {
    42.     $itemid = $Itemid;
    43.     } else {
    44.     $itemid = $config->sobi2Itemid;
    45.     }  
    46.    
    47.     // Query to get all subcats for the specified category
    48.     $catsload = "SELECT r.catid AS value, c.name AS text FROM #__sobi2_cats_relations AS r, #__sobi2_categories AS c WHERE r.parentid = $parent AND c.catid = r.catid AND c.published = 1 ORDER BY $order_by";
    49.     $database->setQuery($catsload);
    50.     $allcats = $database->loadObjectList();
    51.  
    52.     if ($mode == 'list' || $mode=='') {
    53.    
    54.         echo '<ul>';
    55.            
    56.             foreach ($allcats as $cat) {
    57.                 echo "<li><a href=\"index.php?option=com_sobi2&catid={$cat->value}&Itemid={$itemid}\">{$cat->text}</a></li>";
    58.             }
    59.        
    60.         echo '</ul>';
    61.    
    62.     } else {   
    63.    
    64.     $firstitem[] = mosHTML::makeOption( '0', $first);
    65.     $allcats = array_merge($firstitem, $allcats);
    66.     $catselect = mosHTML::selectList( $allcats, 'catid', $show.' size="1" class="inputbox" ', 'value', 'text', mosGetParam( $_GET, 'catid' ) );
    67. ?>
    68. <div align="center">
    69.         <p>
    70.         <form method="get" action="index.php" name="Sobi2dmenu" id="Sobi2dmenu">   
    71.         <input type="hidden" name="option" value="com_sobi2" />
    72.         <input type="hidden" name="Itemid" value="<?php echo $config->sobi2Itemid; ?>" />
    73.        
    74.                
    75. <?php
    76.  
    77. echo $catselect;
    78.  
    79. if ($button) { ?><input name="submit" type="submit" value="Go"><?php } ?>
    80. </form>
    81. </p>
    82. </div>
    83.  
    84. <?php } // if ($mode...)

    В PHP не силен... подскажите как добавить вывод категорий через dropdown в файле form.class.php function getCategories()
    И желательно с обработчиком как сдесь http://joomlaforum.ru/index.php?topic=38107.new
     
  2.  
  3. Offline

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

    Регистрация:
    02.02.2008
    Сообщения:
    2
    Симпатии:
    0
    Все сделал сам)
    В файле form.class.php функция getCategories() вставляем в нужном месте следуйщий код:
    Код (PHP):
    1. $catr = new SigsiuTree($config->aTreeImages);
    2. $rt = $catr->getCategories(1);
    3.  
    4. $ch = 1;
    5. $this->dTree = $this->dTree."<script type='text/javascript'><!--
    6. function addCatFromList(index) {
    7.     document.getElementById('sobi2SlectedCats').selectedIndex = 0;
    8.     document.getElementById('sobi2SlectedCatsID').selectedIndex = 0;
    9.     removeCategory();
    10.     switch(index){
    11.         case 0:
    12.         break;";
    13.         foreach ($rt as $cat) {
    14.         $this->dTree = $this->dTree."case {$ch}:
    15.         newNode = new Option(\"{$cat->name}\", \"{$cat->name}\", true, true);
    16.         newNodeID = new Option({$cat->catid}, {$cat->catid}, true, true);
    17.         break;";  $ch++;
    18.             }
    19.         $this->dTree = $this->dTree."break;
    20.         default:
    21.         break;
    22.  
    23.     }
    24.     if(index!=0){
    25.         document.getElementById('sobi2SlectedCats').options[document.getElementById('sobi2SlectedCats').length] = newNode;
    26.         document.getElementById('sobi2SlectedCatsID').options[document.getElementById('sobi2SlectedCatsID').length] = newNodeID;
    27.             for(var a = 0; a < document.getElementById('sobi2SlectedCats').length - 1; ++a) {
    28.                 document.getElementById('sobi2SlectedCats').options[a].selected = false;
    29.                 document.getElementById('sobi2SlectedCatsID').options[a].selected = false;
    30.             }
    31.     }
    32.  
    33. }
    34.      // -->
    35. </script>";
    36.  
    37. $this->dTree = $this->dTree."<select name=\"field_catselect\" id=\"field_catselect\" size=\"1\" class=\"selectlist\" onchange =\"addCatFromList(this.selectedIndex);\" ><option value=\"0\">Выберите категорию</option>";
    38.  
    39. foreach ($rt as $cat) {
    40.                 $this->dTree = $this->dTree."<option value=\"{$cat->name}\">{$cat->name}</option>";
    41.             }
    42. $this->dTree = $this->dTree."</select>";

    в css скрываем не нужное...
     
    Последнее редактирование: 03.03.2009

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

Загрузка...