Using JElement for a menu paramater - Joomla! Forum - community, help and support


hi have done far:

in views/category/tmpl/default.xml file:

code: select all

<?xml version="1.0" encoding="utf-8"?>
<metadata>
   <layout title="category layout">
      <message>
         <![cdata[category layout desc]]>
      </message>
   </layout>
   <state>
      <name>category layout</name>
      <description>category layout desc</description>
      <url addpath="/administrator/components/com_igallery/elements">
         <param name="cat_id" type="category" section="com_igallery" default="0" label="select category" description="category" />
      </url>
   </state>
</metadata>


in administrator/components/com_igallery/elements/category.php file:

code: select all

class jelementcategory extends jelement
{
   var   $_name = 'category';

   function fetchelement($name, $value, &$node, $control_name)
   {
      $database =& jfactory::getdbo();
      
      $query = "select * #__igallery type = 0 order parent, ordering";
       $database->setquery( $query );
      
       $mitems = $database->loadobjectlist();
   
       $children = array();
   
       if($mitems )
       {
           foreach($mitems $v)
           {
               $pt     = $v->parent;
               $list   = @$children[$pt] ? $children[$pt] : array();
               array_push($list,$v);
               $children[$pt] = $list;
           }
       }
   
       $list = jhtml::_('menu.treerecurse', 0, '', array(), $children, 9999, 0, 0 );
   
       $mitems     = array();
       $mitems[]   = jhtml::_('select.option', '0', jtext::_('top') );
   
       foreach ( $list $item )
       {
           $mitems[] = jhtmlselect::option( $item->id, '&nbsp;&nbsp;&nbsp;'. $item->treename );
       }
   
       $output = jhtml::_("select.genericlist", $mitems, 'cat_id', 'class="inputbox" size="10"', 'value', 'text' );
   
       return $output;
   }
}


when new menu item selected, view "category", select box made in paramaters bit on right, html:

code: select all

<td class="paramlist_value">
   <select name="category" id="category" class="inputbox" size="10">
      <option value="0" >top</option>
      <option value="3" >&nbsp;&nbsp;&nbsp;cat 1</option>
   </select>
</td>


when choose category , save menu item, paramater not saved paramaters in row in jos_menu, , not added url. getting saved paramater can retrieve good, adding url great.

can please give me tip on how both.

thanks,

matt.

matt_nz wrote:hi have done far:

in views/category/tmpl/default.xml file:

code: select all

<?xml version="1.0" encoding="utf-8"?>
<metadata>
   <layout title="category layout">
      <message>
         <![cdata[category layout desc]]>
      </message>
   </layout>
   <state>
      <name>category layout</name>
      <description>category layout desc</description>
      <url addpath="/administrator/components/com_igallery/elements">
         <param name="cat_id" type="category" section="com_igallery" default="0" label="select category" description="category" />
      </url>
   </state>
</metadata>


in administrator/components/com_igallery/elements/category.php file:

code: select all

class jelementcategory extends jelement
{
   var   $_name = 'category';

   function fetchelement($name, $value, &$node, $control_name)
   {
      $database =& jfactory::getdbo();
      
      $query = "select * #__igallery type = 0 order parent, ordering";
       $database->setquery( $query );
      
       $mitems = $database->loadobjectlist();
   
       $children = array();
   
       if($mitems )
       {
           foreach($mitems $v)
           {
               $pt     = $v->parent;
               $list   = @$children[$pt] ? $children[$pt] : array();
               array_push($list,$v);
               $children[$pt] = $list;
           }
       }
   
       $list = jhtml::_('menu.treerecurse', 0, '', array(), $children, 9999, 0, 0 );
   
       $mitems     = array();
       $mitems[]   = jhtml::_('select.option', '0', jtext::_('top') );
   
       foreach ( $list $item )
       {
           $mitems[] = jhtmlselect::option( $item->id, '&nbsp;&nbsp;&nbsp;'. $item->treename );
       }
   
       $output = jhtml::_("select.genericlist", $mitems, 'cat_id', 'class="inputbox" size="10"', 'value', 'text' );
   
       return $output;
   }
}


when new menu item selected, view "category", select box made in paramaters bit on right, html:

code: select all

<td class="paramlist_value">
   <select name="category" id="category" class="inputbox" size="10">
      <option value="0" >top</option>
      <option value="3" >&nbsp;&nbsp;&nbsp;cat 1</option>
   </select>
</td>


when choose category , save menu item, paramater not saved paramaters in row in jos_menu, , not added url. getting saved paramater can retrieve good, adding url great.

can please give me tip on how both.

thanks,

matt.



you should doing like:
return jhtml::_('select.genericlist', $options, ''.$control_name.'['.$name.']', 'class="'.$class.'"', 'id', 'title', $value, $control_name.$name );

i.e. seem passing 'cat_id' third parameter _ (which makes me wonder how getting name="category" in output, since seems should cat_id, anyway). need element use control name , parameter name passed jparameter.

on side note, suggest *not* using category type, since there type called category included in core. either use category provided core, or use different name prevent confusion , other unforeseen problems.

ian





Comments

Popular posts from this blog

Joomla site hacked, cant see front and - Joomla! Forum - community, help and support

Christian Home School Programs - Joomla! Forum - community, help and support

Trouble with PF_OutFlag_I_USE_AUDIO and PF_CHECKOUT_LAYER_AUDIO