- Fixed #16160: Call to undefined function ezi18n()
[tinyz:tinyz.git] / kernel / classes / eznavigationpart.php
1 <?php
2 //
3 // Definition of eZNavigationPart class
4 //
5 // Created on: <18-Feb-2003 11:38:57 bf>
6 //
7 // ## BEGIN COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
8 // SOFTWARE NAME: eZ Publish
9 // SOFTWARE RELEASE: 4.1.x
10 // COPYRIGHT NOTICE: Copyright (C) 1999-2010 eZ Systems AS
11 // SOFTWARE LICENSE: GNU General Public License v2.0
12 // NOTICE: >
13 //   This program is free software; you can redistribute it and/or
14 //   modify it under the terms of version 2.0  of the GNU General
15 //   Public License as published by the Free Software Foundation.
16 //
17 //   This program is distributed in the hope that it will be useful,
18 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
19 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 //   GNU General Public License for more details.
21 //
22 //   You should have received a copy of version 2.0 of the GNU General
23 //   Public License along with this program; if not, write to the Free
24 //   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
25 //   MA 02110-1301, USA.
26 //
27 //
28 // ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
29 //
30
31 /*!
32   \class eZNavigationPart eznavigationpart.php
33   \brief eZNavigationPart handles grouping of functions across modules
34   \ingroup eZKernel
35
36   A navigation part is a group of functions which belongs together. Every view can
37   return the navigation part it should use. It is up to the view to return the
38   proper navigation part. Views can internally check which navigation part to use,
39   in the case of content/view the view will check the navigation part set in
40   the section setup and use this.
41
42   If the view does not return any navigation part it will default to the Content part.
43
44   The navigation parts are controlled by the \c menu.ini file, look for the
45   \c NavigationPart group.
46   You can easily add new entries in override files or in extensions by adding
47   to the \c Part list.
48
49 */
50
51 class eZNavigationPart
52 {
53     /*!
54      \static
55      Will return the navigation part array if the identifier is valid,
56      the default will be returned if the identifier is not valid.
57
58      The navigation parts are defined in the INI file \c menu.ini
59      under the \c NavigationPart group.
60     */
61     static function fetchPartByIdentifier( $identifier )
62     {
63         $parts = eZNavigationPart::fetchList();
64
65         if ( isset( $parts[$identifier] ) )
66             return $parts[$identifier];
67
68         // Return the first part which is the default
69         if ( isset( $parts[0] ) )
70             return $parts[0];
71
72         return false;
73     }
74
75     /*!
76      \static
77      \return The current list of navigation part identifiers
78
79      \note The list is cached in the global variable \c eZNavigationPartList.
80     */
81     static function fetchList()
82     {
83         $list =& $GLOBALS['eZNavigationPartList'];
84         if ( isset( $list ) )
85             return $list;
86
87         $ini = eZINI::instance( 'menu.ini' );
88         $parts = $ini->variable( 'NavigationPart', 'Part' );
89         $list = array();
90         foreach ( $parts as $identifier => $name )
91         {
92             $list[$identifier] = array( 'name' => ezpI18n::translate( 'kernel/navigationpart', $name, 'Navigation part' ),
93                                         'identifier' => $identifier );
94         }
95         return $list;
96     }
97
98     /*!
99      \private
100      \note This funtion only exists for the i18n entries to be picked up by ezlupdate.
101     */
102     private static function i18nDummy()
103     {
104         ezpI18n::translate( 'kernel/navigationpart', 'Content structure', 'Navigation part' );
105         ezpI18n::translate( 'kernel/navigationpart', 'Media library', 'Navigation part' );
106         ezpI18n::translate( 'kernel/navigationpart', 'User accounts', 'Navigation part' );
107         ezpI18n::translate( 'kernel/navigationpart', 'Webshop', 'Navigation part' );
108         ezpI18n::translate( 'kernel/navigationpart', 'Design', 'Navigation part' );
109         ezpI18n::translate( 'kernel/navigationpart', 'Setup', 'Navigation part' );
110         ezpI18n::translate( 'kernel/navigationpart', 'My account', 'Navigation part' );
111     }
112
113 }
114
115 ?>