2016-05-25 15 views
0

Ist es möglich, eine Ansicht einer Komponente ohne iframe und plugin anzuzeigen? (Das heißt, wenn möglich mit ein paar Zeilen PHP und vielleicht SQL-Abfragen?)Joomla: Ist es möglich, eine Ansicht einer Komponente ohne iframe und plugin anzuzeigen?

EDIT: Um mehr klar: Ich möchte es direkt in der PHP-Template tun! (wäre schön es in einem Artikel als auch zu tun, wie ich eine PHP-Funktion showArticle(mixed $ident) geschrieben haben)

(Ich bin mit Joomla 3.5)

ich so etwas wie

tun möchten
<jdoc:include type="component" view="example" name="position-x" /> 

oder

<?php 
    show_component('component-name', 'view-name'); 
?> 
+0

Wo möchten Sie die Komponente anzeigen? In einem Artikel? Könnten Sie mehr Kontext bereitstellen? – itoctopus

+0

@itoctopus Direkt in der Vorlage. Auch das Anzeigen in einem Artikel wäre in Ordnung, siehe Bearbeiten. – Alex

+0

Es ist nicht wirklich entworfen, um mehr als einen Typ = "Komponente" wegen der architektonischen Gestaltung der alten MVC laden (viel mehr ist möglich, wenn Sie die neuere verwenden). Das heißt, was Sie tun möchten, ist ein Plugin zu verwenden, das ist die Joomla-Art, Ihnen zu erlauben, "ein paar Zeilen PHP" zu verwenden und möglicherweise ein Modul für das Layout zu verwenden. Ich bin mir nicht sicher, aber Sie könnten auch ein JLayout verwenden und es die Komponentenansicht in eine Zeichenfolge von HTML rendern lassen und dann die Zeichenfolge anzeigen. – Elin

Antwort

2

Sie diese Komponente http://extensions.joomla.org/extension/components-anywhere installieren können th e Plugin und aktivieren Sie es. Dann können Sie die Komponente auf diese Weise {Komponente url/von/die/component}

nennen {Komponente index.php? Komponente = com_example & form = 1}

Versuchen nicht-SEF URLs in der verwenden URL aber sef URL wird immer noch funktionieren.

Es gibt einen anderen Weg, dies

JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_example/models', 'ExampleModel'); 

diese Weise durch den Aufruf des Modells in Ihrem Controller-Datei zu erreichen, was dies tut, ist es die Modellklasse sucht mit Beispielmodell in den angegebenen Ordner zu starten. Hier können Sie nur einen Pfad oder ein Array der Verzeichnisse als ersten Parameter eingeben. Als nächstes müssen Sie die Methode in den Ansichten auf diese Weise Sie

$exmodel = JModelLegacy::getInstance('Something', 'ExampleModel', array('ignore_request' => true)); 

eine Instanz der Klasse Objektdatei rufen also hier schaffen, die verwendet werden können, die Elemente aus dem Modell auf diese Weise

$items = $exmodel->getitem(); 
$this->assignRef('items', $items); 

zu erhalten Als nächstes können Sie die Datei "default.php" in den Ordner "tmpl" dieser Komponente kopieren und an beliebiger Stelle in Ihre Layoutdatei einfügen. Anstatt die gesamte Komponente zu kopieren, rufen Sie das Modell auf und erhalten die Daten, die Sie in Ihren Layouts verwenden können.

+0

Danke für diese Antwort, aber wie in meiner Frage angegeben, würde ich lieber kein Plugin verwenden, sondern stattdessen nur ein paar Zeilen PHP haben ... furchtbar nervig, dass es dafür keine einfache Lösung zu geben scheint ... – Alex

+0

hat er dir gesagt, wie man mit "nur ein paar Zeilen PHP" macht !!! lies sorgfältig, was er oben schreibt! – trajo

+0

@trajo Ich dachte Joomla ist auch mit PHP gemacht, also habe ich diesen Code geschrieben.Vielleicht ist seine Frage ein bisschen mehrdeutig –