Scripts

Simpel 'CMS' dmv TinyMCE

Klaasjan Boven stuurde mij een PM om te vragen of ik een simpel CMS welke ik ooit een keer gemaakt had in de database wou zetten. Ik moest er even over nadenken want eigenlijk vind ik het de term CMS niet eens waard, laat staan dat het echt veel toevoegd aan de (tochal rijkelijk gevulde) scriptdatabase. Maar ik kan het mij ook wel voorstellen dat iemand zoiets wellicht zoekt en het graag zou willen toepassen op zijn website. Eigenlijk is het een heel simpel systeem waarbij je pagina's kunt toevoegen, wijzigen, verwijderen en sorteren mede dankzij een stukje PHP en TinyMCE. Je vult eenvoudig een database en zodoende kan je vrij eenvoudig een simpele website beheren. Zo zou je bijvoorbeeld paginas kunnen toevoegen aan mijn website waarbij dat menu links automatisch word aangepast. Voor de volledigheid heb ik er ook een klein stukje css aan toegevoegd, zodat het grafisch een beetje presenteerbaar is.

simpel-cms-dmv-tinymce
[code]
<?php
$username 	= '';
$password 	= '';
$host		= '';
$database	= '';

define('BR',"\r\n");
$paginaid 		= 1;
$referentieid 	= 1;
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Administratie Systeem</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">

<style type="text/css">
html,body {
	margin: 0;
	padding: 0;
	font: 12px verdana;
	text-align: center;
	background: url('afbeeldingen/achtergrond.gif');
	background-repeat: repeat;
	background-position: center 0%;
}

div#container {
	width: 760px;
	margin: 0px auto;
}

div#adminmenu {
	width: 200px;
	float: left;
	text-align: left;
	margin: 15px;
}

div#adminmenu img {
	vertical-align: middle;
	border: 0px;
	margin-right: 2px;
}

div#content {
	width: 500px;
	float: left;
	text-align: justify;
	margin: 15px;
}
</style>

<script language="javascript" type="text/javascript" src="tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
	mode : "textareas",
	theme : "advanced",
	language : "nl",
	convert_fonts_to_spans : false,


	theme_advanced_buttons1 : "bold,italic,underline,bullist,numlist,outdent,indent,cut,copy,paste,undo,redo,link,unlink,code,formatselect",
	theme_advanced_buttons2 : "",
	theme_advanced_buttons3 : "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]"
});
</script>
</head>
<body>
<div id="container">

<?php
if(mysql_connect($host,$username,$password))
{
	if(!mysql_select_db($database))
	{
		echo 'Sorry, ik kon helaas geen verbinding maken met de databasetabel!';
	}
}else{
	echo 'Sorry, ik kon helaas geen verbinding maken met de databaseserver!';
}

if(isset($_GET['actie']) && !empty($_GET['actie']))
{
	$acties = array('verhogen','verlagen','verwijderen','toevoegen','wijzigen');
	
	if(in_array($_GET['actie'],$acties))
	{
		$actie = mysql_real_escape_string($_GET['actie']);
	
		switch($actie)
		{
			case 'toevoegen':
				if(isset($_GET['volgordeid']) && !empty($_GET['volgordeid']))
				{
					if(is_numeric($_GET['volgordeid']))
					{
						$volgordeid = mysql_real_escape_string($_GET['volgordeid']);
						
						$query 		= "INSERT INTO content (volgordeid, titel, content) VALUES (".$volgordeid.",'voorbeeld titel','voorbeeld content')";
						$resultaat 	= mysql_query($query);
						
						if($resultaat && mysql_affected_rows() == 1)
						{
							$paginaid = mysql_insert_id();
							
							echo '<p>De pagina is succesvol toegevoegd! Hieronder kunt u hem aanpassen.</p>'.BR;
						}else{
							echo '<p>Sorry, er ging iets mis bij het toevoegen van een nieuwe pagina.</p>'.BR;
						}					
					}else{
						echo '<p>Sorry, de variabele volgordeid hoort numeriek te zijn!</p>'.BR;
					}
				}else{
					echo '<p>Sorry, ik verwacht op zijn minst iets van een volgordeid!</p>'.BR;
				}
			break;
		
			case 'wijzigen':
				if(isset($_GET['paginaid']) && !empty($_GET['paginaid']))
				{
					if(is_numeric($_GET['paginaid']))
					{
						$paginaid = mysql_real_escape_string($_GET['paginaid']);
						
						if($_SERVER['REQUEST_METHOD'] == 'POST')
						{
							if(isset($_POST['titel']) && !empty($_POST['titel']))
							{
								$titel = mysql_real_escape_string($_POST['titel']);
							}else{
								$titel = 'voorbeeld titel';
							}
							
							if(isset($_POST['content']) && !empty($_POST['content']))
							{
								$content = mysql_real_escape_string($_POST['content']);
							}else{
								$content = 'voorbeeld content';
							}
							
							$query 		= "UPDATE content SET titel = '".$titel."', content = '".$content."', datum = NOW() WHERE paginaid = ".$paginaid."";
							$resultaat 	= mysql_query($query);
							
							if($resultaat && mysql_affected_rows() == 1)
							{
								echo '<p>De pagina is succesvol geupdate.</p>'.BR;
							}else{
								echo '<p>Sorry, de pagina kon niet geupdate worden!</p>'.BR;
							}
						}					
					}else{
						echo '<p>Sorry, de variabele paginaid hoort numeriek te zijn!</p>'.BR;
					}
				}else{
					echo '<p>Sorry, ik verwacht op zijn minst iets van een paginaid!</p>'.BR;
				}
			break;
		
			case 'verwijderen':
				if(isset($_GET['paginaid']) && !empty($_GET['paginaid']))
				{
					if(is_numeric($_GET['paginaid']))
					{
						$paginaid 	= mysql_real_escape_string($_GET['paginaid']);
						
						$query 		= "DELETE FROM content WHERE paginaid = ".$paginaid."";
						$resultaat 	= mysql_query($query);
						
						if($resultaat && mysql_affected_rows() == 1)
						{
							echo '<p>Deze pagina is succesvol verwijderd!</p>'.BR;
						}else{
							echo '<p>Sorry, ik kon deze pagina niet verwijderen!</p>'.BR;
						} 
					}else{
						echo '<p>Sorry, de variabele paginaid hoort numeriek te zijn!</p>'.BR;
					}
				}else{
					echo '<p>Sorry, ik verwacht op zijn minst iets van een paginaid!</p>'.BR;
				}
			break;
			
			case 'verhogen' || 'verlagen':
				if(isset($_GET['volgordeid']) && !empty($_GET['volgordeid']))
				{
					if(is_numeric($_GET['volgordeid']))
					{
						$volgordeid = mysql_real_escape_string($_GET['volgordeid']);
			
						switch($actie)
						{
							case 'verhogen':
								$query 		= "SELECT paginaid, volgordeid FROM content WHERE volgordeid <= ".$volgordeid." ORDER by volgordeid DESC LIMIT 2";
								$resultaat 	= mysql_query($query);
							break;
								
							case 'verlagen':
								$query 		= "SELECT paginaid, volgordeid FROM content WHERE volgordeid >= ".$volgordeid." ORDER by volgordeid ASC LIMIT 2";
								$resultaat 	= mysql_query($query);
							break;	
						}
				
						if($resultaat && mysql_num_rows($resultaat) == 2)
						{
							$paginaid 	= array();
							$volgordeid = array();
							
							while($rij = mysql_fetch_array($resultaat))
							{
								$paginaid[] 	= $rij['paginaid'];
								$volgordeid[] 	= $rij['volgordeid'];
							}			
						
							$query 		= "UPDATE content SET volgordeid = ".$volgordeid[0]." WHERE paginaid = ".$paginaid[1]."";
							$resultaat 	= mysql_query($query);
								
							$query 		= "UPDATE content SET volgordeid = ".$volgordeid[1]." WHERE paginaid = ".$paginaid[0]."";
							$resultaat 	= mysql_query($query);
													
						}else{
							echo '<p>Sorry, maar deze actie is voor mij onmogelijk!</p>'.BR;
						}
					}else{
						echo '<p>Sorry, de variabele volgordeid hoort numeriek te zijn!</p>'.BR;
					}
				}else{
					echo '<p>Sorry, ik verwacht op zijn minst iets van een volgordeid!</p>'.BR;
				}
			break;	
		}		
	}
}
?>

<div id="adminmenu">
<b>Menuitems</b>:<br><br>

<?php
$query 		= "SELECT titel, paginaid, volgordeid FROM content ORDER BY volgordeid";
$resultaat 	= mysql_query($query);

$menuvolgordeid = 0;

if($resultaat && mysql_num_rows($resultaat) >= 1)
{
	while($rij = mysql_fetch_array($resultaat))
	{
		$menupaginaid 	= $rij['paginaid'];
		$menutitel 		= $rij['titel'];
		$menuvolgordeid	= $rij['volgordeid'];
		
		if(strlen($menutitel) > 20)
		{
			$menutitel 		= substr($menutitel, 0, 17);
			$menutitel 	   .= "...";
		}
				
		echo '<a href="?actie=verhogen&amp;volgordeid='.$menuvolgordeid.'"><img src="afbeeldingen/omhoog.gif" title="Verhogen" alt="Verhogen"></a> <a href="?actie=verlagen&amp;volgordeid='.$menuvolgordeid.'"><img src="afbeeldingen/omlaag.gif" title="Verlagen" alt="Verhogen"></a> <a href="?actie=verwijderen&amp;paginaid='.$menupaginaid.'"><img src="afbeeldingen/paginaverwijderen.gif" title="Pagina verwijderen" alt="Verhogen"></a> <a href="?actie=wijzigen&amp;paginaid='.$menupaginaid.'">'.ucfirst($menutitel).'</a><br>'.BR;
	}
}	

echo '<br><a href="?actie=toevoegen&amp;volgordeid='.($menuvolgordeid +1).'">Pagina toevoegen</a><br><br><br>'.BR;
?>

</div>


<?php
if(isset($actie) && ($actie == 'toevoegen' || $actie == 'wijzigen'))
{
	$query 		= "SELECT titel, content FROM content WHERE paginaid = ".$paginaid."";
	$resultaat 	= mysql_query($query);
	
	if($resultaat && mysql_num_rows($resultaat) == 1)
	{
		$rij 		= mysql_fetch_array($resultaat);
		
		$titel		= stripslashes($rij['titel']);
		$content 	= stripslashes($rij['content']);
		
?>

<div id="content">
<form name="formulier" action="?actie=wijzigen&amp;paginaid=<?php echo $paginaid; ?>" method="post">
Titel: <input type="text" id="titel" name="titel" size="35" value="<?php echo $titel; ?>" title="De gewenste titel."><br><br>
<textarea name="content" rows="20" style="width: 100%;" id="content" title="De gewenste content"><?php echo $content; ?></textarea><br>
<input type="submit" name="versturen" value="Versturen" id="versturen"> <INPUT type="reset" id="wissen" name="wissen" value="Wissen">
</form>
</div>
	
<?php	
	}else{
		echo '<p>Sorry, er gaat hier iets mis wat eigenlijk niet fout kan gaan...</p>'.BR;
	}
}
?>

</div>
</body>
</html>
[/code]

Database:
[code]
CREATE TABLE `content` (
  `paginaid` int(11) NOT NULL auto_increment,
  `volgordeid` int(11) NOT NULL default '0',
  `titel` varchar(255) NOT NULL default '',
  `datum` datetime NOT NULL default '0000-00-00 00:00:00',
  `content` text NOT NULL,
  PRIMARY KEY  (`paginaid`)
);
[/code]

Reacties

0
Nog geen reacties.