"Merge" twee menu modules (PHP vraag, Adsmanager/CK Accordeon)

  • Meander
  • Onderwerp Auteur
  • Gebruiker
  • Gebruiker
  • Devoted Joomla User
Meer
05 feb 2020 16:02 #20793 door Meander
Ik kom ergens niet uit, en ik hoop dat iemand mij kan helpen.
De standaard menu module van Adsmanager vindt ik erg onduidelijk.
Met het aanklikken van de Root categorie verschijnen alle subcategorieën er onder in een rechte lijn, en zonder verschil met de hoofdcategorie.
Echter, het adsmanager menu laat wel het aantal geplaatste advertenties in de betreffende categorieeën zien.

Ik heb ook de module Accordeon CK geïnstalleerd, en die is veel duidelijker en mooier qua layout.
Maar die laat weer geen aantal advertenties per categorie zien.

Ik ben al een tijdje aan het stoeien geweest in mod_adsmanager_menu.php om te proberen een class aan de subcategorieën toe te voegen zodat ik ze in css kon stylen naar het idee van het accordeon menu. De wijzigingen worden wel doorgevoerd, maar het is steeds op alle categorieën m.u.v. de eerste.
Het gaat om dit stukje code:
Code:
if (!function_exists("displayMenuCats")) { function displayMenuCats($id, $level, &$children,$current_list,$displaynumads,$rootid) { global $cur_template; $catid = JRequest::getInt('catid', -1 ); if (@$children[$id]) { foreach ($children[$id] as $row) { if ($row->id == $catid) $class = "current active"; else if (@$current_list[count($current_list) - 1 -$level] == $row->id) $class = "deeper parent active"; else $class= ""; ?> <li class="<?php echo $class?>"> <?php if ($rootid != 0) { $link = TRoute::_("index.php?option=com_adsmanager&view=list&rootid=$rootid&catid=".$row->id); } else { $link = TRoute::_("index.php?option=com_adsmanager&view=list&catid=".$row->id); } if ($displaynumads == 1) { echo '<a href="'.$link.'" ><span>'.$row->name.' ('.$row->num_ads.')</span></a>'; } else { echo '<a href="'.$link.'" ><span>'.$row->name.'</span></a>'; } if (@$current_list[count($current_list) - 1 -$level] == $row->id) { echo "<ul>"; displayMenuCats($row->id, $level+1, $children,$current_list,$displaynumads,$rootid); echo "</ul>"; } ?> </li> <?php

Het mooiste zou zijn wanneer ik de "ads per category" functie aan de accordeon module kon toevoegen.
Maar wanneer ik de Adsmanager menu een beetje kan stylen in de layout van het Accordeon menu dan ben ik ook tevreden.
Ik ben beter in css dan in php.

Tevens: Het accordeon menu is gemaakt met gewone menu items van Joomla. Aangezoen er geen advertenties in de root geplaatst mogen worden heb ik deze gelinkt als een interne URL met het "# "teken. Wanneer je dan de root categorie aanklikt dan klappen de subcategorieën uit terwijl je op dezelfde pagina blijft.
Bij het Adsmanager menu ga je bij het aanklikken van de root categorie ook naar de pagina met alle categorieën, waarbij dan de subcategorieën in het menu uitklappen.
Ik zou dat ook heel graag zo willen hebben al bij het accordeon menu; dus root aanklikken, op dezelfde pagina blijven, maar wel het menu uitgeklapt.

Ik hoop dat ik het goed heb uitgelegd, en dat iemand mij kan helpen. Zie bijlage met wat ik bedoel.

Alvast bedankt voor het lezen.
Bijlagen:
Onderwerp is gesloten.
  • Meander
  • Onderwerp Auteur
  • Gebruiker
  • Gebruiker
  • Devoted Joomla User
Meer
05 feb 2020 16:05 #20794 door Meander
Zie pas de tikfouten na het plaatsen, excuus. Wal al de tweede keer dat ik het hele verhaal typte. :(
Onderwerp is gesloten.
  • Meander
  • Onderwerp Auteur
  • Gebruiker
  • Gebruiker
  • Devoted Joomla User
Meer
06 feb 2020 13:50 #20807 door Meander
Opgelost. Voor wie het ook wil weten:
Code:
echo '<ul class="hier de class">'; displayMenuCats($row->id, $level+1, $children,$current_list,$displaynumads,$rootid); echo "</ul>";

Wel vreemd, want ik had dit al een paar keer geprobeerd, en toen werkte het niet.
Onderwerp is gesloten.
Gemaakt door Kunena