| 
<?php/**
 * Implements qtag SHADOW.
 *
 * Renders a Shadow (An overlay input form)
 *
 * @param Environment $env
 *   The Environment.
 *
 * @param mixed $target
 *   The Shadow attribute to show.
 *
 * @param array $attributes
 *   Attributes of the tag.
 *
 * @return string
 *   The rendered Shadow.
 */
 function qtag_SHADOW($env, $target, $attributes) {
 $shadow = $env->getData('shadow');
 $string = NULL;
 switch ($target) {
 case 'tab-titles':
 $string = $shadow->getData('tab_titles');
 break;
 case 'tab-contents':
 $string = $shadow->getData('tab_contents');
 break;
 case 'context':
 $string = $env->getContext();
 break;
 case 'node':
 $string = $shadow->getNode()->getName();
 break;
 case 'buttons':
 $buttons = '<div id="shadow-buttons">';
 foreach ($shadow->getData('buttons') as $action => $button) {
 $buttons .= '<a class="shadow-submit" id="' . $action . '">' . $button . '</a>';
 }
 $buttons .= '</div>';
 $string = $buttons;
 break;
 
 case 'redirect':
 $string = $shadow->getData('redirect');
 break;
 
 // Extra HTML that can be attached.
 case 'extra':
 $html = '';
 $vars = array('html' => &$html);
 $env->hook('shadow_' . $env->getContext() . '_extra', $vars);
 $string = $html;
 break;
 }
 return $string;
 }
 |