CC-2166: Packaging Improvements. Moved the Zend app into airtime_mvc. It is now installed to /var/www/airtime. Storage is now set to /srv/airtime/stor. Utils are now installed to /usr/lib/airtime/utils/. Added install/airtime-dircheck.php as a simple test to see if everything is install/uninstalled correctly.
This commit is contained in:
parent
514777e8d2
commit
b11cbd8159
4546 changed files with 138 additions and 51 deletions
49
airtime_mvc/application/configs/ACL.php
Normal file
49
airtime_mvc/application/configs/ACL.php
Normal file
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
require_once 'Acl_plugin.php';
|
||||
|
||||
$ccAcl = new Zend_Acl();
|
||||
|
||||
$ccAcl->addRole(new Zend_Acl_Role('G'))
|
||||
->addRole(new Zend_Acl_Role('H'), 'G')
|
||||
->addRole(new Zend_Acl_Role('A'), 'H');
|
||||
|
||||
$ccAcl->add(new Zend_Acl_Resource('library'))
|
||||
->add(new Zend_Acl_Resource('index'))
|
||||
->add(new Zend_Acl_Resource('user'))
|
||||
->add(new Zend_Acl_Resource('error'))
|
||||
->add(new Zend_Acl_Resource('login'))
|
||||
->add(new Zend_Acl_Resource('playlist'))
|
||||
->add(new Zend_Acl_Resource('plupload'))
|
||||
->add(new Zend_Acl_Resource('schedule'))
|
||||
->add(new Zend_Acl_Resource('api'))
|
||||
->add(new Zend_Acl_Resource('nowplaying'))
|
||||
->add(new Zend_Acl_Resource('search'))
|
||||
->add(new Zend_Acl_Resource('dashboard'))
|
||||
->add(new Zend_Acl_Resource('preference'))
|
||||
->add(new Zend_Acl_Resource('recorder'));
|
||||
|
||||
/** Creating permissions */
|
||||
$ccAcl->allow('G', 'index')
|
||||
->allow('G', 'login')
|
||||
->allow('G', 'error')
|
||||
->allow('G', 'nowplaying')
|
||||
->allow('G', 'api')
|
||||
//->allow('G', 'plupload', array('upload-recorded'))
|
||||
->allow('G', 'recorder')
|
||||
->allow('G', 'schedule')
|
||||
->allow('G', 'dashboard')
|
||||
//->allow('H', 'plupload', array('plupload', 'upload', 'index'))
|
||||
->allow('H', 'plupload')
|
||||
->allow('H', 'library')
|
||||
->allow('H', 'search')
|
||||
->allow('H', 'playlist')
|
||||
->allow('A', 'user')
|
||||
->allow('A', 'preference');
|
||||
|
||||
$aclPlugin = new Zend_Controller_Plugin_Acl($ccAcl);
|
||||
|
||||
Zend_View_Helper_Navigation_HelperAbstract::setDefaultAcl($ccAcl);
|
||||
|
||||
$front = Zend_Controller_Front::getInstance();
|
||||
$front->registerPlugin($aclPlugin);
|
20
airtime_mvc/application/configs/airtime-conf.php
Normal file
20
airtime_mvc/application/configs/airtime-conf.php
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
// This file generated by Propel 1.5.2 convert-conf target
|
||||
// from XML runtime conf file /home/naomiaro/dev-campcaster/campcaster/build/runtime-conf.xml
|
||||
$conf = array (
|
||||
'datasources' =>
|
||||
array (
|
||||
'airtime' =>
|
||||
array (
|
||||
'adapter' => 'pgsql',
|
||||
'connection' =>
|
||||
array (
|
||||
'dsn' => 'pgsql:host=localhost;port=5432;dbname=airtime;user=airtime;password=airtime',
|
||||
),
|
||||
),
|
||||
'default' => 'airtime',
|
||||
),
|
||||
'generator_version' => '1.5.2',
|
||||
);
|
||||
$conf['classmap'] = include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classmap-airtime-conf.php');
|
||||
return $conf;
|
28
airtime_mvc/application/configs/application.ini
Normal file
28
airtime_mvc/application/configs/application.ini
Normal file
|
@ -0,0 +1,28 @@
|
|||
[production]
|
||||
phpSettings.display_startup_errors = 0
|
||||
phpSettings.display_errors = 0
|
||||
includePaths.library = APPLICATION_PATH "/../library"
|
||||
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
|
||||
bootstrap.class = "Bootstrap"
|
||||
appnamespace = "Application"
|
||||
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
|
||||
resources.frontController.params.displayExceptions = 0
|
||||
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
|
||||
resources.view[] =
|
||||
resources.db.adapter = "Pdo_Pgsql"
|
||||
resources.db.params.charset = "utf8"
|
||||
resources.db.params.host = "localhost"
|
||||
resources.db.params.username = "airtime"
|
||||
resources.db.params.password = "airtime"
|
||||
resources.db.params.dbname = "airtime"
|
||||
|
||||
[staging : production]
|
||||
|
||||
[testing : production]
|
||||
phpSettings.display_startup_errors = 1
|
||||
phpSettings.display_errors = 1
|
||||
|
||||
[development : production]
|
||||
phpSettings.display_startup_errors = 1
|
||||
phpSettings.display_errors = 1
|
||||
resources.frontController.params.displayExceptions = 1
|
109
airtime_mvc/application/configs/classmap-airtime-conf.php
Normal file
109
airtime_mvc/application/configs/classmap-airtime-conf.php
Normal file
|
@ -0,0 +1,109 @@
|
|||
<?php
|
||||
// This file generated by Propel 1.5.2 convert-conf target
|
||||
return array (
|
||||
'CcAccessTableMap' => 'airtime/map/CcAccessTableMap.php',
|
||||
'CcAccessPeer' => 'airtime/CcAccessPeer.php',
|
||||
'CcAccess' => 'airtime/CcAccess.php',
|
||||
'CcAccessQuery' => 'airtime/CcAccessQuery.php',
|
||||
'BaseCcAccessPeer' => 'airtime/om/BaseCcAccessPeer.php',
|
||||
'BaseCcAccess' => 'airtime/om/BaseCcAccess.php',
|
||||
'BaseCcAccessQuery' => 'airtime/om/BaseCcAccessQuery.php',
|
||||
'CcFilesTableMap' => 'airtime/map/CcFilesTableMap.php',
|
||||
'CcFilesPeer' => 'airtime/CcFilesPeer.php',
|
||||
'CcFiles' => 'airtime/CcFiles.php',
|
||||
'CcFilesQuery' => 'airtime/CcFilesQuery.php',
|
||||
'BaseCcFilesPeer' => 'airtime/om/BaseCcFilesPeer.php',
|
||||
'BaseCcFiles' => 'airtime/om/BaseCcFiles.php',
|
||||
'BaseCcFilesQuery' => 'airtime/om/BaseCcFilesQuery.php',
|
||||
'CcPermsTableMap' => 'airtime/map/CcPermsTableMap.php',
|
||||
'CcPermsPeer' => 'airtime/CcPermsPeer.php',
|
||||
'CcPerms' => 'airtime/CcPerms.php',
|
||||
'CcPermsQuery' => 'airtime/CcPermsQuery.php',
|
||||
'BaseCcPermsPeer' => 'airtime/om/BaseCcPermsPeer.php',
|
||||
'BaseCcPerms' => 'airtime/om/BaseCcPerms.php',
|
||||
'BaseCcPermsQuery' => 'airtime/om/BaseCcPermsQuery.php',
|
||||
'CcShowTableMap' => 'airtime/map/CcShowTableMap.php',
|
||||
'CcShowPeer' => 'airtime/CcShowPeer.php',
|
||||
'CcShow' => 'airtime/CcShow.php',
|
||||
'CcShowQuery' => 'airtime/CcShowQuery.php',
|
||||
'BaseCcShowPeer' => 'airtime/om/BaseCcShowPeer.php',
|
||||
'BaseCcShow' => 'airtime/om/BaseCcShow.php',
|
||||
'BaseCcShowQuery' => 'airtime/om/BaseCcShowQuery.php',
|
||||
'CcShowInstancesTableMap' => 'airtime/map/CcShowInstancesTableMap.php',
|
||||
'CcShowInstancesPeer' => 'airtime/CcShowInstancesPeer.php',
|
||||
'CcShowInstances' => 'airtime/CcShowInstances.php',
|
||||
'CcShowInstancesQuery' => 'airtime/CcShowInstancesQuery.php',
|
||||
'BaseCcShowInstancesPeer' => 'airtime/om/BaseCcShowInstancesPeer.php',
|
||||
'BaseCcShowInstances' => 'airtime/om/BaseCcShowInstances.php',
|
||||
'BaseCcShowInstancesQuery' => 'airtime/om/BaseCcShowInstancesQuery.php',
|
||||
'CcShowDaysTableMap' => 'airtime/map/CcShowDaysTableMap.php',
|
||||
'CcShowDaysPeer' => 'airtime/CcShowDaysPeer.php',
|
||||
'CcShowDays' => 'airtime/CcShowDays.php',
|
||||
'CcShowDaysQuery' => 'airtime/CcShowDaysQuery.php',
|
||||
'BaseCcShowDaysPeer' => 'airtime/om/BaseCcShowDaysPeer.php',
|
||||
'BaseCcShowDays' => 'airtime/om/BaseCcShowDays.php',
|
||||
'BaseCcShowDaysQuery' => 'airtime/om/BaseCcShowDaysQuery.php',
|
||||
'CcShowRebroadcastTableMap' => 'airtime/map/CcShowRebroadcastTableMap.php',
|
||||
'CcShowRebroadcastPeer' => 'airtime/CcShowRebroadcastPeer.php',
|
||||
'CcShowRebroadcast' => 'airtime/CcShowRebroadcast.php',
|
||||
'CcShowRebroadcastQuery' => 'airtime/CcShowRebroadcastQuery.php',
|
||||
'BaseCcShowRebroadcastPeer' => 'airtime/om/BaseCcShowRebroadcastPeer.php',
|
||||
'BaseCcShowRebroadcast' => 'airtime/om/BaseCcShowRebroadcast.php',
|
||||
'BaseCcShowRebroadcastQuery' => 'airtime/om/BaseCcShowRebroadcastQuery.php',
|
||||
'CcShowHostsTableMap' => 'airtime/map/CcShowHostsTableMap.php',
|
||||
'CcShowHostsPeer' => 'airtime/CcShowHostsPeer.php',
|
||||
'CcShowHosts' => 'airtime/CcShowHosts.php',
|
||||
'CcShowHostsQuery' => 'airtime/CcShowHostsQuery.php',
|
||||
'BaseCcShowHostsPeer' => 'airtime/om/BaseCcShowHostsPeer.php',
|
||||
'BaseCcShowHosts' => 'airtime/om/BaseCcShowHosts.php',
|
||||
'BaseCcShowHostsQuery' => 'airtime/om/BaseCcShowHostsQuery.php',
|
||||
'CcPlaylistTableMap' => 'airtime/map/CcPlaylistTableMap.php',
|
||||
'CcPlaylistPeer' => 'airtime/CcPlaylistPeer.php',
|
||||
'CcPlaylist' => 'airtime/CcPlaylist.php',
|
||||
'CcPlaylistQuery' => 'airtime/CcPlaylistQuery.php',
|
||||
'BaseCcPlaylistPeer' => 'airtime/om/BaseCcPlaylistPeer.php',
|
||||
'BaseCcPlaylist' => 'airtime/om/BaseCcPlaylist.php',
|
||||
'BaseCcPlaylistQuery' => 'airtime/om/BaseCcPlaylistQuery.php',
|
||||
'CcPlaylistcontentsTableMap' => 'airtime/map/CcPlaylistcontentsTableMap.php',
|
||||
'CcPlaylistcontentsPeer' => 'airtime/CcPlaylistcontentsPeer.php',
|
||||
'CcPlaylistcontents' => 'airtime/CcPlaylistcontents.php',
|
||||
'CcPlaylistcontentsQuery' => 'airtime/CcPlaylistcontentsQuery.php',
|
||||
'BaseCcPlaylistcontentsPeer' => 'airtime/om/BaseCcPlaylistcontentsPeer.php',
|
||||
'BaseCcPlaylistcontents' => 'airtime/om/BaseCcPlaylistcontents.php',
|
||||
'BaseCcPlaylistcontentsQuery' => 'airtime/om/BaseCcPlaylistcontentsQuery.php',
|
||||
'CcPrefTableMap' => 'airtime/map/CcPrefTableMap.php',
|
||||
'CcPrefPeer' => 'airtime/CcPrefPeer.php',
|
||||
'CcPref' => 'airtime/CcPref.php',
|
||||
'CcPrefQuery' => 'airtime/CcPrefQuery.php',
|
||||
'BaseCcPrefPeer' => 'airtime/om/BaseCcPrefPeer.php',
|
||||
'BaseCcPref' => 'airtime/om/BaseCcPref.php',
|
||||
'BaseCcPrefQuery' => 'airtime/om/BaseCcPrefQuery.php',
|
||||
'CcScheduleTableMap' => 'airtime/map/CcScheduleTableMap.php',
|
||||
'CcSchedulePeer' => 'airtime/CcSchedulePeer.php',
|
||||
'CcSchedule' => 'airtime/CcSchedule.php',
|
||||
'CcScheduleQuery' => 'airtime/CcScheduleQuery.php',
|
||||
'BaseCcSchedulePeer' => 'airtime/om/BaseCcSchedulePeer.php',
|
||||
'BaseCcSchedule' => 'airtime/om/BaseCcSchedule.php',
|
||||
'BaseCcScheduleQuery' => 'airtime/om/BaseCcScheduleQuery.php',
|
||||
'CcSessTableMap' => 'airtime/map/CcSessTableMap.php',
|
||||
'CcSessPeer' => 'airtime/CcSessPeer.php',
|
||||
'CcSess' => 'airtime/CcSess.php',
|
||||
'CcSessQuery' => 'airtime/CcSessQuery.php',
|
||||
'BaseCcSessPeer' => 'airtime/om/BaseCcSessPeer.php',
|
||||
'BaseCcSess' => 'airtime/om/BaseCcSess.php',
|
||||
'BaseCcSessQuery' => 'airtime/om/BaseCcSessQuery.php',
|
||||
'CcSmembTableMap' => 'airtime/map/CcSmembTableMap.php',
|
||||
'CcSmembPeer' => 'airtime/CcSmembPeer.php',
|
||||
'CcSmemb' => 'airtime/CcSmemb.php',
|
||||
'CcSmembQuery' => 'airtime/CcSmembQuery.php',
|
||||
'BaseCcSmembPeer' => 'airtime/om/BaseCcSmembPeer.php',
|
||||
'BaseCcSmemb' => 'airtime/om/BaseCcSmemb.php',
|
||||
'BaseCcSmembQuery' => 'airtime/om/BaseCcSmembQuery.php',
|
||||
'CcSubjsTableMap' => 'airtime/map/CcSubjsTableMap.php',
|
||||
'CcSubjsPeer' => 'airtime/CcSubjsPeer.php',
|
||||
'CcSubjs' => 'airtime/CcSubjs.php',
|
||||
'CcSubjsQuery' => 'airtime/CcSubjsQuery.php',
|
||||
'BaseCcSubjsPeer' => 'airtime/om/BaseCcSubjsPeer.php',
|
||||
'BaseCcSubjs' => 'airtime/om/BaseCcSubjs.php',
|
||||
'BaseCcSubjsQuery' => 'airtime/om/BaseCcSubjsQuery.php',
|
||||
);
|
89
airtime_mvc/application/configs/conf.php
Normal file
89
airtime_mvc/application/configs/conf.php
Normal file
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
/* THIS FILE IS NOT MEANT FOR CUSTOMIZING.
|
||||
* PLEASE EDIT THE FOLLOWING TO CHANGE YOUR CONFIG:
|
||||
* /etc/airtime/airtime.conf
|
||||
* /etc/airtime/pypo.cfg
|
||||
* /etc/airtime/recorder.cfg
|
||||
*/
|
||||
|
||||
define('AIRTIME_VERSION', '1.8.0-alpha');
|
||||
define('AIRTIME_COPYRIGHT_DATE', '2010-2011');
|
||||
define('AIRTIME_REST_VERSION', '1.1');
|
||||
|
||||
global $CC_CONFIG;
|
||||
$values = load_airtime_config();
|
||||
|
||||
$CC_CONFIG = array(
|
||||
|
||||
// Name of the web server user
|
||||
'webServerUser' => $values['general']['web_server_user'],
|
||||
|
||||
'rabbitmq' => $values['rabbitmq'],
|
||||
|
||||
'baseFilesDir' => $values['general']['base_files_dir'],
|
||||
// main directory for storing binary media files
|
||||
'storageDir' => $values['general']['base_files_dir']."/stor",
|
||||
|
||||
// Database config
|
||||
'dsn' => array(
|
||||
'username' => $values['database']['dbuser'],
|
||||
'password' => $values['database']['dbpass'],
|
||||
'hostspec' => $values['database']['host'],
|
||||
'phptype' => 'pgsql',
|
||||
'database' => $values['database']['dbname']),
|
||||
|
||||
// prefix for table names in the database
|
||||
'tblNamePrefix' => 'cc_',
|
||||
|
||||
/* ================================================ storage configuration */
|
||||
|
||||
'apiKey' => array($values['general']['api_key']),
|
||||
'apiPath' => '/api/',
|
||||
|
||||
'soundcloud-client-id' => '2CLCxcSXYzx7QhhPVHN4A',
|
||||
'soundcloud-client-secret' => 'pZ7beWmF06epXLHVUP1ufOg2oEnIt9XhE8l8xt0bBs',
|
||||
|
||||
'soundcloud-connection-retries' => $values['soundcloud']['connection_retries'],
|
||||
'soundcloud-connection-wait' => $values['soundcloud']['time_between_retries'],
|
||||
|
||||
"rootDir" => __DIR__."/../..",
|
||||
'pearPath' => dirname(__FILE__).'/../../library/pear',
|
||||
'zendPath' => dirname(__FILE__).'/../../library/Zend',
|
||||
'phingPath' => dirname(__FILE__).'/../../library/phing',
|
||||
|
||||
);
|
||||
|
||||
// Add database table names
|
||||
$CC_CONFIG['playListTable'] = $CC_CONFIG['tblNamePrefix'].'playlist';
|
||||
$CC_CONFIG['playListContentsTable'] = $CC_CONFIG['tblNamePrefix'].'playlistcontents';
|
||||
$CC_CONFIG['filesTable'] = $CC_CONFIG['tblNamePrefix'].'files';
|
||||
$CC_CONFIG['accessTable'] = $CC_CONFIG['tblNamePrefix'].'access';
|
||||
$CC_CONFIG['permTable'] = $CC_CONFIG['tblNamePrefix'].'perms';
|
||||
$CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess';
|
||||
$CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs';
|
||||
$CC_CONFIG['smembTable'] = $CC_CONFIG['tblNamePrefix'].'smemb';
|
||||
$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref';
|
||||
$CC_CONFIG['scheduleTable'] = $CC_CONFIG['tblNamePrefix'].'schedule';
|
||||
$CC_CONFIG['playListTimeView'] = $CC_CONFIG['tblNamePrefix'].'playlisttimes';
|
||||
$CC_CONFIG['showSchedule'] = $CC_CONFIG['tblNamePrefix'].'show_schedule';
|
||||
$CC_CONFIG['showDays'] = $CC_CONFIG['tblNamePrefix'].'show_days';
|
||||
$CC_CONFIG['showTable'] = $CC_CONFIG['tblNamePrefix'].'show';
|
||||
$CC_CONFIG['showInstances'] = $CC_CONFIG['tblNamePrefix'].'show_instances';
|
||||
|
||||
$CC_CONFIG['playListSequence'] = $CC_CONFIG['playListTable'].'_id';
|
||||
$CC_CONFIG['filesSequence'] = $CC_CONFIG['filesTable'].'_id';
|
||||
$CC_CONFIG['prefSequence'] = $CC_CONFIG['prefTable'].'_id';
|
||||
$CC_CONFIG['permSequence'] = $CC_CONFIG['permTable'].'_id';
|
||||
$CC_CONFIG['subjSequence'] = $CC_CONFIG['subjTable'].'_id';
|
||||
$CC_CONFIG['smembSequence'] = $CC_CONFIG['smembTable'].'_id';
|
||||
|
||||
// Add libs to the PHP path
|
||||
$old_include_path = get_include_path();
|
||||
set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath']
|
||||
.PATH_SEPARATOR.$CC_CONFIG['zendPath']
|
||||
.PATH_SEPARATOR.$old_include_path);
|
||||
|
||||
function load_airtime_config(){
|
||||
$ini_array = parse_ini_file('/etc/airtime/airtime.conf', true);
|
||||
return $ini_array;
|
||||
}
|
22
airtime_mvc/application/configs/constants.php
Normal file
22
airtime_mvc/application/configs/constants.php
Normal file
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
// Metadata Keys
|
||||
define('UI_MDATA_KEY_TITLE', 'dc:title');
|
||||
define('UI_MDATA_KEY_CREATOR', 'dc:creator');
|
||||
define('UI_MDATA_KEY_SOURCE', 'dc:source');
|
||||
define('UI_MDATA_KEY_DURATION', 'dcterms:extent');
|
||||
define('UI_MDATA_KEY_URL', 'ls:url');
|
||||
define('UI_MDATA_KEY_FORMAT', 'dc:format');
|
||||
define('UI_MDATA_KEY_DESCRIPTION', 'dc:description');
|
||||
define('UI_MDATA_KEY_CHANNELS', 'ls:channels');
|
||||
define('UI_MDATA_KEY_SAMPLERATE', 'ls:samplerate');
|
||||
define('UI_MDATA_KEY_BITRATE', 'ls:bitrate');
|
||||
define('UI_MDATA_KEY_ENCODER', 'ls:encoder');
|
||||
define('UI_MDATA_KEY_FILENAME', 'ls:filename');
|
||||
|
||||
define('UI_MDATA_VALUE_FORMAT_FILE', 'File');
|
||||
define('UI_MDATA_VALUE_FORMAT_STREAM', 'live stream');
|
||||
|
||||
// Session Keys
|
||||
define('UI_PLAYLIST_SESSNAME', 'PLAYLIST');
|
||||
|
73
airtime_mvc/application/configs/navigation.php
Normal file
73
airtime_mvc/application/configs/navigation.php
Normal file
|
@ -0,0 +1,73 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* Navigation container (config/array)
|
||||
|
||||
* Each element in the array will be passed to
|
||||
* Zend_Navigation_Page::factory() when constructing
|
||||
* the navigation container below.
|
||||
*/
|
||||
$pages = array(
|
||||
array(
|
||||
'label' => 'Now Playing',
|
||||
'module' => 'default',
|
||||
'controller' => 'Nowplaying',
|
||||
'action' => 'index',
|
||||
'resource' => 'nowplaying'
|
||||
),
|
||||
array(
|
||||
'label' => 'Add Media',
|
||||
'module' => 'default',
|
||||
'controller' => 'Plupload',
|
||||
'action' => 'plupload',
|
||||
'resource' => 'plupload'
|
||||
),
|
||||
array(
|
||||
'label' => 'Playlist Builder',
|
||||
'module' => 'default',
|
||||
'controller' => 'Library',
|
||||
'action' => 'index',
|
||||
'resource' => 'library'
|
||||
),
|
||||
array(
|
||||
'label' => 'Calendar',
|
||||
'module' => 'default',
|
||||
'controller' => 'Schedule',
|
||||
'action' => 'index',
|
||||
'resource' => 'schedule'
|
||||
),
|
||||
array(
|
||||
'label' => 'Configure',
|
||||
'uri' => '#',
|
||||
'resource' => 'preference',
|
||||
'pages' => array(
|
||||
array(
|
||||
'label' => 'Preferences',
|
||||
'module' => 'default',
|
||||
'controller' => 'Preference'
|
||||
),
|
||||
array(
|
||||
'label' => 'Manage Users',
|
||||
'module' => 'default',
|
||||
'controller' => 'user',
|
||||
'action' => 'add-user',
|
||||
'resource' => 'user'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'label' => 'Help',
|
||||
'module' => 'default',
|
||||
'controller' => 'dashboard',
|
||||
'action' => 'help',
|
||||
'resource' => 'dashboard'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// Create container from array
|
||||
$container = new Zend_Navigation($pages);
|
||||
$container->id = "nav";
|
||||
|
||||
//store it in the registry:
|
||||
Zend_Registry::set('Zend_Navigation', $container);
|
Loading…
Add table
Add a link
Reference in a new issue