Hilfe - Suche - Mitglieder - Kalender
Vollansicht: ChangeHeader 01.00.00
Forum Sefrengo.org > Downloads > Module
duffy
Modulname:
---------------------------------------------------------------------------
ChangeHeader

Version:
---------------------------------------------------------------------------
01.00.00

Status:
---------------------------------------------------------------------------
stable - das Modul ist für den produktiven Einsatz geeignet und getsetet


Bechreibung:
---------------------------------------------------------------------------
Elemente des <head> lassen sich im Template/Ordner/Seite ändern und hinzufügen


Features:
---------------------------------------------------------------------------
- einbinden von internen css
- einbinden von externen css
- einbinden von internen js
- einbinden von externen js
- ändern des <title>
- sonstige dinge in den head schreiben (z.B. metatags)


Autor(en):
---------------------------------------------------------------------------
Oliver Albrecht - dduffy


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


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


Benötigtes Plugin:
---------------------------------------------------------------------------
Add Headerelement v01.02.00


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


Update/ Migration:
---------------------------------------------------------------------------
-


Dokumentation:
---------------------------------------------------------------------------
"Keine vorhanden"

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

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




Klicken um den Anhang anzusehen
andi
super cool. was ich mir noch wünschen würde:

für das einbinden einen css-datei ein textfeld, in welchem man den medientypen angeben kann (media="screen, projection" usw.).
gerade heutzutage sehr wichtig finde ich.


ausserdem gibt mir das modul folgenden output:
QUELLTEXT
<!--START 99//--><!--END 99//-->
<link rel="stylesheet" href="cms/css/bildschirm.css" type="text/css" />
<link rel="stylesheet" href="cms/css/test.css" type="text/css" />


hier solte das <!--END 99//--> wohl erst nach dem einbinden der css-files stehen.

ansonsten: tolle arbeit, danke.


gruss andi
duffy
WOW bist Du schnell.

ZITAT(andi @ Fri. 6. June 2008, 11:05) *
für das einbinden einen css-datei ein textfeld, in welchem man den medientypen angeben kann (media="screen, projection" usw.).
gerade heutzutage sehr wichtig finde ich.


Ist es. Geht vorerst nur über die Möglichkeit manuell das css einzubinden. In der Modulkonfiguration über den Reiter "Sonstige"

ZITAT(andi @ Fri. 6. June 2008, 11:05) *
ausserdem gibt mir das modul folgenden output:
QUELLTEXT
<!--START 99//--><!--END 99//-->
<link rel="stylesheet" href="cms/css/bildschirm.css" type="text/css" />
<link rel="stylesheet" href="cms/css/test.css" type="text/css" />


hier solte das <!--END 99//--> wohl erst nach dem einbinden der css-files stehen.


Sollte ja, aber ist in meinen Augen nicht möglich. Die css Dateien werden nicht an der Stelle des Moduls sondern direkt in den head gesetzt. Das bedeutet Du könntest Das Modul auch hinter </body> packen und was würde immer noch gehen. Daher sehe ich keine Möglichkeit die Kommentare woanders hin zu packen.
bkm
ZITAT(andi @ Fri. 6. June 2008, 11:05) *
für das einbinden einen css-datei ein textfeld, in welchem man den medientypen angeben kann (media="screen, projection" usw.).

ich hatte das ja mit dem anderen header plugin am laufen (obs mit dem neuen geht keine ahnung, noch nicht angeschaut)
vll. kann es ja duffy verwenden (oder auch nicht wink.gif )

QUELLTEXT
/**
  * Die folgenden Medientypen sind in CSS 2.1 festgelegt:
  * Für alle Ausgabemedien.
  * Für Sprachsoftware. Seit CSS 2.1 gibt es für diesen Medientyp das Schlüsselwort speech.
  * Für Ausgabegeräte mit Braille-Zeile (Blindenschrift).
  * Für Braille-Drucker (Drucken in Blindenschrift).
  * Für Handhelds, Palms, Handys
  * Für Druckerausgabe
  * Für Projektoren und Beamer
  * Für Bildschirmausgaben
  * Für Sprachsoftware. Bis CSS 2.0 gab es für diesen Medientyp nur das Schlüsselwort aural.
  * Für Ausgaben auf Geräten mit fester Schriftbreite, wie Terminals oder auch Textbrowser.
  * Für Ausgaben auf Fernsehgeräten.
*/
if(!function_exists(css_media)){
    function css_media($type_name) {
        $typename= explode(",",$type_name);
        $c = count($typename);
        if ($c > 0) {
            for($i=0; $i< $c; $i++) {
        switch((int)$typename[$i]) {
         case '1':
          $out .= 'all';
          break;
         case '2':
          $out .= 'aural';
          break;
         case '3':
          $out .= 'braille';
          break;
         case '4':
          $out .= 'embossed';
          break;
         case '5':
          $out .= 'handheld';
          break;
         case '6':
          $out .= 'print';
          break;
           case '7':
          $out .= 'projection';
          break;
           case '8':
          $out .= 'screen';
          break;
           case '9':
          $out .= 'speech';
          break;
           case '10':
          $out .= 'tty';
          break;
           case '11':
          $out .= 'tv';
          break;
           case '12':
          $out .= 'print';
          break;
        default:
          $out .='';
        break;
        }
                if ($i<$c-1) $out .=',';
            }
        }
        
            if (empty($out)) {
                return $outa;
            }else{
                return $outa='media="'.$out.'"';
            }
    }
}
andi
ZITAT(duffy @ Fri. 6. June 2008, 11:14) *
Ist es. Geht vorerst nur über die Möglichkeit manuell das css einzubinden. In der Modulkonfiguration über den Reiter "Sonstige"

ja klar, aber das macht keinen sinn das css über «sonstiges» und nicht über «css» einzubinden :-)

ZITAT(duffy @ Fri. 6. June 2008, 11:14) *
Sollte ja, aber ist in meinen Augen nicht möglich.

ist auch nur ein kleiner schönheitsfehler, wenn überhaupt.

@bkm: dann warten wir ab, obs duffy verwenden kann (ist in deinem beispiel möglich, mehrere medientypen anzugeben?) tongue.gif


edit: nur so als idee: wäre es irgendwie möglich, mit dem plugin css-/javascript-dateien nur für bestimmte seiten- oder ordner-ids zu vergeben? (aktuell muss man spezifische änderungen in den seiten-, ordner- oder templateeinstellungen vornehmen)
so könnte man über einmaliges platzieren im template alles zentral steuern.... vielleicht auch nur anwender-wahn
:-)


gruss andi
bkm
ZITAT(andi @ Fri. 6. June 2008, 11:23) *
@bkm: dann warten wir ab, obs duffy verwenden kann (ist in deinem beispiel möglich, mehrere medientypen anzugeben?) tongue.gif

wenn de sowas meinst
QUELLTEXT
<link rel="stylesheet" href="cms/css/xxx.css" type="text/css" media="screen, projection" />

ja,
QUELLTEXT
addHeaderItemCss($value1,$type_name,$sortIndex)

der aufruf ist "komma-passierend " <<8,7>>

duffy
ZITAT(andi @ Fri. 6. June 2008, 11:23) *
edit: nur so als idee: wäre es irgendwie möglich, mit dem plugin css-/javascript-dateien nur für bestimmte seiten- oder ordner-ids zu vergeben?
.... vielleicht auch nur anwender-wahn
:-)


Na Wünsche kann man ja äußern ... :-)

Die Sache mit den Mediadaten schau ich mir an. Ist mir entgangen, dass dies an anderer Stelle schon umgesetzt war.
fo.x
Suuuupersache !!!!

Endlich hat der Layoutwahn n'ende !! smile.gif
pawel
Wenn ich das richtig sehe, brauche ich also einen container im body zur Aufnahme des Moduls. Damit ist dann pro Seite editierbar, welche Skripte, CSS usw. geladen werden sollen. Das erleichtert die Arbeit, "eigentlich" bilden die Dateien aber eine bestimmte Zugehörigkeit zu Modulen. Ich hätte die Funktionalität, der Dateiauswahl daher generell als Möglichkeit für eigene Module zur Auswahl. Ist das möglich?

Bpws.
Modul Lightbox benötigt:
prototype.js
scriptacolus.js
lightbox.js
lightbox.css

Es besteht die Auswahlmöglichkeit bei der Konfiguration analog zu Changeheader, vielleicht besteht ja eine Möglichkeit "intelligent" vorzuselektieren. Der Redakteur/ Administrator deselektiert dann, wenn eine Datei schon im layout eingebunden ist (z.B. Prototype)
smail
Hallo Pawel.

in der ursprünglichen Idee von mir (Plugin jQuery) war genau das vorgesehen - also dass Module die benötigten Dateien laden. Ich habe mir mangels Zeit die Weiterentwicklung von duffy nicht angesehen, denke aber dass das aber immer noch möglich ist.

In der Dokumentation zu dem Plugin von duffy steht auch, wie man das bei Modulen realisiert. Die Module muss man aber natürlich selbst programmieren / vorhandene abwandeln.



Ich gebe zu, mittlerweile habe ich auch etwas den Überblick über die vielen AddHeader, ChangeHeader, ExtendedHeader und wie sie nicht alle heißen verloren. Da sollte man dringend mal etwas aufräumen und nicht wieder zig Versionen mit nahezu identischen Funktionalität entwickeln.


Gruß
Jan
pawel
Ja man kann in den Modulen (auch in Fremden) relativ einfach dem Header etwas hinzufügen. Mein Wunsch bezog sich darauf, dies genau so komfortabel, wie in dem Modul changeheader gestalten zu können, also die Funktion dieses Moduls irgendwie zu kapseln.
duffy
ZITAT(pawel @ Tue. 10. June 2008, 22:27) *
Mein Wunsch bezog sich darauf, dies genau so komfortabel, wie in dem Modul changeheader gestalten zu können, also die Funktion dieses Moduls irgendwie zu kapseln.


Ja, den Wunsch gab es schon einmal von anderer Stelle. ich denke für die Zukunft ist das auch Umsetzbar, wobei die Zukunft sicherlich nicht die nächsten zwei/drei Wochen sein werden. Es sei denn jemand anderes macht es. Umzusetzen wäre dann auch eine Überrüfung auf den Doctype bzw. eine Entsprechende Konfigurationsmöglichkeit. Es soll ja schließlich valides html raus kommen. Das ist bis jetzt auch noch Modulsache.
duffy
Zwar noch keine Änderung am Modul, aber das Plugin hab ich erst mal erweitert und um Events erweitert, mit denen der head geändert werden kann. Außerdem wird nun der doctype beim Einfügen von Elementen mit beachtet:

Add Headerelement v01.05.00

Dies Modul werde ich dann demnächst mal anpassen und sicherlich auch noch die ein oder andere Idee mit aufgreifen.
Chregu
Hey Duffy

Habe gerade das Plugin in einem Projekt zum erstenmal eingesetzt. Ist wirklich toll das Ding. Habe im Modul aber noch einen kleinen Schönheitsfehler entdeckt. Einfache Anführungszeichen (') werden im Output mit einem Slash davor versehen (addslashes). Bei der Ausgabe sollte daher beim abfüllen der "MISC"-Variable die stripslashes-Funktion verwendet werden...

QUELLTEXT
$mod['misc'] = stripslashes($mvars[300]);


Gruss
Chris


duffy
ZITAT(Chregu @ Mon. 16. June 2008, 16:04) *
QUELLTEXT
$mod['misc'] = stripslashes($mvars[300]);

Gruss
Chris


Hi Chris,

danke für den Hinweis. ich will das Modul eh überarbeiten, dann werde ich das gleich mit beachten.

Gruß,

Oliver
gunwalt
Bei der Frontendbenutzung tritt folgender Fehler im errorlog auf. Ich würde ja vermuten, das irgendwo etwas nicht richtig verknüpft ist.

QUELLTEXT
MySql-Error:2008-12-08 (Mon) 16:25:51: error 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 7) - next_record called with no query pending.
MySql-Error:2008-12-08 (Mon) 16:25:54: error 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 7) - Invalid SQL: SELECT
                C.filetype, D.dirname, B.filename
            FROM rik_upl B
                LEFT JOIN rik_filetype C USING(idfiletype)
                LEFT JOIN rik_directory D on B.iddirectory=D.iddirectory
            WHERE
                idupl IN ()
MySql-Error:2008-12-08 (Mon) 16:25:54: error 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 7) - next_record called with no query pending.


SF 1.42
gunwalt
Ich bekomme die gleiche Fehlermeldung in einer anderen Installation unter SF 1.40. Durch systematisches Ausklammern von Modulen bin ich drauf gekommen, das diese Fehlermeldung im errorlog, die nur im root-error (/logs) nicht unter /backend/logs/ auftritt, etwas mit dem Add HeaderPlugin oder Modul zu tunhabe muss. Wird das Modul deaktiviert, kann ich die SEite ohne Eintrag im Errorlog aufrufen.

Modul und Plugin sind auf dem neuesten Stand

Kann das jemand bestätigen?
bkm
ZITAT(gunwalt @ Sat. 20. December 2008, 14:04) *
.......... etwas mit dem Add HeaderPlugin oder Modul zu tunhabe muss.

ZITAT
idupl IN ('" . implode(",",$mod['files_css']) . "')";
gunwalt
Danke für den Hinweis, der Fehler bleibt aber.

Änderungen in Moduloutput Zeile 37
bkm
die abfrage gibt es nochmal für js rolleyes.gif
gunwalt
ZITAT(bkm @ Sat. 20. December 2008, 17:22) *
die abfrage gibt es nochmal für js rolleyes.gif

Okay, aber mit Deiner Änderung bekomme ich eine weisse Seite ohne irgendwelche Ausgabe.
Rein zum Verständis 'files_css' durch 'files_js getauscht. Zeile 65 - Selbst der Quellcode gibt nur eine leere Seite.
bkm
QUELLTEXT
idupl IN ('" . implode(",",$mod['files_css']) . "')";
idupl IN ('" . implode(",",$mod['files_js']) . "')";


bei mir funktioniert es mysql 5.0.67 ohne error-log (der erst auch da war) und mit ausgabe,
kann mich auch nicht erinnern noch was geändert zu haben.
gunwalt
ZITAT(bkm @ Sun. 21. December 2008, 00:57) *
bei mir funktioniert es mysql 5.0.67 ohne error-log (der erst auch da war) und mit ausgabe,
kann mich auch nicht erinnern noch was geändert zu haben.


Dann schicke mir mal das Modul bitte, Zugangsdaten kannst Du auch haben. Gibt es verschiedene Hochkommas? Eigentlich nicht!

Version MySql 5.0.51


gunwalt
Recht hast Du. Ich habe Deinen Code jetzt einfach ins Modul kopiert und auf Ausklammerung verzichtet.

ZITAT
// idupl IN (" . implode(",",$mod['files_css']) . ")";
idupl IN ('" . implode(",",$mod['files_css']) . "')";


@Forumadmins
Frage zur ThreadOrganisation: lässt sich dieser an den Modulthread dranhängen, was ich sinnvoll finden würde?

@bkm
Ich mache gerne eine neues Modulpackage (1.01) auf, wenn Du mir verrätst, wie man den Fehler in Worte fasst.
saschapi
Themen wurden zusammengefügt... smile.gif
gunwalt
@saschapi: Danke

@bkm: Dein Tipp funktioniert nicht, wenn mehrere CSS oder js-Dateien eingebunden werden sollen. In diesem Fall wird immer nur die erste genommen. Die Dateien sind physikalisch vorhanden, sind im Modul auch richtig markiert, also der Einbindung steht nichts im Weg.

Ausgabe soll
QUELLTEXT
<link rel="stylesheet" href="cms/css/base.css" type="text/css" />
<link rel="stylesheet" href="cms/css/zebra.css" type="text/css" />
<script type="text/javascript" src="cms/js/moo1.js"></script>
<script type="text/javascript" src="cms/js/zebra.js"></script>


Ausgabe ist
QUELLTEXT
<link rel="stylesheet" href="cms/css/base.css" type="text/css" />
<script type="text/javascript" src="cms/js/moo1.js"></script>
bkm
jo sad.gif die auswahl kann man, sowie es aussieht auch nicht auf keine zurück stellen, wo der eigentliche fehler herkommt.
wenn ich mal viel lust habe, werde ich mir's mal frisch installieren und den fehler suchen.
bkm
@gunwalt
kurz vorn weg, das modul so komplett ist mir zu komplex da ich diese abfrage lieber pro modul habe.
darum ist mir auch jetzt erst aufgefallen (oder ich habe da keinen plan sad.gif ) das, das optionsfeld auch nicht wieder auf keine auswahl kommt.

daher gibts jetzt bei mir diese option und hoffe dein fehler ist damit auch weg.
wenn du noch interesse hast, kannste ja mal eine pn schreiben und testen. wenn nicht, ist es auch nicht schlimm und mir warten auf duffy wink.gif
duffy
Hallo zusammen,

habs erst jetzt gesehen und komme wohl erst im neuen Jahr dazu mal drauf zu schauen. Bis dahin sammel ich noch Gehirnschmalz um das problem zu verstehen wink.gif

Guten Rutsch an alle.
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.