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

#1 27. Dezember 2010 12:52

piratos
Gast

[GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Ich kann die Verwendung von UDT's eigentlich nicht empfehlen.
Es handelt sich in Wirklichkeit um Smarty-Plugins denen lediglich der Funktionskopf fehlt und die in der DB gehalten werden.
Man kann UDT's zum Test so schreiben, dann sollte man sie aber extrahieren, einen Smarty Funktionskopf verpassen und in den Plugins-Ordner von Smarty legen nicht aber in den normalen Plugins- Ordner.

Es gibt dafür auch Gründe:
UDT's werden in der DB gehalten  (Tabelle cms_userplugins) und sie werden beim Start bei Smarty registriert - beide Dinge kosten relativ viel Zeit und dabei oftmals mehr als ein Plugin zur Ausführung selbst benötigt und auch zusätzlich RAM.

Die Ablage in den Pluginsordner hat den Nachteil das auch diese Plugins unnötig registriert werden, legt man sie in den Smarty Plugins Ordner dann werden sie einfach bei Verwendung eingebunden, kosten also bis dahin rein nichts.

Das sollte man wissen, wenn man UDT's einsetzt - man verpulvert unnötig Ressourcen.

#2 27. Dezember 2010 14:29

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

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Piratos,

mach doch mal ein Beispielgerüst für ein solches Smarty Plugin

Mit UDTs bin ich klar gekommen, aber was ein Funktionskopf ist bei Smarty, weiß ich nicht ...

Ich fürchte aber wenn das als Smarty Plugin eingerichtet ist, finden es meine Anwender  nicht, die ich mühsam dahin "trimme" daß sie unter
"UserDefinedTags" nachsehen sollen, wenn sie nicht mehr wissen, wie die heissen

wo findet man denn die Plugins in der Backend-Oberfläche?

Gruss, Connie

Offline

#3 27. Dezember 2010 14:42

dc2
kennt CMS/ms
Registriert: 26. November 2010
Beiträge: 140
Webseite

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

function smarty_function_PLUGINNAME($params, &$smarty) {
    ...
    return $result;// Hier muss die gewünschte Ausgabe zurückgegeben werden
}

Offline

#4 27. Dezember 2010 17:21

piratos
Gast

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

wo findet man denn die Plugins in der Backend-Oberfläche?

Garnicht wie bei den 48 von Smarty mitgelieferten Plugins auch.

#5 27. Dezember 2010 17:55

Tobias_Gl
probiert CMS/ms aus
Ort: Siegen
Registriert: 09. November 2010
Beiträge: 69
Webseite

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Ich will nur anmerken, dass das alles hier schon lanfe OT ist.
Es geht hier um einen fertigen UDT und nicht um das für und wieder von Plugins vs. UDT.

Offline

#6 27. Dezember 2010 18:00

piratos
Gast

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Jein - es geht darum ob man es als UDT oder als direktes Smarty Plugin laufen lassen sollte.
Wenn ich mir mal so vorstelle das man diverse Links mit z.B. einem Tooltip versieht (oder etwas anderes) können sich selbst kleine Zeitdifferenzen enorm summieren.

Das dann weitere Fragen aufkommen ist normal.

#7 27. Dezember 2010 18:39

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

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

piratos schrieb:

wo findet man denn die Plugins in der Backend-Oberfläche?

Garnicht wie bei den 48 von Smarty mitgelieferten Plugins auch.

Jain.
Alles was im Verzeichnis /plugins ist, kann man unter Erweiterungen->Tags finden.
Wenn man die Plugins auch noch um eine Hilfe-Funktion erweitert, dann kann man dort auch einen Hilfetext anzeigen lassen, der die Funktionsweise des Plugins erklärt.
Einfach mal einen Blick in irgendeine Datei im Plugins-Verzeichnis werfen.


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

#8 27. Dezember 2010 19:25

piratos
Gast

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Um die Verwirrung komplett zu machen - "richtige" Smarty Plugins gehören in lib/smarty/plugins.
cms_plugins kann man , wenn die Funktionsköpfe angepasst sind  z.B. von function smarty_cms_function_title($params, &$smarty) auf function smarty_function_title($params, &$smarty) auch in den lib/smarty/plugins - Ordner verschieben, spart dadurch Zeit weil die nicht registriert werden müssen, erhält dann aber auch keine Auflistung unter Tags.

Es ist kein nenneswerter Vorteil ein UDT in den plugins Ordener zu verschieben lib/smarty/plugins wäre das Ziel.

#9 28. Dezember 2010 07:38

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

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Tobias_Gl schrieb:

Ich will nur anmerken, dass das alles hier schon lanfe OT ist.

Hast latürnich recht - hab das Thema daher geteilt.

Offline

#10 28. Dezember 2010 07:42

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

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Connie schrieb:

mach doch mal ein Beispielgerüst für ein solches Smarty Plugin

Upps Connie - wofür schreib ich denn Supportseiten  cool ?

Ist schon seit 'ner Ewigkeit online

http://www.cmsmadesimple.de/cmsms-suppo … ndeln.html

Offline

#11 28. Dezember 2010 10:54

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

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

ja, zieh mich  nur an den Ohren!  cool

Ich schau mirs an, lerne und gehe in mich!

Offline

#12 28. Dezember 2010 11:59

piratos
Gast

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Es gibt übrigens eine Methode wie andere es bereits gelöst haben:

UDT ja aber
beim Speichern eines UDT erfolgt auch gleichzeitig Ablage als Smartyplugin in ein beschreibares Userverzeichnis als vollwertiges Plugin.
Dieses Userverzeichnis wird Smarty hinzugefügt ,d.h. Smarty sucht dann auch dort nach Plugins und ruft es von dort aus auf ohne das eine Registrierung erfolgt ist und erfolgen muss.

#13 29. Dezember 2010 12:59

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

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

piratos schrieb:

UDT's werden in der DB gehalten  (Tabelle cms_userplugins) und sie werden beim Start bei Smarty registriert - beide Dinge kosten relativ viel Zeit und dabei oftmals mehr als ein Plugin zur Ausführung selbst benötigt und auch zusätzlich RAM.

Ich hatte ja heimlich gehofft, dass das /cache-Verzeichnis im /plugin-Verzeichnis zum Auslagern der UDTs gedacht ist und irgendwann aktiviert wird - hab ansonsten bislang keine Verwendung dafür feststellen können.

Offline

#14 29. Dezember 2010 13:59

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

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Ich nutze das Cache-Verzeichnis bei GBFilePicker für die Thumbnails. Ich mag die nicht immer über alle Verzeichnisse verstreut haben. Daher lege ich die lieber dort ab, wo es keinen weiter stört und wo man per Knopfdruck alle wieder los wird.

Die UDTs im Cache-Verzeichnis zu speichern halte ich aber nicht unbedingt für die optimalste Lösung, da das Cache-Verzeichnis mit gelöscht wird, wenn der Zwischenspeicher geleert wird. D.h. man müsste dann alle UDTs nocheinmal speichern. Sonst hat man Probleme, sobald der Cache geleert wurde.

Man könnte natürlich auch vom Frontend her prüfen, ob das Plugin existiert, wenn nicht, dann UDT aus der DB holen und erneut automatisch zwischenspeichern. Ich weiß jetzt aber ganz spontan nicht, wieviel Arbeit das wäre bzw. wo man da ansetzen und was umschreiben müsste.

Vielleicht ließe sich das auch mit einem Plugin lösen.
Z.B.

{udt name="mein_udt"}

und dieses Plugin macht dann nichts weiter, als nach dem angegebenen UDT zu suchen. Und wenn er nicht vorhanden ist, dann wird er aus der DB geholt und als php Datei gespeichert. Dann hätte man das statische Auslagern von UDTs sowohl über das Backend beim Erstellen von UDTs als auch über das Frontend beim Aufrufen.
So ein Plugin zu schreiben dürfte nicht weiter schwer sein.
Die Frage ist nur, ob es unbedingt nötig ist.
Man könnte ebensogut die UDTs auch einfach in einem anderen Verzeichnis speichern, das beim Leeren des Zwischenspeichers nicht gelöscht wird.

Die Idee, UDTs sowohl in der DB als auch als Datei abzulegen, gefällt mir.


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 29. Dezember 2010 14:16

piratos
Gast

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

Unter PCMS werden die UDT's beim Speichern in die DB aufbereitet in lib/smarty/plugins/user geschrieben.
Der Pluginspfad von Smarty wurde erweitert, d.h. Smarty selbst schaut da nach ob ein gewünschtes Plugin dort vorliegt.
Das ist sehr einfach zu realisieren bedingt aber Änderungen bei add/edituserplugin.php wie auch beim löschen eines Tags.

#16 29. Dezember 2010 20:46

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

Re: [GELÖST] [GELÖST] Mögliche Probleme bei der Verwendung von UDT's

NaN schrieb:

Ich nutze das Cache-Verzeichnis bei GBFilePicker für die Thumbnails. Ich mag die nicht immer über alle Verzeichnisse verstreut haben. Daher lege ich die lieber dort ab, wo es keinen weiter stört und wo man per Knopfdruck alle wieder los wird.

Upps, wie ich gerade entdeckt habe, gibt es das Verzeichnis /plugin/cache (welches ich meinte) gar nicht mehr angel ...

Offline