× This forum has been locked. Please submit new Feature Requests on GitHub: github.com/Jensen-Technologies/component-creator-issues/issues

Nested Sets

9 Jahre 9 Monate her #666 von Yonder Media
Nested Sets wurde erstellt von Yonder Media
Having used Component Creator quite extensively, one of the things I find myself having to make over and over again, are nested set models.  For instance, Nested Sets are used in Joomla's native Category component, allowing n-tiered nesting of categories associated with other categories.

In the Table class, this requires changing it from JTable to JTableNested, and including code in the prepareTable function of the model class (an example is shown below:)
protected function prepareTable($table)
{
       jimport('joomla.filter.output');
       $db = JFactory::getDbo();

       // Specify where to insert the new node.
       $parent = @$table->parent_id;
       if (!empty($parent))
       {
           $table->setLocation($parent, 'last-child');
       }
       else
       {
           $rootId = $table->getRootId();
           if ($rootId === false)
           {

               $db = JFactory::getDbo();
               $sql = 'INSERT INTO #__yomo_ussd_article_category'
                   . ' SET parent_id = 0'
                   . ', lft = 0'
                   . ', rgt = 1'
                   . ', level = 0'
                   . ', title = '.$db->quote('root')
                   . ', alias = '.$db->quote('root')
                   . ', access = 1'
                   . ', path = '.$db->quote('')
               ;
               $db->setQuery($sql);
               $db->query();

               $parent = $db->insertid();
               $table->setLocation($parent, 'last-child');
           }
           else
           {
               $table->setLocation($rootId, 'last-child');
           }

       }

       # Check that the node data is valid.
       $table->check();

       # Store the node in the database table.
       $table->store();
}

Additionally, then, this requires changes to the View classes and markup output, to correctly show entries as being nested within each other.  For this, I've borrowed code from Joomla's Category Component to achieve this.

Whilst I can get this all to work, it would be a really cool feature to have this built-in to Component Creator!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

9 Jahre 9 Monate her #667 von RIP Graphics
RIP Graphics antwortete auf Nested Sets
+1

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

9 Jahre 8 Monate her #700 von Pete
Pete antwortete auf Nested Sets
+1

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

9 Jahre 8 Monate her #710 von Andres Maeso
Andres Maeso antwortete auf Nested Sets
Hi there

We like this feature though it wouldn't be easy to implement. I have added it to our roadmap poll, we will finishit soon to see what features are more interesting to all of our users. Then we will create a roadmap we will follow to improve Component Creator.

Best regards,

Andrés.

Andrés Maeso
Customer relations manager at Joomla Component Creator.

Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

9 Jahre 7 Monate her #771 von Søren Beck Jensen
Søren Beck Jensen antwortete auf Nested Sets
Please note that this relates only to nested sets of custom tables. You can always use the Joomla Category field and create as many nested categories you would like.

Thanks to Brian Teeman for pointing this out.

Søren Beck Jensen
Founder, Component-Creator.com

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

9 Jahre 5 Monate her #876 von Ilya Protasov
Ilya Protasov antwortete auf Nested Sets
+1

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.063 Sekunden
Powered by Kunena Forum

Wir verwenden eigene Cookies und Cookies von Drittanbietern, um Ihr Nutzererlebnis zu verbessern und Ihnen einen optimalen Service zu bieten. Wenn Sie die Website weiter nutzen, gehen wir davon aus, dass Sie mit unserer Cookie-Politik einverstanden sind.