it-swarm.com.de

Wie kann ich den Seitentitel einer Komponente festlegen?

Ich habe eine 3.x-Komponente mit Component-Creator.com erstellt und möchte den Seitentitel auf die Elementüberschrift setzen können (aus der Komponente selbst). Ich habe den folgenden Code ausprobiert, aber er funktioniert nicht:

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

Dies gibt nur Folgendes aus:

JObject->heading

als Seitentitel im Browser

6
RustyJoomla

Ok, ich habe es gelöst. Ich habe die "" Markierungen um die Überschrift $ this-> item-> wie folgt entfernt:

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

und jetzt funktioniert es!

9
RustyJoomla

Eine Alternative zum Entfernen der Anführungszeichen besteht darin, die gesamte Variable in geschweifte Klammern zu setzen:

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

Dies bewirkt, dass PHP das gesamte Stück als eine Variable verarbeitet, anstatt nur $this->item (Das ein Objekt vom Typ JObject ist, daher die Ausgabe) zu verarbeiten buchstäblich durch ->heading.

In Ihrem Fall werden die Anführungszeichen nicht benötigt, aber dies kann nützlich sein, um auch eine Literalzeichenfolge an den Inhalt der Heading-Eigenschaft anzuhängen:

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

Dies gilt eigentlich für die Ausgabe des Seitenkopfs, gilt jedoch auch für den Browsertitel. Ich habe diese Situation am häufigsten mit Komponenten von Drittanbietern auftreten. Joomla speichert diese Werte, wenn Sie sie im Menüpunkt angeben, aber es liegt an der Komponente, ob sie verwendet werden oder nicht. Unten ist der Code aufgeführt, den ich meinen Komponenten und manchmal den Vorlagenüberschreibungen hinzugefügt habe. Wenn Sie nicht mit Vorlagenüberschreibungen vertraut sind, sollten Sie zuerst lesen: Überschreiben der Ausgabe vom Joomla! -Core .

Stellen Sie diesen Code vor jeden anderen HTML-Code in die Datei zum Überschreiben von Vorlagen. Es wird geprüft, ob Sie angegeben haben, dass die Seitenüberschriften angezeigt werden sollen, und in diesem Fall wird dies verwendet, andernfalls wird der Menütitel verwendet.

<?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; ?>

Um zu sehen, wie Joomla es standardmäßig macht, schauen Sie sich 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