Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

2 Seiten V   1 2 >  
Reply to this topicStart new topic
> Add Headerelement v01.00.00, Fügt dem <head> einzelne Elemente an
duffy
Beitrag Fri. 7. March 2008, 00:11
Beitrag #1


Advanced Member
****

Gruppe: AdvancedMembers
Beiträge: 112
Mitglied seit: 31.08.2006
Wohnort: Berlin
Mitglieds-Nr.: 219



Basierend auf der case Study jQuery hier ein Plugin mit der dort entwickelten Funktionalität. Dieses läuft sowohl auf php4 als auch auf php5.

Plugin-Name:
---------------------------------------------------------------------------
Add Headerelement

Version:
---------------------------------------------------------------------------
01.01.00

Status:
---------------------------------------------------------------------------
stable (getested mit php4 undf php5)


Bechreibung:
---------------------------------------------------------------------------
Das Plugin bietet die Möglichkeit dem <head> Elemente wie javascript Dateien,
css Dateien oder - Definitionen hinzuzufuegen (anzuhaengen).


Features:
---------------------------------------------------------------------------
- bietet Modulen die Moeglichkeit an den vorhandenen <head> Elemente anzuhängen


Autor(en):
---------------------------------------------------------------------------
dduffy


Lizenz:
---------------------------------------------------------------------------
GPL

Benötigte Sefrengo Version:
---------------------------------------------------------------------------
>= 01.04.00 (frühere Versionen nicht getestet)


Installation:
---------------------------------------------------------------------------
Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Administration->
Plugins". Wechseln Sie dort in den Bereich "Plugin importieren"). Am
unteren Ende des Bereichs befindet sich ein Uploadfeld. Wählen Sie hier die
gewünschte "*.cmsplugin"- Datei aus. Mit einem Klick auf das Diskettensymbol
wird das Plugin in das CMS importiert. Das Plugin ist nun innerhalb des CMS
nutzbar.


Update/ Migration:
---------------------------------------------------------------------------
Kein Update vorhanden, da initiale Version


Dokumentation:

---------------------------------------------------------------------------
Innerhalb eines Moduls kann so ein Element zum <head> hinzugefügt werden:

require_once($cfg_cms['cms_path']."plugins/headerelement/class.headerelement.php");
$he =& SF_Headerelement::getInstance();
$he->addHeaderItem("<!-- meine Angaben hier einfuegen-->", 1);

Die Zahl hinter dem eigentlichen Element gibt dabei die Sortierung an.

CODE
Changelog legend:
# -> Bug Fix
+ -> Addition
^ -> Change
- -> Removed
! -> Note

Current versionnumber is 01.01.00 - released 13.03.2008
------------------------------------------------------------------------------------------------
+ Not doubled Entries possible

Current versionnumber is 01.00.02 - released 09.03.2008
------------------------------------------------------------------------------------------------
+ Update Meta
^ Install Meta

Current versionnumber is 01.00.01 - released 07.03.2008
------------------------------------------------------------------------------------------------
# Fixed installation / Deinstallation

Current versionnumber is 01.00.00 - released 06.03.2008
------------------------------------------------------------------------------------------------
! initial version


Angehängte Datei  Add_Headerelement_v01_01_00.zip ( 4.77KB ) Anzahl der Downloads: 24


Der Beitrag wurde von duffy bearbeitet: Thu. 13. March 2008, 23:08


--------------------
Go to the top of the page
 
+Quote Post
smail
Beitrag Fri. 7. March 2008, 01:02
Beitrag #2


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 587
Mitglied seit: 01.07.2006
Mitglieds-Nr.: 62



Hi,
wollte mir das grad mal ansehen, aber irgendwie scheint das Zip-Archiv nicht in Ordnung zu sein... unsure.gif

Gruß
Jan


--------------------
Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
Go to the top of the page
 
+Quote Post
duffy
Beitrag Fri. 7. March 2008, 01:06
Beitrag #3


Advanced Member
****

Gruppe: AdvancedMembers
Beiträge: 112
Mitglied seit: 31.08.2006
Wohnort: Berlin
Mitglieds-Nr.: 219



ZITAT(smail @ Fri. 7. March 2008, 01:02) *
Hi,
wollte mir das grad mal ansehen, aber irgendwie scheint das Zip-Archiv nicht in Ordnung zu sein... unsure.gif

Gruß
Jan


Edit: War noch ein Fehler beim Deinstallieren, ist behoben und der Upload ersetzt.

Der Beitrag wurde von duffy bearbeitet: Fri. 7. March 2008, 01:31


--------------------
Go to the top of the page
 
+Quote Post
gunwalt
Beitrag Fri. 7. March 2008, 10:20
Beitrag #4


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 1.126
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 7



Vielen Dank.
ZITAT(duffy @ Fri. 7. March 2008, 00:11) *
Innerhalb eines Moduls kann so ein Element zum <head> hinzugefügt werden:

$he =& SF_Headerelement::getInstance();
$he->addHeaderItem("<!-- meine Angaben hier einfuegen-->", 1);

Die Zahl hinter dem eigentlichen Element gibt dabei die Sortierung an.

Kannst Du hier mal ein Beispiel geben. Ich habe gerade versucht aus dem Fontsize Modul das Javascript extern auszulagern, kriege das aber nicht hin.


--------------------
------
Ich gehe spazieren durch Gelsenkirchen
Go to the top of the page
 
+Quote Post
duffy
Beitrag Fri. 7. March 2008, 10:22
Beitrag #5


Advanced Member
****

Gruppe: AdvancedMembers
Beiträge: 112
Mitglied seit: 31.08.2006
Wohnort: Berlin
Mitglieds-Nr.: 219



ZITAT(gunwalt @ Fri. 7. March 2008, 10:20) *
Kannst Du hier mal ein Beispiel geben. Ich habe gerade versucht aus dem Fontsize Modul das Javascript extern auszulagern, kriege das aber nicht hin.


Mir ist grad noch aufgefallen, dass natürlich noch eine Datei includiert werden muss, sorry. Korrekt wäre es so:

CODE
require_once($cfg_cms['cms_path']."plugins/headerelement/class.headerelement.php");
$he =& SF_Headerelement::getInstance();
$he->addHeaderItem("<!-- meine Angaben hier einfuegen-->", 1);



--------------------
Go to the top of the page
 
+Quote Post
smail
Beitrag Fri. 7. March 2008, 10:49
Beitrag #6


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 587
Mitglied seit: 01.07.2006
Mitglieds-Nr.: 62



Jetzt funktioniert die Zip-Datei smile.gif

Eine Anmerkung noch zur install_meta
QUELLTEXT
INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'jquery', 'core', NULL,
  'version', NULL, '01.00.00', 0, NULL, NULL, 'txt', NULL, NULL, 0);


Diese Konfiguration war eigentlich für eine Weiterentwicklung des jQuery-Plugins gedacht, bei dem sich weitere Plugins "anmelden" können sollten, wie beispielsweise
QUELLTEXT
INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'jquery', 'plugin', 'thickbox',
  'version', NULL, '01.00.00', 0, NULL, NULL, 'txt', NULL, NULL, 0);

Für Dein Plugin machen die Werte für "Core" also eher wenig Sinn.


Sinnvoller für normale, einzelne Plugins wäre z.B.
QUELLTEXT
INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'headerelement', 'version', NULL,
  NULL, NULL, '01.00.00', 0, NULL, NULL, 'txt', NULL, NULL, 0);


Ansonsten schöner Business-Case für die Verwendung des Codes aus der Case Study. smile.gif
Gruß
Jan



Gruß
Jan


--------------------
Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
Go to the top of the page
 
+Quote Post
amk
Beitrag Sat. 8. March 2008, 11:25
Beitrag #7


TRAIL AND ERROR SPECIALIST
********

Gruppe: AdvancedMembers
Beiträge: 1.708
Mitglied seit: 27.06.2006
Wohnort: Hansestadt Rostock, Deutschland
Mitglieds-Nr.: 9



QUELLTEXT
Ansonsten schöner Business-Case für die Verwendung des Codes aus der Case Study. :)


ich hoffe ja das deutsch nicht nur 'ne fallstudie für dich ist, Jan! wink.gif


--------------------
cheers, Alex
Go to the top of the page
 
+Quote Post
duffy
Beitrag Sun. 9. March 2008, 18:23
Beitrag #8


Advanced Member
****

Gruppe: AdvancedMembers
Beiträge: 112
Mitglied seit: 31.08.2006
Wohnort: Berlin
Mitglieds-Nr.: 219



ZITAT(smail @ Fri. 7. March 2008, 10:49) *
[...]
Eine Anmerkung noch zur install_meta
[...]


Ah, danke für den Tipp, hier fehlt mir einfach das nötige Wissen. Die meta Daten sind überarbeitet.

Gruß,

Oliver


--------------------
Go to the top of the page
 
+Quote Post
pawel
Beitrag Mon. 10. March 2008, 21:40
Beitrag #9


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 442
Mitglied seit: 02.07.2006
Wohnort: Halle
Mitglieds-Nr.: 71



Wird eigentlich überprüft, ob z.B. eine JS schon von einem Modul in den Header geschrieben wurde (also wenn mehrere Module die Funktionalität nutzen)?


--------------------
Go to the top of the page
 
+Quote Post
duffy
Beitrag Mon. 10. March 2008, 22:54
Beitrag #10


Advanced Member
****

Gruppe: AdvancedMembers
Beiträge: 112
Mitglied seit: 31.08.2006
Wohnort: Berlin
Mitglieds-Nr.: 219



ZITAT(pawel @ Mon. 10. March 2008, 21:40) *
Wird eigentlich überprüft, ob z.B. eine JS schon von einem Modul in den Header geschrieben wurde (also wenn mehrere Module die Funktionalität nutzen)?


Nein wird nicht. Wäre vielleicht eine Überlegung wert, allerdings ist das Plugin ja nicht auf js Dateien beschränkt und man kann rein packen, was man will. Die einzige Überprüfung die stattfindet ist, ob der sortIndex schon drin steht.


--------------------
Go to the top of the page
 
+Quote Post
pawel
Beitrag Wed. 12. March 2008, 10:57
Beitrag #11


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 442
Mitglied seit: 02.07.2006
Wohnort: Halle
Mitglieds-Nr.: 71



Kann man eigentlich abfragen, ob ein bestimmtes plugin installiert ist?


--------------------
Go to the top of the page
 
+Quote Post
duffy
Beitrag Wed. 12. March 2008, 12:23
Beitrag #12


Advanced Member
****

Gruppe: AdvancedMembers
Beiträge: 112
Mitglied seit: 31.08.2006
Wohnort: Berlin
Mitglieds-Nr.: 219



ZITAT(pawel @ Wed. 12. March 2008, 10:57) *
Kann man eigentlich abfragen, ob ein bestimmtes plugin installiert ist?


Ich habe gerade ein Modul geschrieben, was pro Template ein Stylesheet einbindet, basierend auf diesem Plugin. Dabei überprüfe ich einfach ob die zu includierende Datei existiert, mit file_exists(). Eine andere Variante ist mir nicht bekannt.


--------------------
Go to the top of the page
 
+Quote Post
Honigbiene
Beitrag Wed. 12. March 2008, 18:38
Beitrag #13


Member
**

Gruppe: Members
Beiträge: 10
Mitglied seit: 01.07.2006
Mitglieds-Nr.: 39



ZITAT(gunwalt @ Fri. 7. March 2008, 10:20) *
Vielen Dank.

Kannst Du hier mal ein Beispiel geben. Ich habe gerade versucht aus dem Fontsize Modul das Javascript extern auszulagern, kriege das aber nicht hin.


Ich hätte auch gerne ein Beispiel

Ich verstehe es auch noch nicht so ganz, wie kann ich z.B. externe Stylesheets darüber einbinden?
Beispiel
normalerweise steht <link rel="stylesheet" href="normal.css" type="text/css" media="screen" /> hardcodiert im Quelltext,
wenn ich aber nun für einen Bereich spezielle Sylesheets benötige z.B für Formulare oder Bildgalerien benötige, wie binde ich die dann die
<link rel="stylesheet" href="formular.css" type="text/css" media="screen" /> ein?
Genauso bei Java-Script, die ja oft auch nur für bestimmte Bereiche benötigt werden...

Gruß
Honigbiene
Go to the top of the page
 
+Quote Post
duffy
Beitrag Wed. 12. March 2008, 21:00
Beitrag #14


Advanced Member
****

Gruppe: AdvancedMembers
Beiträge: 112
Mitglied seit: 31.08.2006
Wohnort: Berlin
Mitglieds-Nr.: 219



ZITAT(Honigbiene @ Wed. 12. March 2008, 18:38) *
Ich hätte auch gerne ein Beispiel


Nun denn:

Ich habe mal meinen bisherigen Stand, ein Stylesheet in ein Template einzubinden in ein Modul gepackt: TemplateCSS
Ist aber erst mal nur ne beta, da ich noch nicht fertig damit bin (es wird noch nicht ausgiebig auf Fehler kontrolliert)

In diesem Modul binde ich auf diesem Wege ein Stylesheet ein:

CODE
if(file_exists($cfg_cms['cms_path']."plugins/headerelement/class.headerelement.php")){
// include all files
require_once($cfg_cms['cms_path']."plugins/headerelement/class.headerelement.php");
// create required objects
$he =& SF_Headerelement::getInstance();
$he->addHeaderItem("<link rel=\"stylesheet\" href=\"<pfad_zum_stylesheet>\" type=\"text/css\" />", <beliebiger_sortindex>);
}


--------------------
Go to the top of the page
 
+Quote Post
smail
Beitrag Thu. 13. March 2008, 19:34
Beitrag #15


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 587
Mitglied seit: 01.07.2006
Mitglieds-Nr.: 62



ZITAT(pawel @ Wed. 12. March 2008, 10:57) *
Kann man eigentlich abfragen, ob ein bestimmtes plugin installiert ist?


Grundsätzlich wäre das schon möglich, allerdings hängt das letztlich davon ab, wie sauber sich das Plugin in SF anmeldet. Du könntest z.B. in der DB nach einem entsprechenden Versionseintrag suchen. Wie gesagt, das setzt aber vorraus, dass das Plugin diesen beim Installieren setzt:

Hier mal beispielhaft ein DB-Eintrag für AddHeader Element (s.o.) (wobei ich keine Ahnung habe, ob duffy den so setzt)
QUELLTEXT
INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'headerelement', 'version', NULL,
  NULL, NULL, '01.00.00', 0, NULL, NULL, 'txt', NULL, NULL, 0);


wobei die Struktur der Tabelle cms-Values folgendermaßen aussieht:

QUELLTEXT
idvalues: '' (auto increment)
idclient: 0 (Plugin wird für alle Projekte in SF installiert)
idlang: 0
group_name: pluginname
key1: version
key2: NULL
key3: NULL
key4: NULL
value: '01.00.00'
usw...


Welche Einträge jedoch wo gemacht werden, und welche Werte für die keys als Standard gelten, das ist nicht so recht festgeschrieben und eher eine lose Konvention, wenn überhaupt. Würden alle Plugins diese (oder eine andere) Konvention einhalten, könnte man so auch auf installierte Plugins abfragen.

Gruß
Jan


--------------------
Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
Go to the top of the page
 
+Quote Post
duffy
Beitrag Thu. 13. March 2008, 20:37
Beitrag #16


Advanced Member
****

Gruppe: AdvancedMembers
Beiträge: 112
Mitglied seit: 31.08.2006
Wohnort: Berlin
Mitglieds-Nr.: 219



ZITAT(smail @ Thu. 13. March 2008, 19:34) *
(wobei ich keine Ahnung habe, ob duffy den so setzt)


Tut er :-)


--------------------
Go to the top of the page
 
+Quote Post
smail
Beitrag Thu. 13. March 2008, 21:28
Beitrag #17


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 587
Mitglied seit: 01.07.2006
Mitglieds-Nr.: 62



laugh.gif cool


--------------------
Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
Go to the top of the page
 
+Quote Post
duffy
Beitrag Thu. 13. March 2008, 23:09
Beitrag #18


Advanced Member
****

Gruppe: AdvancedMembers
Beiträge: 112
Mitglied seit: 31.08.2006
Wohnort: Berlin
Mitglieds-Nr.: 219



ZITAT(pawel @ Mon. 10. March 2008, 21:40) *
Wird eigentlich überprüft, ob z.B. eine JS schon von einem Modul in den Header geschrieben wurde (also wenn mehrere Module die Funktionalität nutzen)?


Jetzt schon: Neue Version 1.1.0

Gruß,

Oliver


--------------------
Go to the top of the page
 
+Quote Post
pawel
Beitrag Sat. 29. March 2008, 12:34
Beitrag #19


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 442
Mitglied seit: 02.07.2006
Wohnort: Halle
Mitglieds-Nr.: 71



Einen Wunsch habe ich noch ;-)
Der Redakteur sollte auswählern können, ob er die Dateien wirklich einbindet.
Das Modul müßte also die Möglichkeit haben, die angebotenen Dateien per checkbox auszuwählen.(dazu müßte der Wert natürlich irgendwo gespeichert werden).

Sinn der Sache ist es, nicht mehrere Dateien (jquery oder prototype) mehrfach einzubinden, wenn sie bpws. schon im Layout stehen.


--------------------
Go to the top of the page
 
+Quote Post
smail
Beitrag Sat. 29. March 2008, 18:29
Beitrag #20


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 587
Mitglied seit: 01.07.2006
Mitglieds-Nr.: 62



ZITAT(pawel @ Sat. 29. March 2008, 12:34) *
Einen Wunsch habe ich noch ;-)
Der Redakteur sollte auswählern können, ob er die Dateien wirklich einbindet.
Das Modul müßte also die Möglichkeit haben, die angebotenen Dateien per checkbox auszuwählen.(dazu müßte der Wert natürlich irgendwo gespeichert werden).

Sinn der Sache ist es, nicht mehrere Dateien (jquery oder prototype) mehrfach einzubinden, wenn sie bpws. schon im Layout stehen.

Nun ja, ich weiß nicht, ob das die Aufgabe des Plugins ist, denn:
Dieses Plugin stellt ja grundsätzlich nur die Möglichkeit zur Verfügung, dynamisch Dateien in den Header einzufügen.
Jetzt gibt es zwei Stellen, an denen - theoretisch - Dateien hinzukommen können:
  1. andere Plugins wie z.B. eine Bildergalerie. Hier würden neben jQuery aber weitere Dateien eingebunden werden müssen (weitere js, css, etc.). Sinnvoll wäre es dann eher in diesem Plugin eine Option einzubauen, ob der Core (und weitere benötigte Dateien) eingebunden werden sollen oder nicht.
  2. dieses Plugin selbst, aber aus meiner Sicht macht das vom Konzept her eher keinen Sinn. Und nur in diesem Fall müsste die von dir gewünschte Funktion realisiert werden.

Grundsätzlich gebe ich Dir aber Recht, dass dies eine interessante Frage ist. Die Lösung dafür ist aber bei weitem nicht so trivial, wie man das vielleicht zunächst denkt. Ich habe mir dazu nämlich schon mal im Rahmen des Beispiels "jQuery-Plugin" dazu Gedanken gemacht, aber keine einfache Lösung gefunden.

Viele Grüße
Jan




--------------------
Zufall ist das Pseudonym, das Gott sich zugelegt hat, wenn er unerkannt bleiben möchte.
Go to the top of the page
 
+Quote Post

2 Seiten V   1 2 >
Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 4.11.24 - 15:32

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.