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

#1 27. Februar 2014 17:47

kishy
hat von CMS/ms gehört
Registriert: 05. November 2013
Beiträge: 15

Contenttype

Hallo Leute,

ich (habe) verwende Contenttypes, diese werden nicht mehr unterstützt im neuen
versionen von CMSMS.

DIe lösung durch tags cms_module oder so ist nicht sehr userfriendly.

Gibt es eine alternative?

Ich möchte kein anderes modul verwenden um mein modul in einer seite zu
zeigen.

Ich verwende die contenttypes um die optionen für cmsms modul tag in einem formular darzustellen.
Ich löse das derzeit mit einem kleinen systemhack aber das ist keine lösung auf dauer.

danke

Offline

#2 27. Februar 2014 19:04

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

Re: Contenttype

Das einfachste dürfte sein, die Optionen für das Modul, die bislang via Content Type eingestellt wurden,  in dessen Backend zu verlagern.

Offline

#3 03. März 2014 02:43

kishy
hat von CMS/ms gehört
Registriert: 05. November 2013
Beiträge: 15

Re: Contenttype

Danke für die Info, aber das ist leider nicht sehr befriedigend.
bislang hatten meine user wenn sie eine neue seite mit anderen einstellungen
erstellen wollten folgendes zu tun;

contenttype umstellen
einstellungen vornehmen
speichern

nach deiner methode müssten sie nun folgendes tun

zuerst im modul die einstellung vornehmen(ohne vorschau)
dann ein tag copieren (hoffentlich werden die klammern mit kopiert)
in eine seite einfügen (hoffentlich werden die klammern nicht durch das html eq ersetzt)
speichern

Bei den meisten scheitert es schon am strg+c

was ist eigentlich das hier {content_module} , gibt es dazu irgendwo eine info?

Offline

#4 03. März 2014 08:16

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

Re: Contenttype

Ich kenne deine Module nicht, aber eine Option wäre, den Inhalt für neue Seiten entsprechend vorzudefinieren, um Eingabefehler zu umgehen.

Alternativ könntest du evtl mit dem Advanced Content Modul die gewünschte Funktionalität nachbauen.

Als dritte Variante fiele mir noch ein, die Voreinstellung in ein Plugin für den Tiny auszulagern, also ähnlich dem cms_linker.

Offline

#5 03. März 2014 10:21

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

Re: Contenttype

Welche CMS-Version ist die letzte, bei der Deine ContentTypes noch funktioniert haben?

ContentTypes werden schon noch unterstützt, aber die Frage ist, wie Du diese bisher bereitgestellt hast. Du wirst vermutlich nicht vermeiden können, Dein Modul bzw. die ContentTypes umzuschreiben.

Ich löse das derzeit mit einem kleinen systemhack aber das ist keine lösung auf dauer.

Kannst Du das vielleicht noch etwas genauer erklären?


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 04. März 2014 14:29

kishy
hat von CMS/ms gehört
Registriert: 05. November 2013
Beiträge: 15

Re: Contenttype

Die versionen wo ich es weis das es funktioniert ist 1.11.9 mit einem hack.

[== php ==]
$params1=array();
			$params1['formID'] = $this->GetPropertyValue('formID');
			$params1['preinfo']=$this->GetPropertyValue('preinfo');
			$params1['showlast']=$this->GetPropertyValue('showlast');
			$params1['postinfo']=$this->GetPropertyValue('postinfo');
         	$params1['previewbut']=$this->GetPropertyValue('previewbut');
         	$params1['module']='****';
	        $params1['action']='default';
			$modulecall=''.$param.'{cms_module ';
			foreach ($params1 as $key=>$value) {
				$modulecall.=' '.$key.'=\''.$value.'\' ';
			};
			$modulecall.='}';
			$this->SetPropertyValue('content_en',$modulecall);


	}

	function Show($param)
	{
		$param = str_replace(' ','_',$param);
		return $this->GetPropertyValue($param);
	}

Das eigentliche problem ist das ein aufruf über die function GetModuleInstance()
in der methode show()

$modinstance->doAction(****

nicht immer gemacht wird auch wenn das caching deaktiviert wird.

jedoch wenn ich den content austausche gegen das smarty eq functioniert es.

es bringt mich zum wansinn das problem zu identivizieren den smarty macht was es willl.

Offline

#7 05. März 2014 10:51

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

Re: Contenttype

Der Code-Auszug bringt mich jetzt leider nicht viel weiter.
Es sieht für mich fast so aus, als würdest Du den Inhalt zur Laufzeit ändern wollen, um aus den eigentlichen Inhalten den Modulaufruf zu machen. Oder sehe ich das falsch?

Welche Methode ist das da oben über Show() ?
Kannst Du mir mal den ganzen Inhaltstypen zeigen?
Dann kann ich da evtl. mal selber rumprobieren.

Die einzig nennenswerte Änderung bezüglich Smarty zwischen CMSms 1.11.9 und 1.11.10 ist die Version der Smarty-Engine. Ich hab leider keine Ahnung, was genau sich da bei Smarty beim Caching geändert hat und inwiefern das Auswirkungen auf CMSms haben könnte.


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 09. März 2014 00:14

kishy
hat von CMS/ms gehört
Registriert: 05. November 2013
Beiträge: 15

Re: Contenttype

Wie du schon richtig gemerkt hast, will ich inhalte zur laufzeit ändern.
Dies bedeutet nicht das ich inhalte gegen irgend etwas austauschen möchte
sondern nur das ich einige inhalte gerne in einer extra tabele führen möchte
um den leuten die formatierung zu ersparen.

Der punkt ist das ich überall wo ich es gefunden habe den cache ausgeschalten habe:

Bei der Inhaltsseite
Beim Modul selber
Bei Contenttype
In den Smarty einstellungen unter globale einstellungen.

solange es als tag in einem template eingesetzt ist, functioniert es tadellos,
sobald ich es in eine seite gebe geht es nicht mehr außer ich ändere den
inhalt der seite oder lösche den cache.

es ist natürlich möglich das ganze per link aufzurufen -> index.php?mact=blablabla
schön ist was anderes.
Ich könnte natürlich eine friendlyurl generieren und einen externen link setzen.

Ich weis nicht wass sie gemacht haben aber in 1.11.2 hat es noch funktioniert mit

[== php ==]
function Show($param = 'content_en')
	{

		if ($param == 'content_en')
		{

			global $gCms;
			$variables = &$gCms->variables;

			$params = array();



			$params['formID'] = $this->GetPropertyValue('formID');
			$params['preinfo']=$this->GetPropertyValue('preinfo');
			$params['showlast']=$this->GetPropertyValue('showlast');
			$params['postinfo']=$this->GetPropertyValue('postinfo');
         $params['previewbut']=$this->GetPropertyValue('previewbut');
         $params['thelang']=$this->GetPropertyValue('thelang');

			$params['content_en']='';

			$feedbackform = new comunicationcenter();

			//Buffer all this crap spit out by the module and return it
			@ob_start();
			$feedbackform->DoAction('default', 'feedbackformModule', $params, $variables['content_id']);
			$text = @ob_get_contents();
			@ob_end_clean();
			#return $text;
			return '{literal}'.$text.'{/literal}';

		}
		else
		{
			return '';
		}

	}

das war einfach und hat sehr zuverläßig functioniert.

ich weiß nicht wie es mit 1.11.3 - 8 war aber im 1.11.9 hat es bestimmt nicht mehr functioniert
den ich habe bei einem upgrade des CMS 6 Module umschreiben müßen und den fehler suchen.

P.s. der trick functioniert natürlich auch beim 1.11.10 habe so neben bei heute ein update gemacht.

mal schauen ob sich da was getan hat.

Offline