Ver Mensaje Individual
  #14 (permalink)  
Antiguo 28/09/2012, 04:30
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 15 años, 5 meses
Puntos: 261
Respuesta: Zf2 Como Crear View Helper Navigation

Código PHP:
/**
 * Returns an HTML string containing an 'a' element for the given page if
 * the page's href is not empty, and a 'span' element if it is empty
 *
 * Overrides {@link AbstractHelper::htmlify()}.
 *
 * @param  AbstractPage $page   page to generate HTML for
 * @param bool $escapeLabel     Whether or not to escape the label
 * @return string               HTML string for the given page
 */
public function htmlify(AbstractPage $page, $escapeLabel = true)
{
    
// get label and title for translating
    
$label = $page->getLabel();
    
$title = $page->getTitle();

    
// translate label and title?
    
if( null !== ($translator = $this->getTranslator()) )
    {
        
$textDomain = $this->getTranslatorTextDomain();
        if( 
is_string($label) && !empty($label) )
        {
            
$label = $translator->translate($label, $textDomain);
        }
        if( 
is_string($title) && !empty($title) )
        {
            
$title = $translator->translate($title, $textDomain);
        }
    }

    
// get attribs for element
    
$attribs = array(
        
'id' => $page->getId(),
        
'title' => $title,
        
'class' => $page->getClass()
    );

    
// does page have a href?
    
$href = $page->getHref();
    if( 
$href )
    {
        
$element = 'a';
        
$attribs['href'] = $href;
        
$attribs['target'] = $page->getTarget();
    }
    else
    {
        
$element = 'span';
    }

    
// ***************** THESE ARE NEW LINES *************** //
    
if( $element === 'span' )
    {
        return 
$this->view->escapeHtml($label);
    }

    
$customProperties = $page->getCustomProperties();
    if( 
$page->getClass() == 'dropdown-toggle' )
    {
        
//inserta un icono mediante el tag <iclass>icon-name</iclass>
        
if( isset($customProperties['iclass']) )
        {
            return 
'<' . $element . ' data-toggle="dropdown" ' . $this->htmlAttribs($attribs) . '>'
                    
. '<i class="' . $customProperties['iclass'] . '"></i> '
                    
. $this->view->escapeHtml($label)
                    . 
'<b class="caret"></b>'
                    
. '</' . $element . '>';
        }

        return 
'<' . $element . ' data-toggle="dropdown" ' . $this->htmlAttribs($attribs) . '>'
                
. $this->view->escapeHtml($label)
                . 
' <b class="caret"></b>'
                
. '</' . $element . '>';
    }
    elseif( isset(
$customProperties['iclass']) )
    {
        return 
'<' . $element . $this->htmlAttribs($attribs) . '>'
                    
. '<i class="' . $customProperties['iclass'] . '"></i> '
                    
. $this->view->escapeHtml($label)
                    . 
'</' . $element . '>';
    }
    
// ***************** END OF NEW STUFF *************** //

    
$html = '<' . $element . $this->htmlAttribs($attribs) . '>';
    if( 
$escapeLabel === true )
    {
        
$escaper = $this->view->plugin('escapeHtml');
        
$html .= $escaper($label);
    }
    else
    {
        
$html .= $label;
    }
    
$html .= '</' . $element . '>';

    return 
$html;
} 
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight