Salut
Am incercat sa pun icons pe primul nivel al meniului din tutorialu tau: Creare site de la zero si nu reusesc sa il adaug pe butonele care deschid sub categoria. poti sa ma ajuti cu un sfat?
Si daca ai ceva asemanator si cu al 3 nivel de submeniu?
Creare meniu in site cu php
-
- Mesaje:61
Creare meniu in site cu php
MarPlo
Mesaje:4343
Salut,
Nu ma mai ocup cu programare website; totusi, posteaza ce ai incercat si am sa vad daca pot ajuta.
Cat despre meniu de linkuri cu mai multe nivele, pe site e un script ajax de creare multi-level menu la pagina:
marplo.net/php-mysql/creare-meniu-multiple-nivele-script-ajax
Si am gasit ceva pe internet la adresa:
Multi-Level Menu
Nu ma mai ocup cu programare website; totusi, posteaza ce ai incercat si am sa vad daca pot ajuta.
Cat despre meniu de linkuri cu mai multe nivele, pe site e un script ajax de creare multi-level menu la pagina:
marplo.net/php-mysql/creare-meniu-multiple-nivele-script-ajax
Si am gasit ceva pe internet la adresa:
Multi-Level Menu
dim
Mesaje:61
La butoanele fara sub meniu le afiseza la restu imi da eroare, uite cam asta am facut:
si ma gandeam daca pot sa fac si al 3 nivel introducand inca un array ? adica ceva de genul asta:
Cod: Selectaţi tot
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$meniu = '<li id="menu-administrtor"><a href="index2.php"><i class="fa-solid fa-user-gear"></i> Panou General</a></li>';
$pags['category'] = [
'titl' => 'catalog_&filme desene',
'desc' => 'Descrierea paginii catalog',
'icon' => 'fas fa-home',
];
$pags['system'] = array(
'titl' => 'system',
'desc' => 'Descrierea paginii system',
'icon' => 'fas fa-sitemap',
);
$pags['poze'] = array(
'familie'=>array(
'titl'=>'familie',
'desc'=>'Descriere pt. pagina Poze Familie',
),
'prieteni'=>array(
'titl'=>'prieteni',
'desc'=>'Descriere pt. pagina Poze Prieteni2',
),
'natura'=>array(
'titl'=>'natura',
'desc'=>'Descriere pt. pagina Poze Natura',
),
'icon' => 'fas fa-image',
);
$pags['media'] = array(
'filme'=>array(
'titl'=>'filme',
'desc'=>'Descriere pt. pagina Poze Familie',
),
'poze'=>array(
'titl'=>'poze',
'desc'=>'Descriere pt. pagina Poze Prieteni',
),
'albume'=>array(
'titl'=>'albume',
'desc'=>'Descriere pt. pagina Poze Natura',
),
'icon'=> 'fas fa-home',
);
$pags['stil'] = array(
'titl' => 'stil',
'desc' => 'Descrierea paginii stil',
'icon' => 'fas fa-home'
);
foreach($pags as $kei=>$pagini) {
if (isset($pags[$kei]['titl'])) {
$link = '<a href="index2.php?route='. urlencode($kei).' "title="'. $pagini['titl'].'"><i class="'. $pagini['icon'].'"></i>'. str_replace('_', ' ', ucfirst($kei)). '</a>';
$meniu .= '<li id="menu-'. $pagini['titl'].'">'. $link. "</li>\r\n";
}
else {
$meniu .= '<li id="menu-'. ucfirst($kei).'"><a href="#collapse-'. ucfirst($kei).'" data-bs-toggle="collapse" class="parent collapsed"><i class="'. $pagini['icon'].'"></i>'. str_replace('_', ' ', ucfirst($kei)). '</a>
<ul id="collapse-'. ucfirst($kei).'" class="collapse">';
foreach($pagini as $kei2=>$pagini2) {
$link = '<a href="index2.php?route='. urlencode($kei). '&sm='. urlencode($kei2).'" title="'. $pagini2['titl']. '">'. str_replace('_', ' ', ucfirst($kei2)). '</a>';
$meniu .= '<li>'.$link."</li>\r\n";
}
$meniu .= '</ul></li>';
}
}
$meniu .= '</ul>';
/*** Prelucrarea datelor primite prin GET ***/
if (isset($_GET['route']) && isset($pags[urldecode(trim($_GET['route']))])) {
$pg = urldecode(trim($_GET['route']));
$obj = $pags[$pg];
if (isset($_GET['sm']) && isset($obj[urldecode(trim($_GET['sm']))])) {
$pg = urldecode(trim($_GET['sm']));
$obj = $obj[$pg];
}
$titlu = $obj['titl'];
$desc = $obj['desc'];
}
Cod: Selectaţi tot
$pags['media'] = array(
'filme'=>array(
'youtube'=>array(
'titl'=>'youtube',
'desc'=>'Descriere pt. pagina youtube',
),
'Instagram'=>array(
'titl'=>'Instagram',
'desc'=>'Descriere pt. pagina Instagram',
),
'hbo go'=>array(
'titl'=>hbo go',
'desc'=>'Descriere pt. pagina hbo go',
),
),
'poze'=>array(
'titl'=>'poze',
'desc'=>'Descriere pt. pagina Poze Prieteni',
),
'albume'=>array(
'titl'=>'albume',
'desc'=>'Descriere pt. pagina Poze Natura',
),
);
MarPlo
Mesaje:4343
Incearca urmatorul script. Are meniu cu 3 nivele (Aici la: Poze->Natura) si icon la fiecare link.
- Fisierul admin.php
- Fisierul index.php
- Fisierul grafic.css
- Fisierul admin.php
Cod: Selectaţi tot
<?php
// Datele initiale pt. HEAD ale pagini "index"
$titlu = 'Titlul paginii index';
$desc = 'Descrierea pentru pagina index';
$keys = 'cuvnte, cheie, pagina, index';
//Pt icons in meniu
$icons =[
'social'=>'fas so-image',
'facebook'=>'fas fb-image',
'youtobe'=>'fas yo-image',
'poze'=>'fas po-image',
'natura'=>'fas na-image',
'pasari'=>'fas pa-image',
'animale'=>'fas an-image',
'familie'=>'fas fa-image',
'prieteni'=>'fas pr-image',
'contact'=>'fas co-image'
];
/*** Matricea cu datele despre paginile adaugate in site, care apar in "context" ***/
// Este formata din numele paginilor ca si cheie principala
// Fiecare contine un array cu: Titlul paginii, Descriere si Cuvinte-cheie (pt. sectiunea HEAD)
// Sau pt. submeniuri, cu alte array imbricate, ce contin datele de mai sus (cum e la 'poze')
$pags['social'] =[
'facebook'=>[
'titl'=>'Titlul pt. pagina Poze facebook',
'desc'=>'Descriere pt. pagina Poze facebook',
'keys'=>'cuvinte, cheie, poze, facebook'
],
'youtobe'=>[
'titl'=>'Titlul pt. pagina Poze youtobe',
'desc'=>'Descriere pt. pagina Poze youtobe',
'keys'=>'cuvinte, cheie, poze, youtobe'
]
];
$pags['poze'] =[
'natura'=>[
'pasari'=>[
'titl'=>'Titlul paginii pasari',
'desc'=>'Descrierea paginii pasari',
'keys'=>'cuvinte, cheie, pasari'
],
'animale'=>[
'titl'=>'Titlul paginii animale',
'desc'=>'Descrierea paginii animale',
'keys'=>'cuvinte, cheie, animale'
]
],
'familie'=>[
'titl'=>'Titlul pt. pagina Poze Familie',
'desc'=>'Descriere pt. pagina Poze Familie',
'keys'=>'cuvinte, cheie, poze, familie'
],
'prieteni'=>[
'titl'=>'Titlul pt. pagina Poze Prieteni',
'desc'=>'Descriere pt. pagina Poze Prieteni',
'keys'=>'cuvinte, cheie, poze, prieteni'
]
];
$pags['contact'] =[
'titl'=>'Titlul paginii Contact',
'desc'=>'Descrierea paginii Contact',
'keys'=>'cuvinte, cheie, contact'
];
//Returneaza tagul pt icons
function set_iconm($k){
global $icons;
$ic = isset($icons[$k]) ?'<i class="'. $icons[$k].'"></i>' :'';
return $ic;
}
// Daca doriti sa adaugati alte meniuri sau submeniuri pt. alte pagini de site
// Adaugati in continuare, comform modelului de mai sus
// De asemenea, trebuie sa adaugati in dir. "pagini" fisierul ce contine contextul afisat de acel meniu
?>
- Fisierul index.php
Cod: Selectaţi tot
<?php
// Exemplu creare site cu PHP, de la https://marplo.net/
ini_set('display_errors',1);
error_reporting(E_ALL);
// Include fisierul "admin.php", in care e matricea cu datele fiecarei pagini
include('admin.php');
/*** Crearea variabilei ce contine codul HTML pt. meniu, cu paginile din matrice ***/
$meniu = '<ul><li><a href="index.php" title="Pagina principala"><i class="fas pp-image"></i>Pagina principala</a></li>'; // Initializeaza variabila pt. meniu
// Parcurge matricea cu foreach() si adauga un link in <li> pt. fiecare pagina
// Verifica daca sunt submeniuri si creaza codul HTML pt. ele
foreach($pags as $kei=>$pagini) {
// Daca elementul are cheia 'titl', e considerat cu link direct, fara submeniu
if (isset($pags[$kei]['titl'])) {
// Daca e meniu direct
// Creaza link-ul, codificat urlencode() si prima litera din nume majuscula cu ucfirst()
$link = '<a href="index.php?id='. urlencode($kei).'" title="'. $pagini['titl']. '">'. set_iconm($kei). str_replace('_', ' ', ucfirst($kei)). '</a>';
// Adauga link-ul in meniu
$meniu .= '<li>'. $link. "</li>\r\n";
}
else {
// Altfel e considerat cu submeniu
$meniu .= '<li class="smeniu">'.set_iconm($kei).'<span>'. str_replace('_', ' ', ucfirst($kei)). '</span><ul>';
// Parcurge submeniul
foreach($pagini as $kei2=>$pagini2) {
// Daca elementul are cheia 'titl', e considerat cu link direct, fara submeniu
if (isset($pagini[$kei2]['titl'])) {
// Daca e meniu direct
// Creaza link-ul, codificat urlencode() si prima litera din nume majuscula cu ucfirst()
$link = '<a href="index.php?id='. urlencode($kei). '&sm='. urlencode($kei2).'" title="'. $pagini2['titl']. '">'. set_iconm($kei2). str_replace('_', ' ', ucfirst($kei2)). '</a>';
// Adauga link-ul in meniu
$meniu .= '<li>'. $link. "</li>\r\n";
}
else{
// Altfel e considerat cu submeniu
$meniu .= '<li class="smeniu2">'.set_iconm($kei2).'<span>'. str_replace('_', ' ', ucfirst($kei2)). '</span><ul>';
// Parcurge submeniul
foreach($pagini2 as $kei3=>$pagini3) {
// Creaza link-ul, codificat urlencode() si prima litera din nume majuscula cu ucfirst()
$link = '<a href="index.php?id='. urlencode($kei). '&sm='. urlencode($kei2). '&sm2='. urlencode($kei3).'" title="'. $pagini3['titl']. '">'. set_iconm($kei3). str_replace('_', ' ', ucfirst($kei3)). '</a>';
// Creaza submeniul cu link-ul si numele
$meniu .= '<li>'. $link. "</li>\r\n";
}
$meniu .= '</ul></li>'; // Inchide codul HTML pt. submeniu
}
}
$meniu .= '</ul></li>'; // Inchide codul HTML pt. submeniu
}
}
$meniu .= '</ul>'; // Inchide codul HTML pt. tot meniul
/*** Prelucrarea datelor primite prin GET ***/
// Verifica daca sunt primite date prin GET si daca acestea se afla in matrice
// Creaza variabilele pt. meta-tags si continutul ce va fi inclus
if (isset($_GET['id']) && isset($pags[urldecode(trim($_GET['id']))])) {
$pg = urldecode(trim($_GET['id'])); // Numele paginii, decodificat URL, care va fi inclusa pt. continut
$obj = $pags[$pg]; // Obiectul cu datele despre pagina
// Daca e accesata pagina din submeniu
if (isset($_GET['sm']) && isset($obj[urldecode(trim($_GET['sm']))])) {
$pg = urldecode(trim($_GET['sm'])); // Numele paginii, decodificat URL, care va fi inclusa pt. continut
$obj = $obj[$pg];
}
// Daca e accesata pagina din submeniu-2
if (isset($_GET['sm2']) && isset($obj[urldecode(trim($_GET['sm2']))])) {
$pg = urldecode(trim($_GET['sm2'])); // Numele paginii, decodificat URL, care va fi inclusa pt. continut
$obj = $obj[$pg];
}
// Seteaza variabilele cu datele pt. sectiunea HEAD
$titlu = $obj['titl'];
$desc = $obj['desc'];
$keys = $obj['keys'];
}
// In continuare, codul HTML in care se adauga variabilele necesare generate de PHP
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title><?php echo $titlu; ?></title>
<meta name="description" content="<?php echo $desc; ?>" />
<meta name="keywords" content="<?php echo $keys; ?>" />
<meta name="robots" content="index, follow" />
<link href="grafic.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- Start Top pagina -->
<div id="top">
<h1>Sectiunea din top-ul paginii</h1>
<h2>Va apare in toate paginile site-ului</h2>
</div>
<!-- Start Corp pagina -->
<div id="corp">
<!-- Start Meniu -->
<div id="meniu">
<h4>Meniu</h4>
<?php echo $meniu; ?>
</div>
<!-- Start Context -->
<div id="context">
<?php
// Daca e setata o valoare pt. variabila $pg,
// Variabila devinita cand e accesat un link din meniu
if (isset($pg)) {
// Include fisierul in care e continutul
include('pagini/'.$pg.'.php');
}
else {
// Daca nu e apelat vreun link din meniu
// Afiseaza continutul dorit pt. pagina "index"
// Il puteti afisa cu 'echo' sau sa includeti din alt fisier extern
echo '<h3>Continut initial pentru pagina index</h3>
<h3>Creati cu "echo" tag-urile HTML sau includeti continut din alt fisier extern,<br />
cu include("fisier.php") sau readfile("fisier.html")</h3>';
}
?>
</div>
</div>
<!-- Start Subsol pagina -->
<div id="subsol">
<h4>Continutul din subsolul paginii</h4>
<h4>Va apare in toate paginile site-ului</h4>
</div>
</body>
</html>
- Fisierul grafic.css
Cod: Selectaţi tot
body {
margin:0px auto;
width:1000px;
background-color:#e8e8fe;
text-align:center;
}
/* Grafica pentru sectiunea Top */
#top {
margin:2px auto;
position:relative;
border:1px solid #ceceda;
background-color:#dedeee;
}
/* Grafica pentru sectiunea Corp */
#corp {
position:relative;
margin:2px auto;
width:100%;
border:1px solid #eeeefe;
background-color:#ededfe;
text-align:left;
}
/* Grafica pentru Meniu */
#meniu {
float:left;
position:relative;
width:250px;
margin:2px auto;
border:1px solid #dafedf;
background-color:#deefee;
padding-left:5px;
}
#meniu ul {
margin:0px;
background-color:#cceede;
list-style:none;
padding:0px 0px 1px 5px;
}
#meniu ul li {
display:block;
position:relative;
margin:0px;
width:235px;
border:1px solid silver;
padding:2px 0px 2px 5px;
}
#meniu ul li a {
display:block;
margin:0px;
width:100%;
border:1px solid #daccfe;
}
#meniu ul li a:hover {
background-color:#ebede0;
}
#meniu .smeniu ul, #meniu .smeniu2 ul {
display:none;
position:absolute;
top:0px;
}
#meniu li span {
overflow:hidden;
}
#meniu .smeniu:hover ul:not(.smeniu2 ul), #meniu .smeniu2:hover ul {
display:block;
left:190px;
z-index:12;
}
/* Grafica pentru Context */
#context {
min-height:200px;
margin:0px 1px 1px 260px;
padding:3px 5px;
}
/* Grafica pentru sectiunea Subsol */
#subsol {
clear:both;
position:relative;
margin:2px auto;
border:1px solid #ceced8;
background-color:#ebede0;
z-index:10;
}
dim
Mesaje:61
Icons alea nu apre la meniul principale.
Am incrcat sa inlocuiesc:
cu:
dar in felul asta imi pune ultimul icons din sub meniu in meiulul principal
In al doilea rand linkul din sub meniuri returneaza daor pagina principala, cu un "id".
Ai vrun link sau tutorial unde pot intelege mai bine cum sa configurez si creez aceste lincuri legate de index?
Am incrcat sa inlocuiesc:
Cod: Selectaţi tot
else {
// Altfel e considerat cu submeniu
$meniu .= '<li class="smeniu"><a href="#"><span>'. str_replace('_', ' ', ucfirst($kei)). '</a></span><ul>';
// Parcurge submeniul
foreach($pagini as $kei2=>$pagini2) {
Cod: Selectaţi tot
else {
// Altfel e considerat cu submeniu
$meniu .= '<li class="smeniu"><a href="#"><span>'. $icon_a. str_replace('_', ' ', ucfirst($kei)). '</a></span><ul>';
// Parcurge submeniul
foreach($pagini as $kei2=>$pagini2) {
dar in felul asta imi pune ultimul icons din sub meniu in meiulul principal
In al doilea rand linkul din sub meniuri returneaza daor pagina principala, cu un "id".
Ai vrun link sau tutorial unde pot intelege mai bine cum sa configurez si creez aceste lincuri legate de index?
MarPlo
Mesaje:4343
Am modificat codul script-ului, copie din nou continutul pentru fisierele admin.php si index.php din postarea anterioara unde sunt puse codurile fisierelor.
Incearca sa studiezi codul ca sa-l intelegi.
Un tutorial despre configurare link-uri in php nu am, dar poate iti e de folos cel de la pagina:
marplo.net/php-mysql/lucru_formulare.html
In special capitolele: 3. Utilizarea metodelor GET si POST si 5. Trimiterea de date unui script prin adresa URL
Incearca sa studiezi codul ca sa-l intelegi.
Un tutorial despre configurare link-uri in php nu am, dar poate iti e de folos cel de la pagina:
marplo.net/php-mysql/lucru_formulare.html
In special capitolele: 3. Utilizarea metodelor GET si POST si 5. Trimiterea de date unui script prin adresa URL
dim
Mesaje:61
Multumes pt ajutor
Este ok acum.
Din exeplul dat de tine am mai vazut ceva intersant si anume acel meniu asa zis "breadcrumb" cu ce ma selectat deja.
Ma gndeam ca il pot face automat cu css facadn dupicat la meniul existent da cred ca ingreunez codul asa?
sau cu java:
doar ca il creaza dor pana in momentul in care nu accesez un buton cu link catre pagina
ex: poze/natura
daca apas si pe peisaj dipare tot
Este ok acum.
Din exeplul dat de tine am mai vazut ceva intersant si anume acel meniu asa zis "breadcrumb" cu ce ma selectat deja.
Ma gndeam ca il pot face automat cu css facadn dupicat la meniul existent da cred ca ingreunez codul asa?
sau cu java:
Cod: Selectaţi tot
<div class="display">
<div class="syllabus">
<a href=" <?php echo $index; ?>"> Acasa / </a>
</div>
</div>
<script type="text/javascript">
$('.topics a').on('click', function() {
$select = $('<div class="syllabus"></div>');
$(this).parents('li').each(function(n, li) {
$select.prepend(' / ',$(li).children('a').clone());
});
$('.display').html(
$select.prepend('<a href="<?php echo $index; ?>"> Acasa</a>'));
})
</script>
ex: poze/natura
daca apas si pe peisaj dipare tot
Subiecte similare
- Programare Site Sector 5
Discutii si Intrebari Diverse Salut la toți.
Ce oare poate avea? Nu îmi permite să înregistrez programarea pe site.
Atașez link:...