it-swarm.com.de

Minimal- / Grundstruktur für eine Frontend-Joomla-Komponente ohne Verwendung von Joomla MVC

Was ist eine grundlegende/minimale Grundgerüststruktur, auf der eine Komponente erstellt werden kann, ohne die Joomla MVC-Klassen zu erweitern? Das Skelett sollte installiert und deinstalliert werden, keine Fehler verursachen und praktisch als Ausgangspunkt für die Entwicklung verwendet werden können. Unterfragen beinhalten: Welche J4-Änderungen können ein solches Skelett beeinflussen? & welche merkmale verliert man, zb. Vorlagenüberschreibungen.

Warnung: Sie sollten einen solchen Ansatz nur wählen, wenn Sie wissen, was Sie tun. Dieser Ansatz eignet sich insbesondere nicht für Anwendungen, die für die Verteilung entwickelt wurden. Wenn Sie ein Anfänger sind, ist es besser, dem Komponententutorial in den Dokumenten zu folgen und dann den Komponentenersteller oder einen anderen Ansatz zu verwenden, um die Entwicklung zu beschleunigen und bewährten Methoden usw. zu folgen.

1
jamesgarrett

Hier ist mein Vorschlag, den ich mithilfe von Discovery installieren würde.

  • Beinhaltet keine Joomla-Zugriffsprüfungen
  • Ermöglicht keine Vorlagenüberschreibungen
  • Nicht zulässige URLs
  • Erlaubt keine von JHtml erstellten Routen

================================================ =

Manifest

Beschreibung: Während es funktioniert, das Manifest in das Frontend aufzunehmen, führt dies zu Fehlern bei der Deinstallation, wenn keine Verwaltungsdateistruktur vorhanden ist. Daher füge ich das Manifest in eine index.html-Datei ein, um die Firma zu behalten

Position: /administator/components/com_minimal/minimal.xml

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.7.0" method="upgrade">

    <name>Minimal</name>
    <version>0.0.1</version>
    <description>Testing Only</description>
    <author>Minimal</author>
    <creationDate>Dec 2017</creationDate>

    <files folder="site">
        <filename>minimal.php</filename>
        <filename>router.php</filename>
        <folder>views</folder>
    </files>

    <administration>
        <files folder="admin">
            <filename>index.html</filename>
        </files>
    </administration>

</extension>

================================================ =

Eingabedatei

Speicherort: /components/com_minimal/minimal.php

Beschreibung: Fängt bis zu 5 URL-Segmente vom Router ab, vermutlich würde man hier alles, was Sie von Joomla wollen, in Ihren eigenen Code einfügen

<?php
defined('_JEXEC') or die;

$max_segments = 5;

$jinput = JFactory::getApplication()->input;
$segments = [];
for($i=0;$i<$max_segments;$i++){
    $segments[] = $jinput->get('segment'.$i,'','CMD');
}

// load your own custom php application here
echo "<pre>" . print_r($segments,1) . "</pre>";

================================================ =

Router

Speicherort: /components/com_minimal/router.php

Beschreibung: Teilt die URL-Segmente ab dem Menüpunkt Komponentenbasis in Eingabevariablen auf, d. H./menu-item/{segment0}/{segment1} usw. Die Erstellungsmethode muss vorhanden sein, wird jedoch nicht verwendet.

<?php
Class MinimalRouter extends JComponentRouterBase
{
    public function build(&$query)
    {
        return;
    }

    public function parse(&$segments)
    {
        $vars = [];
        foreach($segments as $i => $s){
            $vars['segment' . $i] = $s;            
        }
        return $vars;
    }
}

================================================ =

Standardmenüpunkt

Position: /components/com_minimal/views/minimal/tmpl/default.xml

Beschreibung: Stellt einen Menüelementtyp bereit, der auf die Komponente verweist.

<?xml version="1.0" encoding="utf-8"?>
<metadata><fields name="params"></fields></metadata>
2
jamesgarrett