Hallo
Ik heb een probleem bij mijn php-programma om mijn site te kunnen beheren.
Ik wil iem. de mogelijkheid geven om de inhoud van de site aan te passen op eigen computer (waarop php geïnstalleerd is) op een eenvoudige manier en dat dat html-pagina dan automatisch kan geuploaded worden naar de server(zonder php-ondersteuning). Dit moet een voorlopige oplossing zijn in afwachting dat de organisatie zorgt voor webruimte met ondersteuning van php. Ik ben gewoon vrijwilliger kan kan hier financieel niet in tussenkomen.
Hier in dit voorbeeld wordt de inhoud van een div (id=inhoud) getoond als een soort tekstverwerker. Hier kan de gebruiker de inhoud aanpassen, maar bij het opslaan loopt het mis.
Ik kan niet op de gepaste code komen om een div te vervangen in een html document.
Met deze code: $elemNieuw = $doc->importNode($nieuw->documentElement,true); worden hier <html><body> en </html></body> tags teveel geplaatst in mijn html document.
Hoe kan ik mijn code aanpassen?
Zie hier mijn code
Ik heb een probleem bij mijn php-programma om mijn site te kunnen beheren.
Ik wil iem. de mogelijkheid geven om de inhoud van de site aan te passen op eigen computer (waarop php geïnstalleerd is) op een eenvoudige manier en dat dat html-pagina dan automatisch kan geuploaded worden naar de server(zonder php-ondersteuning). Dit moet een voorlopige oplossing zijn in afwachting dat de organisatie zorgt voor webruimte met ondersteuning van php. Ik ben gewoon vrijwilliger kan kan hier financieel niet in tussenkomen.
Hier in dit voorbeeld wordt de inhoud van een div (id=inhoud) getoond als een soort tekstverwerker. Hier kan de gebruiker de inhoud aanpassen, maar bij het opslaan loopt het mis.
Ik kan niet op de gepaste code komen om een div te vervangen in een html document.
Met deze code: $elemNieuw = $doc->importNode($nieuw->documentElement,true); worden hier <html><body> en </html></body> tags teveel geplaatst in mijn html document.
Hoe kan ik mijn code aanpassen?
Zie hier mijn code
Code:
<?
$bestand = "../".$_GET['bestand'];
$best = $_GET['bestand'];
$innerHTML = '';
$doc = new DOMDocument();
$doc->loadHTMLFile($bestand);
$elem = $doc->getElementById("inhoud");
// loop through all childNodes, getting html
$children = $elem->childNodes;
foreach ($children as $child) {
$tmp_doc = new DOMDocument();
$tmp_doc->appendChild($tmp_doc->importNode($child,true));
$innerHTML .= $tmp_doc->saveHTML();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<title>Lets Zottegem beheer</title>
<link rel="stylesheet" type="text/css" href="../css/master.css">
<script type="text/javascript" src="../ajax.js"></script>
<script type="text/javascript" src="../menu.js"></script>
<script type="text/javascript" src="../tinymce/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
// General options
mode : "textareas",
theme : "advanced",
skin : "o2k7",
plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups,autosave",
// Theme options
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
// Example word content CSS (should be your site CSS) this one removes paragraph margins
content_css : "css/word.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
</script>
<style type="text/css">
table td {
vertical-align: top;vertical-align: top;
}
</style>
</head>
<body onLoad="laad('menu.htm')">
<div id="page-container">
<div id="kop">
<h1>LETS Regio Zottegem beheer</h1>
</div>
<div id="menu">
</div>
<div id="pagina">
<div id="titel">
<h2>Kalender</h2>
</div>
<div id="inhoud">
<form method="post" action="<? echo $_SERVER['PHP_SELF']."?bestand=".$best; ?>">
<p>
<textarea name="content" cols="50" rows="15">
<? echo htmlentities($innerHTML); ?>
</textarea>
<input type="submit" value="Opslaan op computer" />
</p>
</form>
<?php
// oorspronkelijk
if(isset($_POST['content'])){
//$bestand = "../kalender.html";
$doc = new DOMDocument();
$doc->loadHTMLFile($bestand);
$elemOud = $doc->getElementById("inhoud");
//nieuw deel
$nieuw = new DOMDocument();
echo "<pre>".$nieuw->saveHTML()."</pre>";
$nieuw ->loadHTML("<div id='inhoud'>".$_POST['content']."</div>");
echo "Nieuw: ".$nieuw->saveHTML();
$elemNieuw = $nieuw->getElementById("inhoud");
//foreach ($src->childNodes as $el) $dst->appendChild($destdoc->importNode($el, TRUE));
//foreach ($elemNieuw->childNodes as $el) $elemOud->appendChild($ddoc->importNode($el, TRUE));
$elemNieuw = $doc->importNode($nieuw->documentElement,true);
$elemOud->parentNode->replaceChild($elemNieuw, $elemOud);
echo "<br><br>".$doc->saveHTML();
$doc->saveHTMLFile ("test.html");
//echo $bestand." werd opgeslaan op jouw PC";
} //end-if lokaal opslaan
?>
</div>
</div>
</div>
</body></html>