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

#1 27. Februar 2013 18:41

SlurmMcKenzie
hat von CMS/ms gehört
Registriert: 27. Februar 2013
Beiträge: 4

Nach Update, Probleme mit UDT und Template-editor

Hallo, ich nutze CMSMS schon eine Weile, aber jetzt hab ich plötzlich ein merkwürdiges Problem welches ich nicht lösen kann.

Ich habe bisher CMSMS in der Version 1.10.2 benutzt.
Die Seite läuft auch super.
Jetzt wollte ich allerdings auf 1.11.4 updaten.
Das Update selber geht auch, aber danach stellte ich fest, dass mein Frontend nicht mehr geht.
Ich konnte das Problem soweit eingrenzen, dass ich jetzt weiß, es liegt an den user defined tags und der Einbindung ins Template.

Die UDT's sind unverändert zu Version 1.10.2.
Wenn ich die einbindung der UDT's aus dem Template entferne kann ich das Template speichern und die Seite geht so.

Sobald ich einen der UDT's ins Template einfüge habe ich folgendes Problem:
Ich kann die Änderung im Template nicht speichern.
Der Übernehmen, sowie der Absenden Button gehen nicht.
Ich vermute an dieser Stelle schlägt die automatische Validierung des Codes fehl.
Ich bekomme keine Fehlermeldung was genau da nicht geht.

Die UDT's zu bearbeiten und zu speichern ist kein Problem.

Wenn ich einen neuen, "leeren" UDT erstelle und einbinde geht das.
(mit leer meine ich da ist z.b. nur ein

drin)

Mein Frage ist jetzt, was genau ist an meinen UDT's falsch das sie plötzlich nicht mehr funktionieren ?
Oder ist gar nichts falsch und das Problem liegt in der Validierungsfunktion von CMSMS?

Wenn ich erst den leeren UDT einfüge ins Template und dann speichere, was ja geht, und nachträglich dann den UDT mit
dem alten Code fülle, was auch geht, dann funktioniert die Seite sogar. Aber ich kann nachträglich das Template nicht mehr ändern.

Hier ist eins der fehlerhaften UDT:

[== php ==]
global $gCms;
$db =& $gCms->GetDb();


// get current page
$manager =& $gCms->GetHierarchyManager();
$thisPage = $gCms->variables['page_name'];
$currentNode = & $manager->sureGetNodeByAlias($thisPage);
$cont = &$currentNode->getContent();

$thisMenuText="";

if( defined( $cont->MenuText() ) )
{	  
$thisMenuText = constant($cont->MenuText());
}
else
{
$thisMenuText = $cont->MenuText();
}

echo $thisMenuText;

Ich kann es erstellen und speichen, aber solabd ich den Tag im Template einbinde, kann ich die Änderung am Template nicht mehr speichern.

Offline

#2 27. Februar 2013 19:22

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: Nach Update, Probleme mit UDT und Template-editor

In CMSMS 1.11 hat sich doch so einiges geändert.
Aber wie ich das sehe, ist alles was dein UDT macht, den aktuellen Menütext zu holen.

Das kann mit dem Modul Toolbox einfacher gemacht werden:

Setzt von der aktuellen Seite den Menütext.

In der Modulhilfe im TAB Smarty Tools finden sich noch mehr hilfreiche Snippets für die man früher UDTs gebraucht hat.

Beitrag geändert von Klenkes (27. Februar 2013 19:23)

Offline

#3 27. Februar 2013 20:03

SlurmMcKenzie
hat von CMS/ms gehört
Registriert: 27. Februar 2013
Beiträge: 4

Re: Nach Update, Probleme mit UDT und Template-editor

ok, vielen dank für die antwort.

dieses UDT war ja nur 1 von 4, die anderen sind länger und mit mehr funktionen.

der fehler liegt aber irgendwo in dem teil

global $gCms;
$db =& $gCms->GetDb();


// get current page
$manager =& $gCms->GetHierarchyManager();
$thisPage = $gCms->variables['page_name'];
$currentNode = & $manager->sureGetNodeByAlias($thisPage);
$cont = &$currentNode->getContent(); 

ohne den teil gehts.

Offline

#4 27. Februar 2013 20:32

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

Offline

#5 28. Februar 2013 08:30

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

Re: Nach Update, Probleme mit UDT und Template-editor

Um den aktuellen Menütext zu holen, braucht man weder UDT noch Toolbox:

{if isset($content_obj) && is_object($content_obj)}
   {$content_obj->MenuText()}
{/if}

Die if-Bedingung ist nötig, damit man das Template auch speichern kann. CMSms kompiliert seit 1.11 das Template beim Speichern, um Fehler festzustellen. Dadurch werden auch Plugins ausgeführt. Sind diese fehlerhaft, kann das Template nicht gespeichert werden. Da es im Backend beim Bearbeiten eines Templates kein aktuelles Inhaltsobjekt gibt, muss man eben vorher prüfen, ob {$content_obj} existiert bzw. ein Objekt ist.

Zu den weiteren Plugins können wir erst etwas sagen, wenn wir diese gesehen haben.
Sachen wie z.B. $gCms->variables['blablubb'] gehen nämlich auch nicht mehr einfach so.

Ich habe allerdings die Befürchtung, dass es in Deinem Fall nicht nur an den UDTs liegt.
UDTs werden neuerdings im Backend nicht mehr ausgeführt.
Ich vermute mal, dass da noch Plugins sind, die überarbeitet werden müssen oder, dass Du im Template noch ein paar Sachen stehen hast, die so nicht mehr funktionieren (z.B. {$content_obj->BlaBlubb()} ohne zu prüfen, ob die Variable existiert etc.).


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

#6 28. Februar 2013 09:44

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

Re: Nach Update, Probleme mit UDT und Template-editor

NaN schrieb:

Sachen wie z.B. $gCms->variables['blablubb'] gehen nämlich auch nicht mehr einfach so.

Kannst du das "nicht mehr einfach so" noch etwas genauer beschreiben?

Hab da nämlich auch einiges anzupassen ...

Offline

#7 28. Februar 2013 10:03

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

Re: Nach Update, Probleme mit UDT und Template-editor

Statt:

sollte so funktionieren:

cmsms()->get_variable('blablubb')

ist aber leider gegen die Forge-Rules. Außerdem haben sich auch einige Variablennamen geändert. Die Variable "pageinfo" existiert z.B. nicht mehr. Dafür gibt es das "content_obj". Wenn man Forge-Konform arbeiten will, muss man genau schauen, ob es nicht auch einen offiziellen Weg gibt, um an bestimmte Daten zu kommen. Im Falle des Inhaltsobjektes kann man sich z.B. mit

cms_utils::get_current_content()

das aktuelle Inhaltsobjekt geben lassen (die Funktion macht genau das gleiche wie cmsms()->get_variable('content_obj'), aber dafür muss man nicht auf interne Funktionen zugreifen).


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 28. Februar 2013 16:43

SlurmMcKenzie
hat von CMS/ms gehört
Registriert: 27. Februar 2013
Beiträge: 4

Re: Nach Update, Probleme mit UDT und Template-editor

Hey, danke für eure Hilfe.

ich denke ich weiß jetzt was los ist.
ein paar der UDT's gehen wieder

hab dort das hier benutzt anstelle des alten Codes:

$manager = cmsms()->GetHierarchyManager();
$cont = cms_utils::get_current_content();

if (isset($cont) && is_object($cont))
{ ... }

es sind zwar noch ein paar fehler drin aber ich denke die kann ich auch noch abschalten.
muss eh ein paar sachen umschreiben.

gibts eigentlich irgendwo ne liste in der steht was es alles für befehle gibt ?
wie diese hier

cms_utils::get_current_content()

cmsms()->...

konnte in der dokumentation nix finden

Offline

#9 28. Februar 2013 16:58

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

Re: Nach Update, Probleme mit UDT und Template-editor

Eventuell hilft Dir das schon weiter: http://apidoc.cmsmadesimple.org/


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

#10 28. Februar 2013 17:45

SlurmMcKenzie
hat von CMS/ms gehört
Registriert: 27. Februar 2013
Beiträge: 4

Re: Nach Update, Probleme mit UDT und Template-editor

NaN schrieb:

Eventuell hilft Dir das schon weiter: http://apidoc.cmsmadesimple.org/

das hatte ich auch schon gefunden, und ich denke da stehen sicher auch alle antworten auf meine frage drin, aber es ist alles andere als einfach oder übersichtlich ;-)
werde mich bei gelegenheit aber mal da durchlesen

Offline