Frage zu Insite Editing und xhtml

kypta
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

Beitrag von kypta » Di 8. Nov 2005, 16:14

Meine Lösung, um das Insite-Editing zu deaktivieren:

Code: Alles auswählen

/**
 * CMS_HTML
 */
$tmp = $a_content['CMS_HTML'][$val];
$tmp = urldecode($tmp);
$tmp = str_replace("\$", "\\$", $tmp);

$tmp = AddSlashes(AddSlashes($tmp));
$tmp = str_replace("\\\'","'",$tmp);


cInclude("includes", "functions.lang.php");
cInclude("classes", "class.htmlelements.php");

if ($edit) {
    if ($tmp == "") {
        $tmp = " ";
    }
    $insiteEditingDIV = new cHTMLDiv;
    $insiteEditingDIV->setId("HTML_".$db->f("idtype")."_".$val);
    $insiteEditingDIV->setEvent("Focus", "this.style.border='1px solid #bb5577';");
    $insiteEditingDIV->setEvent("Blur", "this.style.border='1px dashed #bfbfbf';");
    $insiteEditingDIV->setStyleDefinition("border", "1px dashed #bfbfbf");
    $insiteEditingDIV->setStyleDefinition("direction", langGetTextDirection($lang));
    
    $insiteEditingDIV->updateAttributes(array("contentEditable" => "true"));
    
    $insiteEditingDIV->setContent(stripslashes($tmp));
    

    /* Edit anchor and image */
    $editLink = $sess->url("front_content.php?action=10&idcat=$idcat&idart=$idart&idartlang=$idartlang&type=CMS_HTML&typenr=$val");
    $editAnchor = new cHTMLLink;
    $editAnchor->setLink("javascript:setcontent('$idartlang','" . $editLink . "');");
    
    $editButton = new cHTMLImage;
    $editButton->setSrc($cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_edithtml.gif");
    $editButton->setBorder(0);
    $editButton->setStyleDefinition("margin-right", "2px");
        
    $editAnchor->setContent($editButton);
    
    
    /* Save anchor and image */
    $saveAnchor = new cHTMLLink;
    $saveAnchor->setLink("javascript:setcontent('$idartlang','0')");
    
    $saveButton = new cHTMLImage;
    $saveButton->setSrc($cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_speichern.gif");
    $saveButton->setBorder(0);
    
    $saveAnchor->setContent($saveButton);

    /* Process for output with echo */
    $finalEditButton = $editAnchor->render();
    $finalEditButton = str_replace('"', '\"', $finalEditButton);
    $finalEditButton = str_replace('"', '\"', $finalEditButton);
    
    $finalEditingDiv = $insiteEditingDIV->render();
    $finalEditingDiv = str_replace('"', '\"', $finalEditingDiv);
    $finalEditingDiv = str_replace('"', '\"', $finalEditingDiv);
    
    $finalSaveButton = $saveAnchor->render();
    $finalSaveButton = str_replace('"', '\"', $finalSaveButton);
    $finalSaveButton = str_replace('"', '\"', $finalSaveButton);

// originalcode    
//    $tmp =  $finalEditingDiv . $finalEditButton . $finalSaveButton;
// code der save-button macht falls kein xhtml
	$editor_xhtml_style = getEffectiveSetting("generator", "xhtml", false);
	if ($editor_xhtml_style=="true") {
		$tmp =  $finalEditingDiv . $finalEditButton;
	} else {
		$tmp =  $finalEditingDiv . $finalEditButton . $finalSaveButton;
	}
// ende code für save-button falls kein xhtml  
}
Der Code erstetzt den Code des Datensatzes CMS_HTML in der DB-Tabelle con_type. Geändert habe ich folgendes:

Die zweitletzte Zeile des Original-Codes war ja:

Code: Alles auswählen

$tmp =  $finalEditingDiv . $finalEditButton . $finalSaveButton;
Es würde genügen, daraus einfach:

Code: Alles auswählen

$tmp =  $finalEditingDiv . $finalEditButton;
zu machen.

Wenn man aber:

Code: Alles auswählen

$editor_xhtml_style = getEffectiveSetting("generator", "xhtml", false);
	if ($editor_xhtml_style=="true") {
		$tmp =  $finalEditingDiv . $finalEditButton;
	} else {
		$tmp =  $finalEditingDiv . $finalEditButton . $finalSaveButton;
	}
daraus macht, hat es den Vorteil, dass man mit dem Setzen der Variabel "XHTML erzeugen" unter Administration-Mandant auch gleich beeinflusst, ob der Speichern-Button erscheint oder nicht.

Vorteil - ich kann mit dem gleichen System verschiedene Mandanten haben. Der eine mit xhtml, der andere ohne.

Natürlich müsste man diese Änderung auch mit CMS_HTMLHEAD machen.

Gruss
Thomas

Gesperrt