Autor | Zpráva | ||
---|---|---|---|
Jan Žák Profil |
#1 · Zasláno: 27. 9. 2017, 16:24:16
Dobrý den všem, rád bych se poradil se zkušenějšími ohledně rozevíracího menu. Menu mám tvořené pomocí
in_array(basename($_SERVER['PHP_SELF']) . Ve kterém definuji jednotlivé názvy souborů. To proto, že když je menu otevřené a jsem na určité stránce, menu zůstává rozevřené díky class="active" a classs="current". Vše funguje dobře, jen při výběru jiného odkazu z menu se stane, že menu zůstane na sekundu otevřené celé (nedávám sem celý sidebar, kvůli velkému obsahu textu).
Moje otázka je, dá se to nějak zjednodušit, nebo je nějaká lepší a efektivnější cesta jak toto vyřešit? Děkuji moc všem za případné rady. <div id="sidebar"> <!-- Main navigation --> <ul class="navigation widget"> <li <?php if (in_array(basename($_SERVER['PHP_SELF']), array('products.php', 'products-add.php', 'products-edit.php', 'stock.php', 'stock-add.php', 'stock-edit.php', 'contracts.php', 'contracts-add.php', 'contracts-edit.php', 'contracts-watch.php', 'contracts-search.php', 'offers.php', 'offers-add.php', 'offers-edit.php', 'offers-show.php', 'orders-issued.php', 'orders-issued-add.php', 'orders-issued-edit.php', 'orders-issued-show.php', 'shipping-orders.php', 'shipping-orders-add.php', 'shipping-orders-edit.php', 'shipping-orders-show.php', 'reservations.php', 'reservations-add.php', 'reservations-edit.php', 'reservations-show.php', 'receipts.php', 'receipts-add.php', 'receipts-edit.php', 'receipts-show.php', 'picklists.php', 'picklists-add.php', 'picklists-edit.php', 'picklists-show.php'))) echo 'class="active"';?>> <a href="#" title="" class="expand" <?php if (in_array(basename($_SERVER['PHP_SELF']), array('products.php', 'products-add.php', 'products-edit.php', 'stock.php', 'stock-add.php', 'stock-edit.php', 'contracts.php', 'contracts-add.php', 'contracts-edit.php', 'contracts-watch.php', 'contracts-search.php', 'offers.php', 'offers-add.php', 'offers-edit.php', 'offers-show.php', 'orders-issued.php', 'orders-issued-add.php', 'orders-issued-edit.php', 'orders-issued-show.php', 'shipping-orders.php', 'shipping-orders-add.php', 'shipping-orders-edit.php', 'shipping-orders-show.php', 'reservations.php', 'reservations-add.php', 'reservations-edit.php', 'reservations-show.php','receipts.php', 'receipts-add.php', 'receipts-edit.php', 'receipts-show.php', 'picklists.php', 'picklists-add.php', 'picklists-edit.php', 'picklists-show.php'))) echo 'id="current"';?>><i class="fa fa-list" aria-hidden="true"></i>Oběh zboží</a> <ul> <li><a href="<?php echo MODULES; ?>goods/products.php" title="" <?php if((in_array(basename($_SERVER['SCRIPT_NAME']), array ('products.php', 'products-add.php', 'products-edit.php')))) echo 'class="current"'; ?>>Zboží a služby</a></li> <li><a href="<?php echo MODULES; ?>goods/stock.php" title="" <?php if((in_array(basename($_SERVER['SCRIPT_NAME']), array ('stock.php', 'stock-add.php', 'stock-edit.php')))) echo 'class="current"'; ?>>Stav skladu</a></li> <li><a href="<?php echo MODULES; ?>contracts/contracts.php" title="" <?php if((in_array(basename($_SERVER['SCRIPT_NAME']), array ('contracts.php', 'contracts-add.php', 'contracts-edit.php', 'contracts-watch.php', 'contracts-search.php')))) echo 'class="current"'; ?>>Zakázky</a></li> <li><a href="<?php echo MODULES; ?>offers/offers.php" title="" <?php if((in_array(basename($_SERVER['SCRIPT_NAME']), array ('offers.php', 'offers-add.php', 'offers-edit.php', 'offers-show.php')))) echo 'class="current"'; ?>>Nabídky</a></li> <li><a href="<?php echo MODULES; ?>orders/orders-issued.php" title="" <?php if((in_array(basename($_SERVER['SCRIPT_NAME']), array ('orders-issued.php', 'orders-issued-add.php', 'orders-issued-edit.php', 'orders-issued-show.php')))) echo 'class="current"'; ?>>Vydané objednávky</a></li> <li><a href="<?php echo MODULES; ?>shipping-orders/shipping-orders.php" title="" <?php if((in_array(basename($_SERVER['SCRIPT_NAME']), array ('shipping-orders.php', 'shipping-orders-add.php', 'shipping-orders-edit.php', 'shipping-orders-show.php')))) echo 'class="current"'; ?>>Expediční příkazy</a></li> <li><a href="<?php echo MODULES; ?>reservations/reservations.php" title="" <?php if((in_array(basename($_SERVER['SCRIPT_NAME']), array ('reservations.php', 'reservations-add.php', 'reservations-edit.php', 'reservations-show.php')))) echo 'class="current"'; ?>>Rezervace</a></li> <li><a href="<?php echo MODULES; ?>receipts/receipts.php" title="" <?php if((in_array(basename($_SERVER['SCRIPT_NAME']), array ('receipts.php', 'receipts-add.php', 'receipts-edit.php', 'receipts-show.php')))) echo 'class="current"'; ?>>Příjemky</a></li> <li><a href="<?php echo MODULES; ?>picklists/picklists.php" title="" <?php if((in_array(basename($_SERVER['SCRIPT_NAME']), array ('picklists.php', 'picklists-add.php', 'picklists-edit.php', 'picklists-show.php')))) echo 'class="current"'; ?>>Výdejky</a></li> </ul> </li> </ul> <!-- /main navigation --> </div> |
||
Keeehi Profil |
#2 · Zasláno: 27. 9. 2017, 18:19:49
Jan Žák:
„Vše funguje dobře, jen při výběru jiného odkazu z menu se stane, že menu zůstane na sekundu otevřené celé“ To bude nejspíše tím, že se ti načte HTML, ale CSS (případně javascript) co to obsluhuje ještě ne. Spíš než PHP kód bychom potřebovali vidět tvoji stránku v akci. |
||
Jan Žák Profil |
Keeehi:
On je problém v tom, že to mám pouze na disku u sebe. Když se načítá celá stránka, tak nejdřív css soubory, pak js soubory a pak jde zbytek. Tady dávám odkaz na celý soubor sidebar.php Jde mi spíš o to, jestli by to nešlo vyřešit jinak, zjednodušit to, protože vím, že to menu je objemné. Díky |
||
Keeehi Profil |
#4 · Zasláno: 28. 9. 2017, 12:07:47
Jan Žák:
„On je problém v tom, že to mám pouze na disku u sebe.“ A přesně pro tento případ tu je Živá ukázka |
||
Jan Žák Profil |
#5 · Zasláno: 28. 9. 2017, 12:46:57
Keeehi:
Díky, o tomhle jsem nevěděl, pokusil jsem se vše vložit, ale bohužel nedokážu nasimulovat, otevírání a zavírání menu. Menu je tedy se všemi položkami rozevřeno. Živá ukázka |
||
Časová prodleva: 7 let
|
0