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

#1 15. März 2011 19:15

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

Bug in AdvancedContent?

habe mir das neueste AC als Archiv geladen und installiert (musste übrigens die Dateien aus /trunk/ verschieben. war wohl ein Versehen beim Komprimieren).
Nun bekomme ich aber eine Meldung die eigentlich gefixt sein sollte:
http://dev.cmsmadesimple.org/bug/view/5734

Bei mir taucht sie immernoch auf:

Warning: Parameter block_group is not known by module Gallery dropped in /www/htdocs/w00885cf/cmsms/lib/misc.functions.php on line 1629

Offline

#2 15. März 2011 21:23

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

Re: Bug in AdvancedContent?

Warning: Parameter block_group is not known by module Gallery ...

Das hat nur rudimentär mit AdvancedContent zu tun.
Ich hatte das irgendwo schonmal erklärt. Die meisten Module sind aus Sicherheitsgründen so geschrieben, dass sie keine unbekannten Parameter akzeptieren. So auch Gallery. Wenn Module im Inhalt angezeigt werden sollen, müssen daher bevor die Module ausgeführt werden alle Parameter, die nur den Inhalt betreffen, entfernt werden. Der {content}-Tag entfernt aber nur die Parameter, die speziell für ihn - also für den normalen Inhaltstypen - gedacht sind. Alle anderen Parameter leitet er weiter an das Modul, das im Inhalt angezeigt werden soll. Da das Modul aber z.B. den Parameter block_group nicht kennt, aber unbekannte Parameter nicht akzeptiert, gibt es diese bescheuerte Fehlermeldung.

Ich habe bis heute nicht verstanden, wozu die eigentlich gut sein soll. Mehr Sicherheit wird dadurch auch nicht erreicht. Im Gegenteil, es wird sogar jedem Seitenbesucher noch erklärt, welche Parameter das Modul alles nicht kennt. Besser wäre es, unbekannte Parameter einfach still und heimlich zu ignorieren. Puntk aus Ende. Aber nö...

Im Backend gibt es unter "Webseiten-Administration->Globale Einstellungen" die Option "Parameter-Überprüfung zum Erzeugen von Warnhinweisen erlauben". Damit konnte man das meiner Meinung nach mal unterbinden. Aber irgendwie scheint diese Option keine Auswirkungen mehr darauf zu haben.

Nutz stattdessen {AdvancedContent ... } anstelle von {content}. Damit sollten alle Parameter entfernt werden, die AdvancedContent betreffen, bevor das Modul im Inhalt ausgeführt wird.

Offline

#3 17. März 2011 00:41

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

Re: Bug in AdvancedContent?

nicmare schrieb:

(musste übrigens die Dateien aus /trunk/ verschieben. war wohl ein Versehen beim Komprimieren)

Hm.
Komisch, bei mir ist da kein trunk-Verzeichnis im Archiv.
Was genau meinst Du damit?

Offline

#4 17. März 2011 12:05

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

Re: Bug in AdvancedContent?

hat sich erledigt, habe wohl irgend ein anderes archiv aus versehen benutzt.

Offline

#5 17. März 2011 12:09

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

Re: Bug in AdvancedContent?

NaN schrieb:

Nutz stattdessen {AdvancedContent ... } anstelle von {content}. Damit sollten alle Parameter entfernt werden, die AdvancedContent betreffen, bevor das Modul im Inhalt ausgeführt wird.

habe das gemacht:
aus

{content assign="thecontent" block_group="Content"}
{content block="thecontent2" assign="thecontent2" label="more Content (2. Block)" block_group="Content"}

wurde

{AdvancedContent assign="thecontent" block_group="Content"}
{AdvancedContent block="thecontent2" assign="thecontent2" label="more Content (2. Block)" block_group="Content"}

aber der fehler ist der selbe. hat sich sozusagen garnichts verändert

ich habe noch diverse weitere blöcke. muss ich jetzt jeden auf AC ändern?

Beitrag geändert von nicmare (17. März 2011 12:10)

Offline

#6 17. März 2011 15:25

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

Re: Bug in AdvancedContent?

Immer dieser Parameter-Salat roll
Habe letztens das SVN Repository umstrukturiert.
Dabei muss sich wohl wieder ein Fehler eingeschlichen haben.
Der Parameter block_group wird wieder nicht entfernt... neutral
Füge mal in der Datei action.default.php in Zeile 135 unset($params['block_group']); hinzu.

Ich baue da demnächst eine Funktion ein, mit der ich nicht in zig verschiedenen Dateien jedesmal jeden einzelnen Parameter von Hand prüfen muss. Denn das nervt tierisch. Wie gesagt, ich verstehe dieses RestrictUnknownParams(); nicht. Wenn man es weglässt, dann gibt es die Fehlermeldung "WARNING: [Modulname] is not properly cleaning input params." Aber die kann man wenigstens über die "Globalen Einstellungen" abschalten. Eigentlich sollte die Funktion SetParameterType() völlig ausreichen, um input params properly zu cleanen... Mal sehen, vielleicht finde ich noch eine Möglichkeit, das alles vom Inhaltstypen aus zu steuern. Dann kann das {AdvancedContent} Plugin endlich weg.

Zu Deiner Frage: Es geht eigentlich nur um den Haupt-Contentblock.
Denn dort wird doch das Resultat von Modulen ausgegeben.
Bei den anderen Blöcken sollte es egal sein, ob {content} oder {AdvancedContent} verwendet wird.

Ich mache es im Template übrigens immer so:

{content assign="content"}

{*

{AdvancedContent block="whatever" block_group="specials" ... }

*}

...

{$content}

...

{$content_obj->GetPropertyValue('whatever')}

...

Das hat den Vorteil, dass ein und dasselbe Template im Backend und Frontend sowohl mit normalem als auch erweitertem Inhaltstyp funktioniert. Scheinbar fallen mir deshalb auch nicht alle Fehlermeldungen auf.

Offline

#7 17. März 2011 15:46

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

Re: Bug in AdvancedContent?

hehe, also das finde ich wieder witzig. dass ich ausgerechnet den parameter erwische der nicht unset ist smile.
nun gehts mit advancedcontent. aber wie soll ich für die zukunft verfahren wenn du sagst {AC} brauchts nicht mehr. vorläufig erstmal AC nehmen bis du noch ne andere idee hast, richtig?

Offline

#8 17. März 2011 16:26

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

Re: Bug in AdvancedContent?

Ja, würde ich so sagen.
Ich entferne das Plugin nicht, ohne vorher eine Lösung zu haben.
Eine Zeitlang würde das sowieso erstmal parallel laufen.

Offline

#9 23. März 2011 08:56

Janl
Server-Pate
Ort: Freistadt, Österreich
Registriert: 13. Dezember 2010
Beiträge: 1.090
Webseite

Re: Bug in AdvancedContent?

Hallo NaN,

ich habe gerade AC geladen bei Installation bekomme ich die Meldung
nur Unterstützung bis Version 1.8.3.

Was mache ich wenn ich 1.9.4.1 habe?

M.fr.Gr.
Jan


Ubuntu 16.04 mit KDE - LAMP

Offline

#10 23. März 2011 11:20

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

Re: Bug in AdvancedContent?

Eine andere Modul-Version nehmen?

Offline

#11 23. März 2011 18:48

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

Re: Bug in AdvancedContent?

heute komme ich mit einem neuen verdacht wink
wenn ich active="false" in {AdvancedContent} benutze, bekomme ich

[== php ==]
Fatal error: Cannot break/continue 1 level in /www/htdocs/w00885cf/cmsms/modules/AdvancedContent/contenttype.Content2.php on line 310

ausgespuckt.
habe kurz in den quelltext geguckt der das beinhaltet:

[== php ==]
        // block = active?
        if(isset($keyval['active']) && $this->IsFalse($keyval['active']))
        {
            continue; // don't process inactive blocks
        }

da bin ich aber auch ratlos.

Offline

#12 23. März 2011 20:24

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

Re: Bug in AdvancedContent?

Welche Version?
Bei mir steht da anstelle von "continue;"  "return false;"

Offline

#13 24. März 2011 08:20

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

Re: Bug in AdvancedContent?

0.7.2

Offline

#14 24. März 2011 10:26

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

Re: Bug in AdvancedContent?

Release Notes, Bug Report schrieb:

if you downloaded v.0.6.3 or v.0.7.2 before 2011-03-11 please download again.
There were some tiny issues that do not need an extra release.

wink

Offline

#15 28. März 2011 11:51

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

Re: Bug in AdvancedContent?

in der neuesten version in /trunk/ hast du nun folgendes gemacht:

foreach($this->GetAllowedParameters() as $k => $v) {
    unset($params[$v]);
}

allerdings kriege ich nun jetzt wieder die meldung von oben "Parameter block_group is not known by module Gallery…"

Offline

#16 28. März 2011 12:00

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

Re: Bug in AdvancedContent?

Kann nicht sein.
Verwendest Du {content} oder {AdvancedContent} ?

Offline

#17 28. März 2011 12:01

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

Re: Bug in AdvancedContent?

{AdvancedContent}

Offline

#18 28. März 2011 12:03

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

Re: Bug in AdvancedContent?

Gott ist das peinlich.
Mach mal in der action.default.php aus unset($params[$v]); -> unset($params[$k]);

Offline

#19 28. März 2011 12:04

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

Re: Bug in AdvancedContent?

ah stimmt, ist mir auch nicht aufgefallen ^^.
nun gehts. ist doch ne feine lösung  monkey

Offline

#20 28. März 2011 16:00

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

Re: Bug in AdvancedContent?

Hier mal noch ein kleiner Workaround, wie man diese Warnungen vermeiden kann (ich hatte es weiter oben schonmal erwähnt):

Man kann den Inhalt eines Inhaltsblock anstelle über das Plugin {content} (oder {AdvancedContent}) auch direkt über das Inhaltsobjekt {$content_obj} ansprechen. Die dazu nötige Funktion heißt

GetPropertyValue('name des blocks');

Bsp.:

{content assign="dummy" block_tab="Tab 1" usw...}
{$content_obj->GetPropertyValue('content_en')}

D.h. der {content} Tag interessiert in dem Falle nur im Backend.
Im Frontend wird er durch den assign Parameter nicht ausgegeben.
An der Stelle, an der der Inhalt ausgegeben werden soll, verwendet man die Funktion

{$content->GetPropertyValue('content_en')}

.
Bzw. um Smarty im Inhalt zu verarbeiten

{eval var=$content_obj->GetPropertyValue('content_en')}.

Dadurch umgeht man das Problem, dass irgendwelche Parameter, die nur den Inhaltstypen betreffen, an andere Module übergeben werden, weil man nur den reinen Inhalt verarbeitet - völlig ohne {content}-Parameter.
Das kann man auch mit allen anderen Blöcken machen.
Ich kommentiere alle zusätzlichen Blöcke meistens aus, damit sie lediglich im Backend angezeigt werden.
Im Frontend verwende ich immer GetPropertyValue().
Die Inhalte werden so oder so geladen. Ich muss Smarty nicht bemühen, über den Umweg der Templatevariablen an den Inhalt zu kommen. Denn gecached wird der Inhalt eh nicht.

Der Nachteil ist allerdings, dass man den Hauptinhalt immer zweimal von Smarty verarbeiten lässt.
Einmal durch {content assign="dummy"} und einmal durch {eval var=$content_obj->GetPropertyValue('content_en')}.
Das liegt daran, dass das Plugin {content} leider immer ausgeführt werden muss, damit CMSms korrekt funktioniert. Ich verstehe zwar selbst noch nicht wieso, aber ich kann damit leben.

Ein Vorteil ist aber wiederum, dass man bei den anderen Blöcken vorher prüfen kann, ob sie überhaupt Inhalt haben, bevor man sie von Smarty verarbeiten lässt bzw. den Einsatz von Smarty im Inhalt gänzlich übergehen kann. So kann man steuern in welchen Blöcken Plugins oder Module verwendet werden dürfen und in welchen nicht.

Die einfachste Variante, diese Warnung zu umgehen ist allerdings immer noch, entweder auf Parameter des AdvancedContent Moduls im Hauptinhalt zu verzichten oder das {AdvancedContent}-Plugin zu verwenden.

Offline

#21 28. März 2011 16:49

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

Re: Bug in AdvancedContent?

okay

Offline

#22 28. März 2011 17:45

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

Re: Bug in AdvancedContent?

mir ist grad noch was aufgefallen! habe diese methode bei mir eingebaut:
http://www.i-do-this.com/blog/36/Give-Y … ir-Sidebar
hatte prima geklappt. mit der AC version ausm trunk erscheint jetzt aber nur noch das normale select feld mit den options. habe grad schonmal versucht zu gucken woran es liegt aber wurde nicht fündig.

Offline

#23 28. März 2011 18:34

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

Re: Bug in AdvancedContent?

Ich geb's zu, ist nicht leicht zu finden: http://dev.cmsmadesimple.org/bug/view/6095

Offline

#24 28. März 2011 18:37

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

Re: Bug in AdvancedContent?

ai ai ai, da muss man auf zack sein um das mitzuschneiden  monkey

Offline

#25 28. März 2011 18:37

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

Re: Bug in AdvancedContent?

Wer hat eigentlich ursprünglich mal die deutsche Übersetzung gemacht?
Die pflege ich mittlerweile selber.
Kann man die irgendwie aus dem TC wieder löschen?
Beim Release ist das kein Problem. Da kann ich nach dem Auschecken die Datei unter /lang/ext/ selber löschen.
Aber wenn jemand das selber auscheckt, hat er immer die veraltete Sprachdatei.
(/lang/ext/de_DE.php überschreibt nämlich immer /lang/de_DE.php sad )

Offline