Ankündigung

Einklappen
Keine Ankündigung bisher.

eigenes Plugin erstellen und ausgeben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • eigenes Plugin erstellen und ausgeben

    Hallo, jetzt muss ich mir doch nochmal einen Rat einholen.

    Ich habe mir ein kleines Script geschrieben, genauer gesagt einen Editor.

    PHP-Code:
    define('EDITORPATH'strstr(str_replace($_SERVER["DOCUMENT_ROOT"], ''__FILE__), 'editor.php'true));

    class 
    Editor
    {

        
    /**
         * Elemente des Editors erstellen
         */
        
    function __construct()
        {
    ...
        }
    ...

    Dazu einige Funktionen um den Editor je nach Bedarf anpassen zu können:
    PHP-Code:
        /**
         * Hintergrundfarbe
         *
         * @param string $editorBackground
         */
        
    public function setBackground($editorBackground)
        {
            (
    is_string($editorBackground) ? $this->eBackground $editorBackground '');
        }


        
    /**
         * Rahmen
         *
         * @param string $editorBorder
         */
        
    public function setBorder($editorBorder)
        {
            (
    is_string($editorBorder) ? $this->eBorder $editorBorder '');
        }

    ... 
    und weitere 

    Dann gibt es ja noch die HTML-, CSS- und JavaScript-Bausteine, befinden sich jeweils in einer separaten Datei.

    Meine Frage:
    Wie bekomme ich das ganze jetzt so zusammengewürfelt, das der Editor z. B. mit $editor->getEditor(); angezeigt wird?

    Ich könnte einfach im HTML-Baustein CCS und Javascript einbinden?
    PHP-Code:
    require_once('screen.css');
    require_once(
    'script.js'); 
    und noch eine Funktion getEditor() in der Haupt-Datei editor.php erstellen?
    PHP-Code:
        public function getEditor()
        {
            return 
    file_get_contents(__DIR__ '/output.php');
        } 
    Mein Ziel?
    Den Editor mit zwei Zeilen Code in eine beliebige Seite einbinden. Etwa so:

    Editor ins Projekt einbinden:
    PHP-Code:
    require_once ('... editor.php'); 
    und Editor an der gewünschten Stelle ausgeben:
    PHP-Code:
    $editor->getEditor(); 

    Wie muss ich die Funktion getEditor() am besten gestalten?
    file_get_contents gibt ja auch nur einen String wieder.
    Oder benötige ich diese Funktion gar nicht und muss das anders machen?
    Man friert nur, wenn man glaubt, einem sei kalt


  • #2
    Die Frage ist warum das überhaupt in PHP machen? Ein Editor ist für mich etwas, das clientseitig läuft, also mit JavaScript. PHP muss davon überhaupt nichts wissen.

    Kommentar


    • #3
      Dann gibt es ja noch die HTML-, CSS- und JavaScript-Bausteine, befinden sich jeweils in einer separaten Datei.
      Schön, wenn diese nicht zu groß und komplex wird, weil die Anforderungen zu verschieden sind, nutze einen Script minifyer und liefere eine css und eine js Datei aus.
      webpack bspw. kann sowas.

      Kommentar


      • #4
        Hm okay, danke für die guten Vorschläge, da werde ich auf jeden Fall drüber nachdenken.
        Das kann ich aber erst in der nächsten Version umsetzen, da ich das jetzige Projekt erstmal abschließen möchte, sonst explodiert mir noch der Kopf

        Also nehmen wir mal an, es ist kein Editor sondern irgendein anderes Script.
        Wir wäre es denn üblich sowas einzubinden? Wie geht man da am besten vor?
        Man friert nur, wenn man glaubt, einem sei kalt

        Kommentar


        • #5
          So würde es gehen:
          PHP-Code:
              public function getEditor()
              {
                  return require_once(
          __DIR__ '/output.php');
              } 
          Aber das ist nicht üblich?
          Man friert nur, wenn man glaubt, einem sei kalt

          Kommentar


          • #6
            Zitat von stiff82 Beitrag anzeigen
            So würde es gehen:
            PHP-Code:
            public function getEditor()
            {
            return require_once(
            __DIR__ '/output.php');

            Aber das ist nicht üblich?

            Eine öffentliche methode zu nutzen um eine datei mit require_once() einzuinden und den erfolg zurückzugeben ?
            was macht der rest der editor klasse, wenn getEditor() erst die datei included ?

            ich hoffe nicht das sowas üblich ist.

            Kommentar


            • #7
              Die Benutzeroberfläche muss die Schnittstelle zu deinen Methoden in der Editor Klasse sein. Da das allerdings ziemlich umständlich wäre und alles andere als Benutzerfreundlich, macht ein Editor erst wirklich Sinn, wenn man ihn clientseitig auslegt. Das wäre auch rein logisch der vernünftigere Weg, denn ein Editor und die dazugehörigen Funktionen haben erst einmal nichts mit dem Backend zu tun.

              Kommentar


              • #8
                Es erleichtert Dir möglicherweise die Überlegungungen, wenn Du Pluguin/script einbinden erstmal aussen vorlässt,
                und eine feauture oder eine funktionalität gestaltest.

                dann wird dir wie schon mehrmals angemerkt wurde, wohl ausfallen, das das editieren nur im client stattfindet, das laden und speichern allerdings wohl auf dem server.

                Um die einbindung in irgendwas, oder was alles notwendig ist um das dann irgendwo als plugin dranzuhängen, kannst du doich getrost danach kümmern.

                Kommentar


                • #9
                  Hm, ich glaube ich habe mich falsch ausgedrückt.

                  Der PHP-Teil soll nur dafür sorgen, dass der Editor erstellt wird. Es wird nur der reine HTML-Code des Editors generiert.

                  Dazu kommen einige Methoden zum Verändern der Default-Werte von Hintergrundfarbe, Breite, Höhe, etc., damit sich der Editor seiner Umgebung anpassen kann. Hierbei geht es nur um die optische Darstellung des Editors selbst. Mehr nicht. Das hat erstmal noch nichts mit der Funktionalität zu tun.

                  Die Funktionalität übernimmt ausschließlich JavaScript:
                  Schrift- und Hintergrundfarbe, Tabelle einfügen, Spaltenbreite der Tabelle verändern, Listenformat, usw. << Das ist alles fertig und hat sich seit längerem bereits bewährt.

                  Den Einwand, das Gerüst des Editors auch in JavaScript zu erzeugen, den finde ich gut, ist für mich logisch nachzuvollziehen. Und das werde ich auch in der nächsten Version umsetzen, Vielen Dank dafür.


                  Worum ging es mir letzten Endes?
                  Ich dachte ich kann mir das Script, das den HTML-Code des Editors generiert, mit einer getter Methode holen.
                  Aber das ist wohl richtiger Blödsinn, an dieser Stelle fehlt mir noch einiges an Wissen.
                  Deswegen meine Frage, wie man das sonst üblicherweise tun würde (auch davon mal abgesehen, das es sich hierbei um einen Editor (clientseitig) handelt).


                  Um den jetzigen Editor vorerst mit der PHP-Variante zum Abschluss zu bringen, kann ich den Editor ja auch so einfügen:
                  PHP-Code:
                  require_once('editor.php'); // Objekt Editor erstellen und Elemente zuweisen
                  $editor->setBackground(...); // evtl. die Hintergrundfarbe des Editors ändern und/oder andere Funktionen (Methoden dienen nur der optischen Darstellung des Editors)
                  require_once('output.php'); // den Editor ausgeben <-- an dieser Stelle wollte ich mit getEditor() ansetzen 
                  Man friert nur, wenn man glaubt, einem sei kalt

                  Kommentar

                  Lädt...
                  X