Jump to content
php.lv forumi

2 slāņu menu


raivis
 Share

Recommended Posts

  • Replies 37
  • Created
  • Last Reply

Top Posters In This Topic

raivi - un ko tev deva tas, ka tu uzzināji, ka forumā ir arī gudri cilvēki? tev labāk palika? :D

es kad sāku programmēt es kaut kā netiecos uztaisīt kā pirmo projektu eveikalu - kāpēc tieši pēdējā laikā ir tāda stulba tendence? vēl nemāk sintaksi kārtīgi pierakstīt, nesaprot programmu loģiku un nerubī ne funkcijas ne ko citu un jau oo baigi krutie - redzies veikals/portāls/savs cms/utt jākodē.

 

ja tu būvē māju tu tak nesāc no jumta, ja tev nav iebetonēti pamati?

Link to comment
Share on other sites

Labi, nebij man šodien slinkums, un ir labdarības uzplūdi :) Neierobežota dziļuma meņucis, ar text faila datubāzi....

 

datu fails menu.txt:

#path|name|url
news|News|news.php
news/intro|Intro|news.php?id=intro
portfolio|Portfolio|portfolio.php
portfolio/photo|Photo|portfolio.php?id=photo
portfolio/video|Video|portfolio.php?id=video

fails menu.php

<?php
$menufile = 'menu.txt';
$menuitems = get_items_from_file($menufile);
print_menu($menuitems);

function get_items_from_file($file) {
$lines = file($file);
$items = array('sublevels' => array());

foreach($lines as $line) {
	if($line[0] == '#') continue;
	$line = trim($line);
	list($path,$name,$url) = explode('|',$line);
	$path_parts = explode('/',$path);
	$curr_node = & $items['sublevels'];
	while($path_parts) {
		$part = array_shift($path_parts);
		if(!isset($curr_node[$part])) {
			$curr_node[$part] = array('name' => '','url' => '','sublevels' => array());
		}
		if(count($path_parts) == 0) {
			$curr_node[$part]['name'] = $name;
			$curr_node[$part]['url'] = $url;
		}
		$curr_node = & $curr_node[$part]['sublevels'];
	}
}
return $items['sublevels'];
}
function print_menu($items) {
echo '<ul>';
foreach($items as $key => $values) {

	echo '<li><a href="'.$values['url'].'">'.$values['name']."</a></li>\n";
	if(count($values['sublevels']) > 0)	{
		print_menu($values['sublevels']);
	}
}
echo '</ul>';
}

?>

Labumi, ko iegūsti pie šāda risinājuma:

1) neierobežots submeņucu dziļums

2) arī pēc 10 gadiem, atvēris datu failu, tu sapratīsi, ko tu tur esi sarakstījis. Tavā variantā arī pēc pusgada tas būs varoņdarba cienīgs uzdevums ;)

Bet vispār, kā krievi saka "скромнее надо быть", savā mājas lapā esi sev baigos skillus sarakstījis, un šitādas muļķības dod ārā... Un nevienu galvā neņem...

 

P.S. nekādus komentārus nerakstīju speciāli. Gribēsi ko modificēt, nāksies kārtīgi kodā iebraukt ;)

Edited by john.brown
Link to comment
Share on other sites

 Share


×
×
  • Create New...