Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 28. Februar 2011 10:18

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Tipp: Strings der Modulausgabe überschreiben

Ich arbeite nun schon einige Jahre mit CMSms, aber heute bin ich zufällig auf eine Anleitung gestoßen, in der beschrieben wird, wie man die Admin-Ausgabe aller Module (z.B. Sprache oder Templates) überschreiben kann, ohne die Kerndateien zu bearbeiten. Würde man das tun, würden die Änderungen nämlich nach dem nächsten Modulupgrade überschrieben bzw. zürückgesetzt werden.

Beispiel:
Angenommen man verwendet das Modul CGCalendar. Der standardmäßige deutsche Name heißt "Calguys Kalender".
Diese Übersetzung findet man in modules/CGCalendar/lang/ext/de_DE.php:

$lang['cal_calendar'] = 'Calguys Kalender';

Dieser Name ist für Anwender aber alles andere als intuitiv (nach meiner Erfahrung).
Drum ist es gut, diesen zu übersetzen. Manche Module bieten diese Möglichkeit von Hause aus in ihren Einstellungen. Dieses Modul jedoch nicht. Um nun aber den Namen zu überschreiben, tut man folgendes:

  1. Ordner im root von CMSms anlegen: module_custom

  2. Diesen Ordner öffnen.

  3. Ordner mit dem identischen Modulnamen anlegen: CGCalendar

  4. Diesen Ordner öffnen.

  5. Sprachordner anlegen: lang

  6. Diesen Ordner öffnen.

  7. Sprachdatei anlegen: de_DE.php

  8. Diese Datei öffnen

  9. folgenden Code einfügen:

  10. <?php
    $lang['cal_calendar'] = 'Events';
    ?>
  11. Abspeichern, und ab sofort erscheint das Modul im Backend als "Events", oder was auch immer ihr wollt.

Den richtigen Spracheintrag findet ihr immer, wenn ihr direkt ins Modul geht und euch die Sprachdatei anschaut.
Das lässt sich auch für die Template-Ausgabe im Admin anwenden. Nach dem selben Prinzip! Hier wird jedoch die ganze Datei in den module_custom Ordner dupliziert und der entsprechende Code hinzugefügt oder auskommentiert. Ab sofort wird dann diese duplizierte Datei benutzt. Beispiel: http://www.cmsmadesimple.de/forum/viewtopic.php?id=629

Ein weiteres schönes Beispiel bei dem News-Modul: http://www.i-do-this.com/blog/41/Making … nt=Twitter

Beitrag geändert von nicmare (05. April 2011 08:44)

Offline

#2 28. Februar 2011 10:29

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

Coole Sache - danke für dein Posting, war mir bislang auch unbekannt.

Habs mal nach Übersetzungen verschoben ...

Offline

#3 28. Februar 2011 10:46

Connie
Server-Pate
Ort: Gribow
Registriert: 12. Dezember 2010
Beiträge: 216
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

ist es nicht unglaublich, dass solche Anleitungen auf der privaten und auch recht hässlichen Seite des "Chef-Entwicklers" stehen und nicht in offiziellen Dokus?

Ich hab gerade bei den Modulen, deren Titel ich meinen Kunden und Anwendern nicht vermitteln konnte, die mich fragten wer denn oder was denn dieser Calguy sei in ihrem Blog, immer nach jedem Update die Dateien selbst bearbeitet... und wehe man vergisst das mal...

ich merk mir das, danke für diesen Hinweis!

Offline

#4 28. Februar 2011 11:40

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.930
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

Hatte das auch schon mal gelesen, da ich's nicht gerade brauchte, war mir das nicht mehr präsent. Danke für den Beitrag. Wird gleich Sticky gemacht.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#5 28. Februar 2011 12:06

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

ja, das war für mich nen großer Nachteil an CMSms. Dass man die Modulausgabe nicht überschreiben kann. Erstaunlich, dass es diese Lösung schon seit 2008 gibt. Erschreckend…

Aber meint ihr, dass das bei "Übersetzungen" richtig aufgehoben ist? Ich meine, das mit dem alternativen Modulnamen war jetzt nur ein Beispiel. Man kann die Templates ja auch bearbeiten, so dass überflüssige Felder nicht mehr angezeigt werden. Hier ist auch ein wenig Kreativität gefragt.

Offline

#6 28. Februar 2011 12:08

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.436

Re: Tipp: Strings der Modulausgabe überschreiben

Bastelstube wäre passender denke ich


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#7 28. Februar 2011 12:45

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

Hmm, Bastelstube war eigentlich primär für Hacks & Co gedacht, was es ja nun eigentlich gerade nicht ist, sondern nur eine extrem systemkonforme Nutzung ops und es geht ja um Übersetzungen.

Lass mich aber gern überzeugen ...

Offline

#8 28. Februar 2011 19:27

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.930
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

Eigentlich ist es sowohl als auch gut aufgehoben. Da mir der Übersetzungsteil wichtiger ist, würde ich es eher in diesem Forum lassen.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#9 29. März 2011 11:25

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

nicmare schrieb:

Ab sofort wird dann diese duplizierte Datei benutzt.

Damit ist die eigene sprachliche Anpassung zwar vor einem Update sicher, aber trotzdem empfiehlt es sich, bei jedem Update die Sprachdateien mit den Originalen zu vergleichen und ggf. anzupassen, da die Erweiterungen der Sprachdateien bei fortlaufender Modulentwicklung eher die Regel sind.

Funktioniert übrigens auch mit den Templates wink

http://www.cmsmadesimple.de/forum/viewtopic.php?id=629

Offline

#10 29. März 2011 11:27

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

nicmare schrieb:

Das lässt sich auch für die Templateausgabe im Admin anwenden. Nach dem selben Prinzip! Hier wird jedoch die ganze Datei in den module_custom Ordner dupliziert und der entsprechende Code hinzugefügt oder auskommentiert. Ab sofort wird dann diese duplizierte Datei benutzt.

aber gut einen Link zu dem Thema zu haben smile

Offline

#11 29. März 2011 11:34

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

Upps, muss mich mal bei meinem Optiker beschweren ... irgendwas stimmt mit meiner neuen Brille nicht  cool .

Da das Posting aus bekannten Gründen im Übersetzungsboard gelandet ist, hab ich das Thema aus gegebenem Anlaß und für eine bessere Übersichtlichkeit noch einmal im Modul-Forum repliziert.

Der Oberhammer wäre natürlich, wenn man auch die Actions damit überschreiben könnte ...

Offline

#12 29. März 2011 11:35

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

was für actions?

Offline

#13 29. März 2011 11:46

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

Na eben die Systemdateien der Module wie zum Beispiel action.addarticle.php beim News-Modul (egal, ob fürs Frontend oder fürs Backend) ... damit könnte man sich dann auch das Patchen von Moduldateien ersparen.

Schließlich weisst sich nicht jedes Modul einer Smarty-Variablen zu wink.

NaN schrieb:

Da CGCalendar sich selbst einer Smartyvariablen zuweist, haben wir auch hier leichtes Spiel und können über die Smartyvariable auf das Modul API zugreifen und ein WYSIWYG Textfeld erstellen. Dazu musst Du nur die oben markierte Stelle des Summaryfeldes durch folgendes ersetzen:

{$CGCalendar->CreateTextArea(true,$actionid, $event.event_summary, 'event_summary', 'content', $actionid)}

Offline

#14 29. März 2011 17:04

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.436

Re: Tipp: Strings der Modulausgabe überschreiben

cyberman schrieb:

Schließlich weisst sich nicht jedes Modul einer Smarty-Variablen zu wink

Dazu kann man aber doch dieses winzig kleine Plugin verwenden: http://dl.dropbox.com/u/2876578/CMSms/P … module.php

Einsatz:
{get_module module="Modulname"}
{$Modulename->ApiFunction()}

wink

(Ich glaube bei CGSimpleSmarty gibt es ähnliche Funktionen, um im Template auf Modulfunktionen zuzugreifen)


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#15 30. März 2011 07:40

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Tipp: Strings der Modulausgabe überschreiben

NaN schrieb:
cyberman schrieb:

Schließlich weisst sich nicht jedes Modul einer Smarty-Variablen zu wink

Dazu kann man aber doch dieses winzig kleine Plugin verwenden: http://dl.dropbox.com/u/2876578/CMSms/P … module.php

Jetzt hast du mich aber auf die Rolle geschoben ops  ... klang für mich hier

NaN schrieb:

Ich wünschte alle Module wären so leicht zu handhaben...

irgend wie anders wink .

NaN schrieb:

Einsatz:
{get_module module="Modulname"}
{$Modulename->ApiFunction()}

Ich glaub, ich muss mich doch erst mal etwas forciert um den eigenen Download-Bereich kümmern, um solche Sachen anzubieten ...

NaN schrieb:

(Ich glaube bei CGSimpleSmarty gibt es ähnliche Funktionen, um im Template auf Modulfunktionen zuzugreifen)

Hab ich auf die Schnelle nix finden können, nur {module_action_link}

Ein Smarty-Plugin, mit dem ein Link auf eine Modul-Aktion gesetzt werden kann.

Offline

#16 30. März 2011 10:32

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.436

Re: Tipp: Strings der Modulausgabe überschreiben

Hab ich geirrt.
War nur {cgsimple->module_installed()} bzw. {$cgsimple->module_version()}
Das Modul selbst kann man da nicht holen.
Aber im Prinzip kann man auch über jedes Modul, das bereits Smarty zugewiesen wurde, ein weiteres Modul ins Template holen:

{assign var="Module_2" value=$Module_1->GetModuleInstance('Module_2')}

(Hat man nur eine Kopie und keine Referenz)


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#17 16. April 2011 21:18

Foaly*
Gast

Re: Tipp: Strings der Modulausgabe überschreiben

cyberman schrieb:

Der Oberhammer wäre natürlich, wenn man auch die Actions damit überschreiben könnte ...

So ist es!