Announcement

Do not use the forums to submit bug reports, feature requests or patches, submit a New Ticket instead.

#1 2009-04-13 11:50:43

brenni
New member
Registered: 2009-04-13
Posts: 2

Einfaches Plugin benötigt

Hallo Allerseits,
ich nutze in Zikula das Xinha Plugin. Ich benötige hier eine einfache Funktion. Zikula nutzt SMARTY. Ich hätte gern im Xinha-Editor einen Button, der mir in den HTML-Code folgendes einfügt: <!--pagebreak-->. Soweit bin ich auch schon. Ich hätte jedoch gerne, dass dieser Pagebreak auch im WYSiWIG Fenster in irgendeiner Form angezeigt bekomme.
Bisher verwende ich folgendes Plugin:
// InsertPagebreak plugin for HTMLArea/Xinha
// Implementation by Udo Schmal & Schaffrath NeueMedien
// Original Author - Udo Schmal
//
// (c) Udo Schmal & Schaffrath NeueMedien 2004
// Distributed under the same terms as HTMLArea itself.
// This notice MUST stay intact for use (see license.txt).

function InsertPagebreak(editor, args) {
    this.editor = editor;
    var cfg = editor.config;
    var self = this;

    cfg.registerButton({
    id       : "pagebreak",
    tooltip  : this._lc("Page break"),
    image    : editor.imgURL("pagebreak.gif", "InsertPagebreak"),
    textMode : false,
    action   : function(editor) {
            self.buttonPress(editor);
        }
    });
  cfg.addToolbarElement("pagebreak", "inserthorizontalrule", 1);
}

InsertPagebreak._pluginInfo = {
    name          : "InsertPagebreak",
    version       : "1.0",
    developer     : "Udo Schmal",
    developer_url : "",
    sponsor       : "L.N.Schaffrath NeueMedien",
    sponsor_url   : "http://www.schaffrath-neuemedien.de/",
    c_owner       : "Udo Schmal & Schaffrath NeueMedien",
    license       : "htmlArea"
};

InsertPagebreak.prototype._lc = function(string) {
    return Xinha._lc(string, 'InsertPagebreak');
};


InsertPagebreak.prototype.buttonPress = function(editor, context, updatecontextclass) {
    editor.insertHTML('<div><!--pagebreak-->');
};

Das funktioniert auch, nur bekomme ich im WYSIWYG-Modus keinerlei anzeige über diesen Seitenwechsel.
Leider kann ich nicht programmieren und verstehe nicht wie ich mir das bauen soll.

Es wäre doch nütlich ein Plugin zu haben, mit dem man sich einenen eigenen Button bauen könnte, der etwas definiertes in den HTML-Code einbaut und einfach nur im WYSIWYG-Editor ein Bildchen ausgibt (Ähnlich dem Anchor.
Ich denke das ist recht einfach zu realisieren nur alle Spielereien mit "inwardHtml" usw. funktionieren nicht. Ich kopier mir halt alles aus beispielen zusammen und gugg ob es funktioniert.
Vielleicht hat hier jemand einen schnellen Code. Das wäre Supi.
Danke im Vorraus. Grüße Brenni

Offline

#2 2009-04-15 04:33:18

hilope
Xinha Community Member
Registered: 2006-06-06
Posts: 26
Website

Re: Einfaches Plugin benötigt

Hi brenni,

unter pagesetter und News wird automatisch das richtige pagebreak-Plugin eingebunden. Das habe ich im Code direkt kodiert. Bitte mach mal ein Ticket unter http://code.zikula.org/scribite auf (vorher registrieren und einloggen) und schreib dort nochmal alles rein. Dann kriege ich das hin ...
Das ist eher ein scribite!-spezifisches Problem (außerdem ist das hier ein englischsprachiges Forum wink ).

Danke
Sven (Entwickler von scribite!)

Offline

#3 2009-04-15 15:18:14

brenni
New member
Registered: 2009-04-13
Posts: 2

Re: Einfaches Plugin benötigt

Yep hab ich gemacht. Hoffe das is korrekt so im cozy. Und danke für die Rückmeldung.
Gruß Brenni

Offline

#4 2009-11-19 10:20:37

gocher
New member
From: Germany
Registered: 2005-04-14
Posts: 4
Website

Re: Einfaches Plugin benötigt

Here is the solution!!  (Hier ist die Lösung!!)

Insert into the File InsertPagebreak.js the following lines:
(Füge in die Datei InsertPagebreak.js die folgenden Zeilen ein:)

InsertPagebreak.prototype.onGenerate = function() {
  this.editor.addEditorStylesheet(_editor_url + 'plugins/InsertPagebreak/InsertPagebreak.css');
};

Create a new file in the same directory!
(Erzeuge die folgende Datei im selben Verzeichnis!)
InsertPagebreak.css:

div.pagebreak {
  font-size: 1px;
  page-break-after: always;
  height: 1px;
  background-color: rgb(192, 192, 192);
  clear: all;
}


Udo Schmal (Gocher)

Offline

#5 2009-11-19 10:24:27

gocher
New member
From: Germany
Registered: 2005-04-14
Posts: 4
Website

Re: Einfaches Plugin benötigt

The following buttonPress prototype woud be better:

InsertPagebreak.prototype.buttonPress = function(editor, context, updatecontextclass) {
  var sel = editor._getSelection();
  var range = editor._createRange(sel);
  var el = editor.getParentElement();
  if (el && (el.tagName.toLowerCase() != 'body')) {
    while ( el && (el.parentNode.nodeType == 1) && ( el.parentNode.tagName.toLowerCase() != 'body' )) {
      el = el.parentNode;
    }
  }
  var doc = editor._doc;
  var div = doc.createElement("div");
  div.class = "pagebreak";
  div.contenteditable = "false";
  div.title = "Page Break";
  if ((!el) || (el.tagName.toLowerCase() == 'body')) {
    doc.body.appendChild(div);
  } else {
    el.parentNode.insertBefore(div, el.nextSibling);
  }
  editor.forceRedraw();
  editor.focusEditor();
  editor.updateToolbar();
};


Udo Schmal (Gocher)

Offline

#6 2009-11-19 16:16:16

hilope
Xinha Community Member
Registered: 2006-06-06
Posts: 26
Website

Re: Einfaches Plugin benötigt

Thanks.

In upcoming version 4.0 of scribite! the pagebreak for the News module will be loaded dynamically - there will be no need for an own plugin wink

Code just integrated in module.

Offline

Board footer

Powered by FluxBB