class content_profile_theme_variables in Content Profile 6
A helper class, which offers lazy loading of variables for themes.
Hierarchy
Expanded class hierarchy of content_profile_theme_variables
File
- ./
content_profile.theme_vars.inc, line 11 - Provides a helper class for lazy loading of variables for themes.
View source
class content_profile_theme_variables {
var $uid;
var $_cache = array();
function content_profile_theme_variables($uid) {
$this->uid = $uid;
}
/**
* Gets the user id of the profiles owner.
*/
function get_uid() {
return $uid;
}
/**
* Gets all type names keyed with their machine readable names.
*/
function get_profile_types() {
return content_profile_get_types('names');
}
/**
* Gets all template variables for the content profile of this type.
*
* @param $type
* The type of the user's content profile
* @param $teaser
* Whether the value is to be generated for the teaser.
* @param $page
* Whether the value is to be generated for the page view.
*
* @return
* An array of variables available for the profile node
* or FALSE if there has been no profile created yet.
*/
function get_variables($type, $teaser = FALSE, $page = FALSE) {
if (!isset($this->_cache[$type][$teaser][$page])) {
$this->_cache[$type][$teaser][$page] = FALSE;
if ($node = content_profile_load($type, $this->uid)) {
// Make sure the node is prepared for viewing
$node = node_build_content($node, $teaser, $page);
$vars = array(
'node' => $node,
'teaser' => $teaser,
'page' => $page,
);
// Apply all node template preprocessors
foreach ($this
->_get_node_preprocessors() as $function) {
if (function_exists($function)) {
$function($vars, 'node');
}
}
$this->_cache[$type][$teaser][$page] = $vars;
}
}
return $this->_cache[$type][$teaser][$page];
}
/**
* Gets a single template variable for the content profile of this type.
*
* @param $type
* The type of the user's content profile
* @param $name
* The name of the variable to get.
*
* @return
* The variable or FALSE if there has been no profile created yet.
*/
function get_variable($type, $name) {
if ($vars = $this
->get_variables($type)) {
return $vars[$name];
}
return FALSE;
}
/**
* Generate a display of the given node.
*
* @param $type
* The type of the user's content profile
* @param $teaser
* Whether to display the teaser only or the full form.
* @param $page
* Whether the node is being displayed by itself as a page.
* @param $links
* Whether or not to display node links. Links are omitted for node previews.
*
* @return
* An HTML representation of the themed node or FALSE if there has been no profile created yet.
*/
function get_view($type, $teaser = FALSE, $page = FALSE, $links = TRUE) {
if ($node = content_profile_load($type, $this->uid)) {
return node_view($node, $teaser, $page, $links);
}
return FALSE;
}
function _get_node_preprocessors() {
$hooks = theme_get_registry();
$functions = $hooks['node']['preprocess functions'];
// We don't need 'template_preprocess'
unset($functions[0]);
return $functions;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
content_profile_theme_variables:: |
property | |||
content_profile_theme_variables:: |
property | |||
content_profile_theme_variables:: |
function | |||
content_profile_theme_variables:: |
function | Gets all type names keyed with their machine readable names. | ||
content_profile_theme_variables:: |
function | Gets the user id of the profiles owner. | ||
content_profile_theme_variables:: |
function | Gets a single template variable for the content profile of this type. | ||
content_profile_theme_variables:: |
function | Gets all template variables for the content profile of this type. | ||
content_profile_theme_variables:: |
function | Generate a display of the given node. | ||
content_profile_theme_variables:: |
function |