We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 7575
    • 85 Posts
    Hallo,

    Ik heb een databank met een hele hoop events onderverdeeld in categorieën, elke categorie kan 1 oudercategorie hebben en meerdere subcategorieën.

    Ik ga nu in modx een tree maken van die categorieën. Maar hoe geef ik best aan elk document mee naar welke categorieën hij moet kijken in mijn databank?
    Ofwel neem ik de ID van het document ofwel maak ik een nieuwe Template Variable "eventcategorie".

    Ik heb de indruk dat ID niet zo een goed idee is.
    Maar ben niet echt zeker.

    Dingen waarvoor ik die TV of ID zou gebruiken is:
    *alle ouder- of kind-categorieën of categorieën van zelfde niveau tonen (uit mijn databank halen)
    *events van die categorie tonen.

    Wat zouden jullie doen?

    Een bijkomende bedenking:
    Mijn databank heeft maar 3 niveaus voor mijn categorieën.
    Als ik de ID zou gebuiken zou ik zo meerdere niveaus kunnen hebben en daarvoor de tree van modx gebruiken.
    Of wie weet ze telfs combineren: de TV gebruiken en de ID van dat document dan gebruiken om aan de ID’s van ouders/kinderen te geraken waar ik dan weer de TV van neem...
      www.tornooi.net online database for (sport) events in dutch.
      To be redesigned, rewritten to modx with multiple languages...
      ANY help appreciated, I cannot offer money but I can offer free advertising on the site. just message me.
    • Als je die waardes makkelijk wil kunnen bijwerken zou ik de TVs doen.

      Als je die waardes alleen een keer voor het aanmaken van de scripts oid wil gebruiken zou ik gewoon de ID gebruiken.
        Mark Hamstra • Developer spending his days working on Premium Extras and a MODX Site Dashboard with the ability to remotely upgrade MODX and extras to make the MODX world a little better.

        Tweet me @mark_hamstra, check my infrequent blog at markhamstra.com, my slightly more frequent ramblings at MODX.today or see code at Github.
        • 25483
        • 741 Posts
        Het beste is om een TV te maken zodat je makkelijk per document de categorieën kunt instellen. Met de "Quill" snippet (http://modxcms.com/extras/package/355) kan je dan de "waardes" invullen voor deze TV. Op die manier kan je automatisch je "document tree" (vanaf de map categorie bijv.) inladen in een drop-down voor je TV. Je kunt hieruit dan de categorie kiezen die je wilt gebruiken.

        Dus dan krijg je dit:

        - TV waarmee je de categorie kan kiezen
        - input type: dropdown list menu, of Listbox (Multi-Select)
        - Bij ’invoer optie waarden’ vul je dan in "@EVAL return $modx->runSnippet("Quill",array(’parent’=>0));", waar parent de container is met de categorieën erin.
          with regards,

          Ronald Lokers
          'Front-end developer' @ h2o Media

          • 7575
          • 85 Posts
          bedankt voor de reacties.
          Maar ik kan Mediaguy niet helemaal volgen.

          Ondertussen wat geprobeerd zonder TV

          heb deze snippet (eerste ooit woehoe!) gemaakt om alle categorieën van een niveau hoger in linkvorm te tonen.

          <?php
          $parent=$modx->resource->get('parent');
          $parentsparent=$modx->getParentIds($parent,1);
          
          $criteria = $modx->newQuery('modResource');
          $criteria->where(array(
             'parent' => $parentsparent[0],
          ));
          $criteria->sortby('pagetitle','ASC');
          $children = $modx->resource->getMany('Children',$criteria);
          foreach ($children as $child){
          	 echo "<a href=\"index.php?id=".$child->get('id')."\">".$child->get('pagetitle')."</a> ";
          }
          ?>


          Ik laat de snippet op elk document uitvoeren.
          Maar op niet categorie documenten moet hij dan de hoogste categorieën tonen en niet de eigenlijke parents van dat document.

          Ik denk dus dat ik toch een TV neem als categorieID.
          Dan kan ik dat op 0 zetten voor niet categoriedocumenten en op de categorieID voor categoriedocumenten.
          zo kan ik dan de TV in de snippet gebruiken om te checken welk deel van de snippet moet uitgevoerd worden.
          dan moet ik in bovenstaande snippet enkel $parentsparent zijn TV checken en als die niet nul is laten en anders mijn hoofdcategorie nemen.

          Nu dus even uitzoeken hoe ik die TV in mijn snippet opvraag...

            www.tornooi.net online database for (sport) events in dutch.
            To be redesigned, rewritten to modx with multiple languages...
            ANY help appreciated, I cannot offer money but I can offer free advertising on the site. just message me.
          • $modx->getObject('modTemplateVar',$criteria);


            Zie verder http://bobsguides.com/revolution-objects.html voor veel info over de MODx Revo api
              Mark Hamstra • Developer spending his days working on Premium Extras and a MODX Site Dashboard with the ability to remotely upgrade MODX and extras to make the MODX world a little better.

              Tweet me @mark_hamstra, check my infrequent blog at markhamstra.com, my slightly more frequent ramblings at MODX.today or see code at Github.
              • 7575
              • 85 Posts
              ok ik heb nu twee snippets:

              showparents
              <?php
              $currentResource = $modx->resource;
              $tv = $modx->getObject('modTemplateVar',array('name'=>'categorie'));
              //zet $kindervan op de juiste id en nul als er geen id is
              if ($categorie<>0){
              	$parentResource = $currentResource->getOne('Parent');
              	if (isset($parentResource)){
              		if ($tv->renderOutput($parentResource->get('id'))<>0){
              			$parentsparentResource = $parentResource->getOne('Parent');
              			if (isset($parentsparentResource)){
              				if ($tv->renderOutput($parentsparentResource->get('id'))<>0){
              					$kinderenvan=$parentsparentResource->get('id');
              				}
              				else{$kinderenvan=3;}
              			}
              			else{$kinderenvan=3;}
              		}
              		else{$kinderenvan=3;}
              	}
              	else{$kinderenvan=3;}
              }
              else{$kinderenvan=3;}
              
              $criteria = $modx->newQuery('modResource');
              $criteria->where(array(
                 'parent' => $kinderenvan,
              ));
              $criteria->sortby('pagetitle','ASC');
              $parents = $modx->resource->getMany('Children',$criteria);
              foreach ($parents as $parent){
              	 echo "<a href=\"index.php?id=".$parent->get('id')."\">".$parent->get('pagetitle')."</a> ";
              }
              ?>


              showchildren
              <?php
              $currentResource = $modx->resource;
              
              if ($categorie<>0){
              	$criteria = $modx->newQuery('modResource');
              	$criteria->where(array(
              	   'parent' => $currentResource->get('id'),
              	));
              	echo $currentResource->get('id');
              	$criteria->sortby('pagetitle','ASC');
              	$children = $modx->resource->getMany('Children',$criteria);
              	foreach ($children as $child){
              		 echo "<a href=\"index.php?id=".$child->get('id')."\">".$child->get('pagetitle')."</a> ";
              	}
              }
              ?>


              Deze worden aangeroepen in mijn template met:
              <div id="links">[[!showparents? &categorie=`[[*categorie]]`!]]</div>
              <div id="rechts">[[!showchildren? &categorie=`[[*categorie]]`!]]</div>


              Zij geven twee keer hetzelfde resultaat terwijl de eerste de ouders ophaalt en de tweede de kinderen.

              Als ik de eerste snippet weghaal toont de tweede wel de kinderen. Dus de code is wel juist.
              Kan iemand mij zeggen hoe dat komt?

                www.tornooi.net online database for (sport) events in dutch.
                To be redesigned, rewritten to modx with multiple languages...
                ANY help appreciated, I cannot offer money but I can offer free advertising on the site. just message me.
                • 7575
                • 85 Posts
                Ik heb bovenstaande vraag maar op de juiste plaats in het engelstalig forum geplaatst.
                dat is Quote from: djemmers at Jun 21, 2010, 07:20 AM

                Hier
                te vinden
                  www.tornooi.net online database for (sport) events in dutch.
                  To be redesigned, rewritten to modx with multiple languages...
                  ANY help appreciated, I cannot offer money but I can offer free advertising on the site. just message me.