Vorbelegung von WYSIWYG-Feldern eingebaut

Ideen für neue Funktionen in CONTENIDO?
Antworten
cfraunholz
Beiträge: 2
Registriert: Mo 5. Feb 2007, 11:56
Kontaktdaten:

Vorbelegung von WYSIWYG-Feldern eingebaut

Beitrag von cfraunholz » So 30. Dez 2007, 21:32

Hallo!

Gerade habe ich Contenido so geändert, dass man den Inhalt von WYSIWYG-Felder vorbelegen kann.
Keine Ahfunktion jedenfalls nirgends finden können.
Falls das jemand braucht, im Folgenden die Erklärung, wie ich vorging.

Neue Tabelle für Default-Inhalte anlegen:

Code: Alles auswählen

CREATE TABLE `con_default_content` (
  `id_default_content` int(10) NOT NULL auto_increment,
  `typeid` int(10) NOT NULL default '0',
  `content` longtext NOT NULL,
  PRIMARY KEY  (`id_default_content`),
  UNIQUE KEY `typeid` (`typeid`)
) TYPE=MyISAM COMMENT='author Christian Fraunholz' AUTO_INCREMENT=3 ;
Tabelle in der /contenido/includes/cfg_sql.inc.php eintragen:

Code: Alles auswählen

$cfg["tab"]["default_content"]				   = $cfg['sql']['sqlprefix']."_default_content";
Die Datei /contenido/includes/functions.general.php abändern:
Aus

Code: Alles auswählen

$a_content[$db->f("type")][$db->f("typeid")] = urldecode($db->f("value")); 
in Zeile 53 wird

Code: Alles auswählen

		$typeid = $db->f("typeid");
		if ($a_content["CMS_HTML"][$typeid] != "") {
			$a_content[$db->f("type")][$typeid] = urldecode($db->f("value"));
		} else {
		

			$sql = "SELECT
							content
						FROM
							".$cfg["tab"]["default_content"]."
						WHERE
							typeid    = " . $typeid;
		
			$db->query($sql);
		
			while ($db->next_record()) {
			
				$a_content["CMS_HTML"][$typeid] = $db->f("content");
			
			}
		}
Legt man in der Datenbank einen Default-Inhalt mit der typeID 1234 an, wird dieser im Modul auf diese Art aktiviert:

Code: Alles auswählen

echo "CMS_HTML[1234]";  
Dipl.-Ing. (FH) Christian Fraunholz
Zend PHP Certified Engineer
www.php10.de

emergence
Beiträge: 10644
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Fr 4. Jan 2008, 11:42

intressante lösung... ist aber seitens backend dann nicht wirklich wartbar...

man könnte ja das ganze via getEffectiveSetting implementieren... (siehe functions.general.php)
da würde man sich die externe db tabelle ersparen und eine wartung über die eigenschaften (system,client,language,group,user) wäre möglich...
*** make your own tools (wishlist :: thx)

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL » Fr 18. Apr 2008, 20:31

möööööppppppp ... voll doof!! 8)

nutze folgendes modul für Headlines das automatsch das CMS_HTMLHEAD mit <h1>... befüllt.

Code: Alles auswählen

<?php

// CMS VALUE[0] im Input setzen

$default_value = mi18n("default_value");
if($default_value == "default_value") $default_value = '&nbsp;';

$myEdtimode = ( $contenido and $view == 'edit' ) ? true : false;

if(is_numeric("CMS_VALUE[0]")) echo "CMS_HTMLHEAD[CMS_VALUE[0]]"; 

if( $myEdtimode ) {
  echo '
<script language="javascript">
	if( document.getElementById(\''."HTMLHEAD_1_CMS_VALUE[0]".'\').innerHTML == "&nbsp;" ) {
		document.getElementById(\''."HTMLHEAD_1_CMS_VALUE[0]".'\').innerHTML = "<h1>'.str_replace("'","\'",$default_value).'</h1>";
	}
</script>';
}
?>
jedes modul kann einen eigenen Default-Wert haben. Ist der wert in der Übersetzung nicht da wird &nbsp; eingesetzt. Und ist voll Update fähig ohne Hilfe von 4fb :)


mfg Oli

Antworten