it-swarm-es.tech

¿Cómo puedo configurar el título de la página desde un componente?

He creado un componente 3.x usando Component-Creator.com y quiero poder establecer el título de la página en el encabezado del elemento (tomado del componente mismo). He intentado el siguiente código pero no funciona:

$browserbar= "$this->item->heading";
$document = JFactory::getDocument();
$document->setTitle($browserbar);

Esto solo de salida:

JObject->heading

como el título de la página en el navegador

6
RustyJoomla

Ok, ya lo solucioné. Eliminé las marcas "" alrededor del encabezado $ this-> item-> de la siguiente manera:

$browserbar= $this->item->heading;
$document = JFactory::getDocument();
$document->setTitle($browserbar);

y ahora esta funcionando!

9
RustyJoomla

Una alternativa para eliminar las comillas es ajustar la variable completa entre llaves:

$browserbar= "{$this->item->heading}";

Esto hace que PHP procese la pieza completa como una variable en lugar de simplemente procesar $this->item (que es un objeto del tipo JObject, de ahí el resultado) seguido literalmente por ->heading.

En su caso, las comillas no son necesarias, pero esto podría ser útil para agregar también una cadena literal al contenido de la propiedad de encabezado:

$browserbar= "The heading is {$this->item->heading}.";
7
David Fritsch

Esto es en realidad para la salida del Encabezado de página, pero lo mismo se aplica al Título del navegador. He tenido esta situación con mayor frecuencia con componentes de terceros. Joomla almacena estos valores cuando los especifica en el elemento del menú, pero depende del componente si se usan o no. A continuación se muestra el código que he agregado a mis componentes y, a veces, a las anulaciones de plantilla. Si no está familiarizado con las anulaciones de plantillas, debe leer Cómo anular la salida del núcleo de Joomla! primero.

Coloque este código antes que cualquier otro código HTML en el archivo de anulación de plantilla. Comprueba si has especificado mostrar los encabezados de página o no, y si es así, lo usará, de lo contrario usará el título del menú.

<?php if ($this->params->get('show_page_heading',1)) : ?>
    <h1><?php echo  $this->params->get('page_heading') ? $this->params->get('page_heading') : JFactory::getApplication()->getMenu()->getActive()->title; ?></h1>
<?php endif; ?>

Para ver cómo Joomla lo hace por defecto, mira components\com_content\views\article\tmpl\default.php

<div class="item-page<?php echo $this->pageclass_sfx?>">
    <?php if ($this->params->get('show_page_heading', 1)) : ?>
    <div class="page-header">
        <h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1>
    </div>
    <?php endif;
1
GDP