/var/www/html_it/wp-content/plugins/loco-translate/src/admin/Navigation.php


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_ViewParamscompact('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 createBreadcrumbLoco_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 ];
        }
    }*/


}