Support Joomla!
Main
Community
Documentation
Forum
Extensions
Shop
Developers
Joomla! 1.5 Documentation
Home
API reference wiki
Developer portal
SVN repository
Packages
Select a package...
Unknown
Archive_Tar
com-tecnick-tcpdf
geshi
Joomla
Joomla-Framework
OpenID
patError
patTemplate
PEAR
phpGACL
PHP_Compat
SimplePie
utf8
Package: Joomla-Framework
Other documents
Changelog
Element index (all)
Error log
Install
Copyright
Credits
License
Licenses
License
Content on this site is copyright © 2005 - 2008 Open Source Matters Inc and can be used in accordance with the
Joomla! Electronic Documentation License
. Some parts of this website may be subject to other licenses.
Source code for file /joomla/application/pathway.php
Documentation is available at
pathway.php
<?php
/**
*
@version
$Id: pathway.php 13354 2009-10-28 02:05:38Z ian $
*
@package
Joomla.Framework
*
@subpackage
Application
*
@copyright
Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
*
@license
GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// Check to ensure this file is within the rest of the framework
defined
(
'JPATH_BASE'
)
or
die
(
)
;
/**
* Class to maintain a pathway.
*
* Main example of use so far is the mod_breadcrumbs module that keeps track of
* the user's navigated path within the Joomla application.
*
*
@abstract
*
@package
Joomla.Framework
*
@subpackage
Application
*
@since
1.5
*/
class
JPathway
extends
JObject
{
/**
* Array to hold the pathway item objects
*
@access
private
*/
var
$_pathway
=
null
;
/**
* Integer number of items in the pathway
*
@access
private
*/
var
$_count
=
0
;
/**
* Class constructor
*/
function
__construct
(
$options
=
array
(
))
{
//Initialise the array
$this
->
_pathway
=
array
(
)
;
}
/**
* Returns a reference a JPathway object
*
* This method must be invoked as:
* <pre> $menu = &JPathway::getInstance();</pre>
*
*
@access
public
*
@param
string
$client
The name of the client
*
@param
array
$options
An associative array of options
*
@return
JPathway
A pathway object.
*
@since
1.5
*/
function
&
getInstance
(
$client
,
$options
=
array
(
))
{
static
$instances
;
if
(
!
isset
(
$instances
))
{
$instances
=
array
(
)
;
}
if
(
empty
(
$instances
[
$client
]
))
{
//Load the router object
$info
=
&
JApplicationHelper
::
getClientInfo
(
$client
,
true
)
;
$path
=
$info
->
path
.
DS
.
'includes'
.
DS
.
'pathway.php'
;
if
(
file_exists
(
$path
))
{
require_once
$path
;
// Create a JPathway object
$classname
=
'JPathway'
.
ucfirst
(
$client
)
;
$instance
=
new
$classname
(
$options
)
;
}
else
{
$error
=
JError
::
raiseError
(
500
,
'Unable to load pathway: '
.
$client
)
;
return
$error
;
}
$instances
[
$client
]
=
&
$instance
;
}
return
$instances
[
$client
]
;
}
/**
* Return the JPathWay items array
*
*
@access
public
*
@return
array
Array of pathway items
*
@since
1.5
*/
function
getPathway
(
)
{
$pw
=
$this
->
_pathway
;
// Use array_values to reset the array keys numerically
return
array_values
(
$pw
)
;
}
/**
* Set the JPathway items array.
*
*
@access
public
*
@param
array
$pathway
An array of pathway objects.
*
@return
array
The previous pathway data.
*
@since
1.5
*/
function
setPathway
(
$pathway
)
{
$oldPathway
=
$this
->
_pathway
;
$pathway
= (array)
$pathway
;
// Set the new pathway.
$this
->
_pathway
=
array_values
(
$pathway
)
;
return
array_values
(
$oldPathway
)
;
}
/**
* Create and return an array of the pathway names.
*
*
@access
public
*
@return
array
Array of names of pathway items
*
@since
1.5
*/
function
getPathwayNames
(
)
{
// Initialize variables
$names
=
array
(
null
)
;
// Build the names array using just the names of each pathway item
foreach
(
$this
->
_pathway
as
$item
)
{
$names
[
]
=
$item
->
name
;
}
//Use array_values to reset the array keys numerically
return
array_values
(
$names
)
;
}
/**
* Create and add an item to the pathway.
*
*
@access
public
*
@param
string
$name
*
@param
string
$link
*
@return
boolean
True on success
*
@since
1.5
*/
function
addItem
(
$name
,
$link
=
''
)
{
// Initalize variables
$ret
=
false
;
if
(
$this
->
_pathway
[
]
=
$this
->
_makeItem
(
$name
,
$link
))
{
$ret
=
true
;
$this
->
_count
++
;
}
return
$ret
;
}
/**
* Set item name.
*
*
@access
public
*
@param
integer
$id
*
@param
string
$name
*
@return
boolean
True on success
*
@since
1.5
*/
function
setItemName
(
$id
,
$name
)
{
// Initalize variables
$ret
=
false
;
if
(
isset
(
$this
->
_pathway
[
$id
]
))
{
$this
->
_pathway
[
$id
]
->
name
=
$name
;
$ret
=
true
;
}
return
$ret
;
}
/**
* Create and return a new pathway object.
*
*
@access
private
*
@param
string
$name
Name of the item
*
@param
string
$link
Link to the item
*
@return
object
Pathway
item object
*
@since
1.5
*/
function
_makeItem
(
$name
,
$link
)
{
$item
=
new
stdClass
(
)
;
$item
->
name
=
html_entity_decode
(
$name
,
ENT_COMPAT
,
'UTF-8'
)
;
$item
->
link
=
$link
;
return
$item
;
}
}
Documentation generated on Sat, 14 Nov 2009 11:16:56 +0000 by
phpDocumentor 1.3.1