36 public function getName($showFullName=
false)
39 return $this->FullName .
"(" . $this->Order .
")";
60 function MenuPage($Page, $TotalPage, $Uri =
'')
62 $V =
"<ul class='pagination pagination-sm justify-content-center'>";
66 $Uri = preg_replace(
"/&page=[^&]*/",
"", $Uri);
71 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=0'>$text</a></li>";
72 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=" . ($Page - 1) .
"'>$text1</a></li>";
78 for ($i = $Page - 9;$i < $Page;$i++) {
80 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=$i'>" . ($i + 1) .
"</a></li>";
84 $V.=
"<li class='page-item active'><a class='page-link' href='#'>" . ($Page + 1) .
"</a></li>";
86 for ($i = $Page + 1;($i <= $TotalPage) && ($i < $Page + 9);$i++) {
87 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=$i'>" . ($i + 1) .
"</a></li>";
89 if ($Page < $TotalPage) {
90 if ($Page < $TotalPage - 9) {
95 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=" . ($Page + 1) .
"'>$text</a></li>";
96 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=" . ($TotalPage) .
"'>$text1</a></li>";
113 $V =
"<center><ul class='pagination pagination-sm justify-content-center'>";
117 $Uri = preg_replace(
"/&page=[^&]*/",
"", $Uri);
122 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=0'>$text</a></li>";
123 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=" . ($Page - 1) .
"'>$text1</a></li>";
129 for ($i = $Page - 9;$i < $Page;$i++) {
131 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=$i'>" . ($i + 1) .
"</a></li>";
135 $V.=
"<li class='page-item active'><a class='page-link' href='#'>" . ($Page + 1) .
"</a></li>";
140 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=$i'>" . ($i + 1) .
"</a></li>";
141 $V.=
"<li class='page-item'><a class='page-link' href='$Uri&page=$i'>$text</a></li>";
143 $V.=
"</ul></center>";
159 if ($a->Order > $b->Order) {
162 if ($a->Order < $b->Order) {
165 return (strcmp($a->Name, $b->Name));
186 function menu_insert_r(&$menuItems, $path, $pathRemainder, $LastOrder, $Target, $URI, $HTML, &$Title)
189 $pathElement = count($splitPath) > 0 ? $splitPath[0] :
null;
190 $pathRemainder = count($splitPath) > 1 ? $splitPath[1] :
null;
191 $hasPathComponent = $pathElement !==
null && $pathElement !==
"";
193 if (!$hasPathComponent) {
197 $isLeaf = $pathRemainder ===
null;
198 $menuItemsExist = isset($menuItems) && is_array($menuItems);
200 $currentMenuItem = NULL;
201 if ($menuItemsExist) {
202 foreach ($menuItems as &$menuItem) {
204 if (!strcmp($menuItem->Name, $pathElement) && strcmp($menuItem->Name,
MENU_BREAK)) {
205 $currentMenuItem = $menuItem;
207 }
else if (!strcmp($menuItem->Name,
MENU_BREAK) && ($menuItem->Order == $LastOrder)) {
208 $currentMenuItem = $menuItem;
214 $path[] = $pathElement;
218 $currentItemIsMissing = empty($currentMenuItem);
219 if ($currentItemIsMissing) {
220 $currentMenuItem =
new menu;
221 $currentMenuItem->Name = $pathElement;
222 $currentMenuItem->FullName = $FullName;
224 if (! $menuItemsExist) {
225 $menuItems = array();
227 $menuItems[] = $currentMenuItem;
233 if ($LastOrder != 0) {
234 if ($currentMenuItem->Order != $LastOrder) {
237 $currentMenuItem->Order = $LastOrder;
239 $currentMenuItem->Target = $Target;
240 $currentMenuItem->URI = $URI;
241 $currentMenuItem->HTML = $HTML;
242 $currentMenuItem->Title = $Title;
244 $Depth =
menu_insert_r($currentMenuItem->SubMenu, $path, $pathRemainder, $LastOrder, $Target, $URI, $HTML, $Title);
245 $currentMenuItem->MaxDepth =
max ($currentMenuItem->MaxDepth, $Depth + 1);
249 usort($menuItems,
'menu_cmp');
253 return ($currentMenuItem->MaxDepth);
268 function menu_insert($Path, $LastOrder = 0, $URI = NULL, $Title = NULL, $Target = NULL, $HTML = NULL)
299 $PathParts = explode(
'::', $Name, 2);
300 foreach ($Menu as $Val) {
301 if ($Val->Name == $PathParts[0]) {
302 if (empty($PathParts[1])) {
303 $MaxDepth = $Val->MaxDepth;
304 return ($Val->SubMenu);
306 return (
menu_find($PathParts[1], $MaxDepth, $Val->SubMenu));
328 function menu_to_1html($Menu, $ShowRefresh = 1, $ShowTraceback = 0, $ShowAll = 1)
330 $showFullName = isset($_SESSION) && array_key_exists(
'fullmenudebug', $_SESSION) && $_SESSION[
'fullmenudebug'] == 1;
335 if ($ShowTraceback) {
337 $Refresh = & $Plugins[plugin_find_id(
"refresh") ];
338 if (!empty($Refresh)) {
339 $text = _(
"Traceback");
341 $Std.=
"<a href='$URL' target='_top'>$text</a>";
348 $text = _(
"Refresh");
349 $Std.=
"<a href='" .
Traceback() .
"'>$text</a>";
353 foreach ($Menu as $Val) {
356 $V .=
" •";
360 $V .=
" ";
363 }
else if (!empty($Val->HTML)) {
370 }
else if (!empty($Val->URI)) {
374 $V.=
"<a href='" .
Traceback_uri() .
"?mod=" . $Val->URI .
"'";
375 if (!empty($Val->Title)) {
376 $V.=
" title='" . htmlentities($Val->Title, ENT_QUOTES) .
"'";
386 }
else if ($ShowAll) {
401 $V.=
" • ";
407 return (
"<div id='menu1html-$menu_to_1html_counter' align='right' style='padding:0px 5px 0px 5px'><small>$V</small></div>");
417 return "(" . $menu->Order .
")";
436 function menu_to_1list($Menu, &$Parm, $Pre =
"", $Post =
"", $ShowAll = 1, $upload_id =
"")
442 $showFullName = isset($_SESSION) && array_key_exists(
'fullmenudebug', $_SESSION) && $_SESSION[
'fullmenudebug'] == 1;
445 foreach ($Menu as $Val) {
446 if (!empty($Val->HTML)) {
448 }
else if (!empty($Val->URI)) {
449 if (!empty($upload_id) &&
"tag" == $Val->URI) {
450 $tagstatus = TagStatus($upload_id);
451 if (0 == $tagstatus) {
456 $entry =
"[<a href='" .
Traceback_uri() .
"?mod=" . $Val->URI .
"&" . $Parm .
"'";
457 if (!empty($Val->Title)) {
458 $entry .=
" title='" . htmlentities($Val->Title, ENT_QUOTES) .
"'";
461 $entry .= $Val->getName($showFullName);
463 }
else if ($ShowAll) {
464 $entry =
"[" . $Val->getName($showFullName) .
"]";
468 $V .= $Pre . $entry . $Post;
487 foreach ($Menu as $Val) {
488 for ($i = 0;$i < $Indent;$i++) {
491 print
"$Val->Name ($Val->Order,$Val->URI)\n";
536 foreach ($Menu as $MenuObj) {
537 if ($MenuObj->Name != $RmName) {
538 $NewArray[] = $MenuObj;
Traceback_uri()
Get the URI without query to this location.
Traceback_dir()
Get the directory of the URI without query.
Traceback()
Get the URI + query to this location.
FUNCTION int max(int permGroup, int permPublic)
Get the maximum group privilege.