Entwicklung außerhalb des CMS


7

Ich habe eine Frage, ich habe eine bereits erstellte Site, wir verwenden Joomla für das CMS und ein Thema von RocketTheme namens "Diametric". Wir möchten eine Seite erstellen, deren Stil ziemlich weit außerhalb der Grenzen der Vorlage liegt. Ist es möglich, eine codierte HTML / CSS-Seite zu entwickeln, beispielsweise mit dem Bootstrap Framework, und sie im Dateipfad für unsere aktuelle Domain zu speichern? So wie ich es verstehe, wäre es eine Seite außerhalb des CMS, aber immer noch innerhalb der Domäne. Übersehe ich dabei etwas? Sollte ich von Joomla ein problematisches Verhalten erwarten?

Antworten:


8

Verwenden Sie in der index.phpDatei Ihres Ordners, z. B. \joomlaroot\yourfolder\index.phpLaden Sie nur das Framework Ihrer Joomla-Site, den folgenden Code:

Sobald dies erledigt ist, haben Sie vollen Zugriff auf "alles Joomla".

<?php
if (!defined('_JEXEC')) {
    define( '_JEXEC', 1 );
    define('JPATH_BASE', dirname(dirname(__FILE__)));
    require_once ( JPATH_BASE .'../includes/defines.php' );
    require_once ( JPATH_BASE .'../includes/framework.php' );
    defined('DS') or define('DS', DIRECTORY_SEPARATOR);
}
?>
<!DOCTYPE html>
<html>
    <head>
        <title>My Outside-of-Joomla Page</title>
    </head>
    <body>
        <?php
        $user = jFactory::getUser();
        if($user->id){
            echo '<h1>Hello '.$user->name.'</h1>';
        }else{
            echo 'You are not logged into Joomla';
        }
        ?>
    </body>
</html>

Es ist auch interessant zu bemerken, dass innerhalb des \cliOrdners ein Beispiel für das Laden nur des Frameworks für genau das - "cli" -Verwendung - sehr praktisch ist, um geplante Aufgaben und dergleichen für Ihre Joomla-Site auszuführen.


Es fällt mir ein bisschen schwer zu verstehen, was das genau macht. Könntest du es für mich ein bisschen aufschlüsseln?
ParanoidPenguin

Ich habe die Antwort so bearbeitet, dass sie eine voll funktionsfähige Datei index.php enthält. Kurz gesagt, mit dem geladenen Framework haben Sie vollen Zugriff auf alles, als ob Sie das Joomla CMS verwenden würden, aber nichts davon ist erforderlich. Sie können alles eingeben, worum es bei Ihrem Design und Code geht, während Sie auf die Datenbank zugreifen, und die meisten anderen Funktionen von Joomla aus, wenn Sie sie benötigen.
BIP

1
Wow, das ist wirklich großartig, ich hatte keine Ahnung, dass dies so gemacht werden könnte. Ist das aus der Dokumentation? Ich konnte diese Informationen bei der Suche nicht finden.
ParanoidPenguin

Es ist, aber ich verliere mich in den Dokumenten mit allen Versionen usw.
BIP

Für diejenigen, die diesem Skript folgen, liegt ein Problem mit dem Verzeichnispfad vor. Entfernen Sie die beiden Punkte ".." vor dem Includes-Pfad, oder setzen Sie das "define ('DS', DIRECTORY_SEPARATOR);" Nachdem die JPATH_BASE definiert und dann verwendet wurde, erfordert dieser Code require_once (JPATH_BASE .DS.'includes'.DS.'defines.php '); require_once (JPATH_BASE .DS.'includes'.DS.'framework.php ');
David Addoteye

3

Du kannst. Wenn Sie beispielsweise Akeeba Admin Tools Pro verwenden, müssen Sie einige Ausnahmen einfügen, aber im Allgemeinen ist es Joomla egal, was Sie in Ordnern und / oder Dateien haben, die es nicht verwendet.

Aber du solltest es wahrscheinlich nicht. Sie können die aktive Vorlage pro Menüpunkt zuweisen. Weisen Sie Ihrer "Unterwebsite" einfach eine Vorlage zu, die so aussieht, wie Sie es möchten. Ich bezweifle, dass es so schwierig wäre, eine einfache Vorlage zu finden oder sogar zu erstellen, die Ihren Anforderungen entspricht.

Mit RocketTheme-Vorlagen können Sie außerdem relativ einfach "Vorlagenüberschreibungen" mit geänderten Einstellungen erstellen und diese Menüelementen zuweisen. Grundsätzlich verwenden Sie entweder "Als Kopie speichern" aus der Vorlage oder "Duplizieren" aus dem Vorlagenmanager.


@ ville-niemande Ich interessiere mich für das Überschreiben von Vorlagen, aber für das einfache Stylen eines bestimmten Abschnitts einer bestimmten Seite. Wenn ich sagen wollte, umgeben Sie eine Tabelle, sagen wir in einer <div class = "special-table> insgesamt, und weisen Sie dann eine Überschreibung für das folgende Styling zu: zurb.com/playground/responsive-tables Wo würde ich das tun ? Ist es ein Problem, dass ich auch einige benutzerdefinierte JS einbinden möchte? Ich bin nicht ganz neu in der Codierung, aber ich habe noch nie eine Joomla- oder Wordpress-Vorlage entworfen.
ParanoidPenguin

@ParanoidPenguin Nein, das Hinzufügen von CSS oder JS zu Joomla-Seiten ist nicht wirklich schwierig. Tatsächlich gibt es so viele Möglichkeiten, dass ich Probleme habe, spezifische Ratschläge zu geben. Sie müssen es auch nicht wirklich mit Vorlagen tun. Wenn wir von einer einzelnen Seite ausgehen, das heißt, Sie müssen dies nirgendwo anders tun. Sie können einfach ein benutzerdefiniertes HTML-Modul erstellen, das der Seite zugewiesen ist, und dann im Nicht-Wysiwyg-Modus die js und css einfügen. Oder Sie können eine der vielen Erweiterungen verwenden, die dies mit mehr Stil tun können. Oder fügen Sie es der Vorlage hinzu. Oder ... Sie haben die Idee. Sie können Klassenattribute im Editor hinzufügen.
Ville Niemi

... Ich weiß, dass dies ziemlich einfach sein mag, also mag meine Begeisterung ein bisschen groß sein, aber du hast gerade meine Nacht gemacht. Ich werde es heute Abend versuchen und hoffe, dass ich am Ende ein paar edel aussehende Tische habe. Vielen Dank für deine Hilfe.
ParanoidPenguin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.