1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
<?php /** * Generic navigation helper. */ class Loco_admin_Navigation extends ArrayIterator {
/** * @return Loco_admin_Navigation */ public function add( $name, $href = null, $active = false ){ $this[] = new Loco_mvc_ViewParams( compact('name','href','active') ); return $this; }
/* not currently used * @return Loco_admin_Navigation * public function addRoute( $name, $action ){ $href = Loco_mvc_AdminRouter::generate( $action ); return $this->add( $name, $href ); }*/
/** * Create a breadcrumb trail for a given view below a bundle * @return self */ public static function createBreadcrumb( Loco_package_Bundle $bundle ){ $nav = new Loco_admin_Navigation;
// root link depends on bundle type $type = strtolower( $bundle->getType() ); if( 'core' !== $type ){ $link = new Loco_mvc_ViewParams( [ 'href' => Loco_mvc_AdminRouter::generate($type), ] ); if( 'theme' === $type ){ $link['name'] = __('Themes','loco-translate'); } else { $link['name'] = __('Plugins','loco-translate'); } $nav[] = $link; } // Add actual bundle page, href may be unset to show as current page if needed $nav->add ( $bundle->getName(), Loco_mvc_AdminRouter::generate( $type.'-view', [ 'bundle' => $bundle->getHandle() ] ) ); // client code will add current page return $nav; }
/** * Create a basic breadcrumb comprising title only * @return self */ public static function createSimple( $name ){ $nav = new Loco_admin_Navigation; $nav->add($name); return $nav; }
/** * @return Loco_mvc_ViewParams * public function getSecondLast(){ $i = count($this); if( $i > 1 ){ return $this[ $i-2 ]; } }*/
}
|