<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>SteviesWebsite Webmaster Blog</title>
	
	<link>http://blog.stevieswebsite.de</link>
	<description>Entwicklung. Webanalyse. Seo.</description>
	<lastBuildDate>Wed, 08 Sep 2010 17:25:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/stevieswebsite" /><feedburner:info uri="stevieswebsite" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Google Instant: Diese Websites profitieren</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/NzftV3GHkLg/</link>
		<comments>http://blog.stevieswebsite.de/2010/09/google-instant-diese-websites-profitieren/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 17:19:22 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[SEO / SMO]]></category>
		<category><![CDATA[google instant]]></category>
		<category><![CDATA[profitieren]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6375</guid>
		<description><![CDATA[Auf meinem Nebenbildschirm läuft gerade noch die Pressekonferenz zu Google Instant, eine Suche, bei der bereits beim Eingeben die Ergebnisse angezeigt werden. Da jeder mit genau einem Buchstaben anfängt zu tippen, werden die Ergebnisse dazu natürlich relativ häufig angezeigt. Aus diesem Grund hab ich für Deutschland mal eine Kleine Liste mit dem Alphabet gemacht, welche [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fgoogle-instant-diese-websites-profitieren%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fgoogle-instant-diese-websites-profitieren%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Auf meinem Nebenbildschirm läuft gerade noch die Pressekonferenz zu Google Instant, eine Suche, bei der bereits beim Eingeben die Ergebnisse angezeigt werden. Da jeder mit genau einem Buchstaben anfängt zu tippen, werden die Ergebnisse dazu natürlich relativ häufig angezeigt.<span id="more-6375"></span></p>
<p>Aus diesem Grund hab ich für Deutschland mal eine Kleine Liste mit dem Alphabet gemacht, welche Seite in Deutschland zu welchem Buchstaben oben steht und somit von Google Instant profitiert.</p>
<ul>
<li><a title="Amazon.de" href="http://Amazon.de" target="_self">Amazon.de</a></li>
<li><a href="http://Bild.de">Bild.de</a></li>
<li><a href="http://Chip.de" target="_self">Chip.de</a></li>
<li><a href="http://dasoertliche.de">Das Örtliche</a></li>
<li><a href="http://ebay.de" target="_self">Ebay</a></li>
<li><a href="http://facebook.com">Facebook</a></li>
<li><a href="http://gmx.net"> GMX</a></li>
<li><a href="http://hm.com">H &amp; M</a></li>
<li><a href="http://ikea.com">Ikea</a></li>
<li><a href="http://jappy.de" target="_self">Jappy</a></li>
<li><a href="http://Kino.to">Kino.to</a></li>
<li><a href="http://dict.leo.org">Leo</a></li>
<li><a href="http://meinvz.net">MeinVZ</a></li>
<li><a href="http://netto-online.de">Netto</a></li>
<li><a href="http://otto.de" target="_self">Otto</a></li>
<li><a href="http://postbank.de">Postbank</a></li>
<li><a href="http://qvc.de" target="_self">QVC</a></li>
<li><a href="http://de.map24.com">Map24</a></li>
<li><a href="http://schuelervz.net" target="_self">SchülerVZ</a></li>
<li><a href="http://dastelefonbuch.de">Das Telefonbuch</a></li>
<li><a href="http://ups.com" target="_self">UPS</a></li>
<li><a href="http://Volkswagen.de">Volkswagen</a></li>
<li><a href="http://wetter.com" target="_self">Wetter.com</a></li>
<li><a href="http://xing.com" target="_self">Xing</a></li>
<li><a href="http://youtube.com" target="_self">YouTube</a></li>
<li><a href="http://zdf.de">ZDF</a></li>
</ul>
<p>Wer selbst noch etwas testen möchte, kann dies unter <a href="http://google.com/instant/" target="_self">http://google.com/instant/</a> machen.</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/NzftV3GHkLg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/09/google-instant-diese-websites-profitieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/09/google-instant-diese-websites-profitieren/</feedburner:origLink></item>
		<item>
		<title>Seiten in Datenbank speichern (CMS)</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/a0t8xOjgRk4/</link>
		<comments>http://blog.stevieswebsite.de/2010/09/seiten-in-datenbank-speichern-cms/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 16:13:28 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[CMS Tutorial]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6367</guid>
		<description><![CDATA[Derzeit speichern wir die Seiten ja noch in Dateiform &#8211; Das änder sich heute! Wir können ja mitlerweile unterschiedliche Seitentypen erstellen, weswegen wir auch keine PHP-Tags unterstützten müssen. Durch die Speicherung in der Datenbank können wir später auch eine Suche erstellen. Zunächst einmal brauchen wir eine neue Spalte in unserer pages-Tabelle: content als text. Da [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fseiten-in-datenbank-speichern-cms%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fseiten-in-datenbank-speichern-cms%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Derzeit speichern wir die Seiten ja noch in Dateiform &#8211; Das änder sich heute! Wir können ja mitlerweile unterschiedliche Seitentypen erstellen, weswegen wir auch keine PHP-Tags unterstützten müssen. Durch die Speicherung in der Datenbank können wir später auch eine Suche erstellen.<span id="more-6367"></span></p>
<p>Zunächst einmal brauchen wir eine neue Spalte in unserer pages-Tabelle: content als text.</p>
<p>Da wir in der Klasse Text darauf zugreifen, müssen wir auch hier den Inhalt auslesen. gebrauchen tuen wir es aber erst im Editor. Damit  wir später nicht auf dumme Ideen kommen, habe ich es in der Klasse editorContent genannt. Das Speichern und auslesen geht dann so: <strong>/system/classes/page.php</strong>:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
<span style="color: #ff3030;">class</span> Page<span style="color: #555555;">{</span>
  <span style="color: #ff3030;">public</span> <span style="color: #0000ff;">$id</span>      <span style="color: #555555;">= -</span><span style="color: #32ba06;">1</span><span style="color: #555555;">;</span>
  <span style="color: #ff3030;">public</span> <span style="color: #0000ff;">$alias</span>   <span style="color: #555555;">=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">;</span>
  <span style="color: #ff3030;">public</span> <span style="color: #0000ff;">$title</span>   <span style="color: #555555;">=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">;</span>
  <span style="color: #ff3030;">public</span> <span style="color: #0000ff;">$ownerid</span> <span style="color: #555555;">= -</span><span style="color: #32ba06;">1</span><span style="color: #555555;">;</span>
  <span style="color: #ff3030;">public</span> <span style="color: #0000ff;">$owner</span>   <span style="color: #555555;">=</span> false<span style="color: #555555;">;</span>
  <span style="color: #ff3030;">public</span> <span style="color: #0000ff;">$menu</span>    <span style="color: #555555;">= -</span><span style="color: #32ba06;">1</span><span style="color: #555555;">;</span>
  <span style="color: #ff3030;">public</span> <span style="color: #0000ff;">$meta</span>    <span style="color: #555555;">=</span> null<span style="color: #555555;">;</span>
  <span style="color: #ff3030;">public</span> <span style="color: #0000ff;">$editor</span>  <span style="color: #555555;">=</span> null<span style="color: #555555;">;</span>
  <span style="color: #ff3030;">private</span> <span style="color: #0000ff;">$editorContent</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">;</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">loadProperties</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$alias</span><span style="color: #555555;">){</span>
    <span style="color: #ff3030;">if</span> <span style="color: #555555;">(</span><span style="color: #0000ff;">$alias</span> <span style="color: #555555;">==</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">) {</span>
      <span style="color: #0000ff;">$alias</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">"home"</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias <span style="color: #555555;">=</span> <span style="color: #0000ff;">$alias</span><span style="color: #555555;">;</span>
    <span style="color: #0000ff;">$row</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadRow</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT * FROM {'dbprefix'}pages </span>
<span style="color: #1861a7;">                           WHERE alias = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$alias</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$row</span><span style="color: #555555;">);</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">loadPropertiesById</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$id</span><span style="color: #555555;">){</span>
    <span style="color: #0000ff;">$row</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadRow</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT * FROM {'dbprefix'}pages </span>
<span style="color: #1861a7;">                           WHERE id = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$id</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$row</span><span style="color: #555555;">);</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$data</span><span style="color: #555555;">){</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$data</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>id            <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>id<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>title         <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>title<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>ownerid       <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>owner<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>menu          <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>menu<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias         <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>editorContent <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>content<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>meta          <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Meta</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>meta<span style="color: #555555;">-&gt;</span>pageid  <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>id<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>meta<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>editor <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">editor</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">]) || !</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">]-&gt;</span>role<span style="color: #555555;">) || !</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">]-&gt;</span>role<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">canAccess</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">)){</span>
        <span style="color: #ff3030;">throw new</span> <span style="color: #d11ced;">AccessDeniedException</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"Access denied: "</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">);</span>
      <span style="color: #555555;">}</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
      <span style="color: #ff3030;">throw new</span> <span style="color: #d11ced;">FileNotFoundException</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"File Not Found: "</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getContent</span><span style="color: #555555;">(){</span>
    EventManager<span style="color: #555555;">::</span><span style="color: #d11ced;">raiseEvent</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"content_top"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"."</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>editor<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">display</span><span style="color: #555555;">();</span>
    EventManager<span style="color: #555555;">::</span><span style="color: #d11ced;">raiseEvent</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"content_bottom"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"."</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">);</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getOwner</span><span style="color: #555555;">(){</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>owner<span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$alias</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadField</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT alias FROM {'dbprefix'}pages </span>
<span style="color: #1861a7;">                                          WHERE id = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>ownerid<span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$alias</span><span style="color: #555555;">){</span>
        <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>owner <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Page</span><span style="color: #555555;">();</span>
        <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>owner<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">loadProperties</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$alias</span><span style="color: #555555;">);</span>
      <span style="color: #555555;">}</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>owner<span style="color: #555555;">;</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getBreadcrumb</span><span style="color: #555555;">(){</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>owner<span style="color: #555555;">)</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getOwner</span><span style="color: #555555;">();</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>owner<span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$breadcrump</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>owner<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getBreadcrumb</span><span style="color: #555555;">();</span>
    <span style="color: #555555;">}</span>
    <span style="color: #0000ff;">$breadcrump</span><span style="color: #555555;">[] =</span> <span style="color: #ff3030;">array</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">,</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>title<span style="color: #555555;">);</span>
    <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$breadcrump</span><span style="color: #555555;">;</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">save</span><span style="color: #555555;">(){</span>
    <span style="color: #0000ff;">$title</span>   <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>title<span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$alias</span>   <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$menu</span>    <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>menu<span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$id</span>      <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>id<span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$editorContent</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>editorContent<span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"UPDATE {'dbprefix'}pages SET</span>
<span style="color: #1861a7;">                                    title    = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$title</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"',</span>
<span style="color: #1861a7;">                                    alias    = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$alias</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"',</span>
<span style="color: #1861a7;">                                    menu     = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$menu</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' ,</span>
<span style="color: #1861a7;">                                    content  = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$editorContent</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' </span>
<span style="color: #1861a7;">                                    WHERE id = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$id</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>meta<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">save</span><span style="color: #555555;">();</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$res</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'title'</span><span style="color: #555555;">]   =</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>title<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'alias'</span><span style="color: #555555;">]   =</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'menu'</span><span style="color: #555555;">]    =</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>menu<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'id'</span><span style="color: #555555;">]      =</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>id<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'content'</span><span style="color: #555555;">] =</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>content<span style="color: #555555;">;</span>
      EventManager<span style="color: #555555;">::</span><span style="color: #d11ced;">raiseEvent</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"page_saved"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"../"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$args</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">create</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$dirpraefix</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$alias</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$editor</span><span style="color: #555555;">){</span>
    <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"INSERT INTO {'dbprefix'}pages (alias,editor) VALUES ('"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$alias</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"','"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$editor</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"')"</span><span style="color: #555555;">);</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$res</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$res</span>            <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">InsertID</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'id'</span><span style="color: #555555;">]     =</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'editor'</span><span style="color: #555555;">] =</span> <span style="color: #0000ff;">$editor</span><span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'alias'</span><span style="color: #555555;">]  =</span> <span style="color: #0000ff;">$alias</span><span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$admin</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Role</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$admin</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #32ba06;">2</span><span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$admin</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">allowAccessByID</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'id'</span><span style="color: #555555;">]);</span>
      EventManager<span style="color: #555555;">::</span><span style="color: #d11ced;">raiseEvent</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"page_created"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"../"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$args</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'id'</span><span style="color: #555555;">];</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">delete</span><span style="color: #555555;">(){</span>
    <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"DELETE FROM {'dbprefix'}pages WHERE alias = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">);</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$res</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'alias'</span><span style="color: #555555;">] =</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">;</span>
      EventManager<span style="color: #555555;">::</span><span style="color: #d11ced;">raiseEvent</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"page_deleted"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"../"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$args</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getPagesTypes</span><span style="color: #555555;">(){</span>
    <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadRows</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT * FROM {'dbprefix'}pagetypes"</span><span style="color: #555555;">);</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">displayBreadcrumb</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$separator</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$class</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$idpraefix</span><span style="color: #555555;">){</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>editor<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">displayBreadcrumb</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$separator</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$class</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$idpraefix</span><span style="color: #555555;">);</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">static function</span> <span style="color: #d11ced;">getPagesByDir</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$dir</span><span style="color: #555555;">){</span>
    <span style="color: #0000ff;">$dir</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$dir</span><span style="color: #555555;">);</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$dir</span><span style="color: #555555;">,</span><span style="color: #32ba06;">0</span><span style="color: #555555;">,</span><span style="color: #32ba06;">1</span><span style="color: #555555;">) ==</span> <span style="color: #1861a7;">"/"</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$dir</span> <span style="color: #555555;">=</span> <span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$dir</span><span style="color: #555555;">,</span><span style="color: #32ba06;">1</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadRows</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT * FROM {'dbprefix'}pages </span>
<span style="color: #1861a7;">                           WHERE alias LIKE '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$dir</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"%'"</span><span style="color: #555555;">);</span>

  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">getEditorContent</span><span style="color: #555555;">(</span>Editor <span style="color: #0000ff;">$editor</span><span style="color: #555555;">){</span>
    <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>editorContent<span style="color: #555555;">;</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">setEditorContent</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$content</span><span style="color: #555555;">){</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>editorContent <span style="color: #555555;">=</span> <span style="color: #0000ff;">$content</span><span style="color: #555555;">;</span>
  <span style="color: #555555;">}</span>
<span style="color: #555555;">}</span>

?<span style="color: #555555;">&gt;</span></pre>
<p>Die Klasse <strong>/system/classes/wysiwyg.php</strong> kann nun sehr verkleinert werden. Wir brauchen keinen Dateizugriff und können einfach auf die eben hinzugefügte Variable zurückgreifen:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> WYSIWYG <span style="color: #ff3030;">extends</span> Editor<span style="color: #555555;">{</span>
    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">__construct</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$page</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page <span style="color: #555555;">=</span> <span style="color: #0000ff;">$page</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">display</span><span style="color: #555555;">(){</span>
      <span style="color: #ff3030;">echo</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getEditorContent</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getHeader</span><span style="color: #555555;">(){</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">getEditableCode</span><span style="color: #555555;">(){</span>
        <span style="color: #0000ff;">$template</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Template</span><span style="color: #555555;">();</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"control_wysiwyg"</span><span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"CONTENT"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getEditorContent</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">));</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"HOST"</span><span style="color: #555555;">,</span>Settings<span style="color: #555555;">::</span><span style="color: #d11ced;">getInstance</span><span style="color: #555555;">()-&gt;</span><span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"host"</span><span style="color: #555555;">));</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"ALIAS"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page<span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"URL"</span><span style="color: #555555;">,</span>Settings<span style="color: #555555;">::</span><span style="color: #d11ced;">getInstance</span><span style="color: #555555;">()-&gt;</span><span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"host"</span><span style="color: #555555;">).</span><span style="color: #1861a7;">"admin/pageedit.html?site="</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page<span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">);</span>
        <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getCode</span><span style="color: #555555;">();</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">save</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$newPage</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$oldPage</span><span style="color: #555555;">){</span>
        <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page <span style="color: #555555;">=</span> <span style="color: #0000ff;">$newPage</span><span style="color: #555555;">;</span>
        <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">setEditorContent</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'content'</span><span style="color: #555555;">]);</span>
        <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">save</span><span style="color: #555555;">();</span>
    <span style="color: #555555;">}</span>

  <span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Im Installer habe ich alle benötigten Inhalte in die content-Spalte eingetragen und die Dateien gelöscht (Verzeichnisse müssen erstmal noch dableiben, kommen aber auch bald weg). Außerdem habe ich Verweise auf das alte Backend gelöscht, was eine Änderung in den PageIDs ergab. Diese musste dann in den Menüs übernommen werden, so dass doch relativ viele Änderungen zusammenkamen. Deswegen bitte ich aus diesem Grund hoffentlich fürs letzte Mal um eine Neuinstallation. Alle Änderungen stehen in Revistion <a href="http://code.google.com/p/contentlion/source/detail?r=65" target="_self">65</a>.</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/a0t8xOjgRk4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/09/seiten-in-datenbank-speichern-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/09/seiten-in-datenbank-speichern-cms/</feedburner:origLink></item>
		<item>
		<title>Übersetzung der Datenbankeinträge (CMS)</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/2YZLgBInFs4/</link>
		<comments>http://blog.stevieswebsite.de/2010/09/ubersetzung-der-datenbankeintrage-cms/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 15:52:20 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[CMS Tutorial]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6360</guid>
		<description><![CDATA[Da ich jetzt wieder einen neuen Testserver hab kann es mit ContentLion weitergehen Und zwar haben wir unsere englische Übersetzung noch nicht vollständig umgesetzt. Der Hauptpunkt dabei sind die Datenbankeinträge. Hier könnte man theoretisch eine Lang-Spalte anlegen und sich immer die Einträge ziehen, die der aktuellen Sprache entsprechen. Ich habe mich für einen anderen Weg [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fubersetzung-der-datenbankeintrage-cms%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fubersetzung-der-datenbankeintrage-cms%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Da ich jetzt wieder einen neuen Testserver hab kann es mit ContentLion weitergehen <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Und zwar haben wir unsere englische Übersetzung noch nicht vollständig umgesetzt. Der Hauptpunkt dabei sind die Datenbankeinträge. Hier könnte man theoretisch eine Lang-Spalte anlegen und sich immer die Einträge ziehen, die der aktuellen Sprache entsprechen.<span id="more-6360"></span></p>
<p>Ich habe mich für einen anderen Weg entschieden. Wie ihr alle wisst, können wir in den Templates über das Lang-Tag auf Übersetzungen zurückgreifen. So zum Beispiel {LANG:PAGE}. Diese Tags möchte ich in der Datenbank verwenden und ich gehe noch weiter und übersetze diese bereits in der MySQL-Klasse!</p>
<p>Da wir die Zeilen als Objekte zurückgeben, müssen wir alle Eigenschaften durchlaugen und nach LANG-Tags durchsuchen. Diese Funktion habe ich in die Language-Klasse eingebaut, weil man somit später auch Objekte außerhalb der Datenbank leicht übersetzten kann.  Hierfür musste auch ich meine PHP-Kenntnisse ein wenig erarbeiten. Vorab schonmal der neuen Funktion replaceLanguageTokensByObject der Klasse <strong>/system/classes/language.php</strong>:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';">    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">replaceLanguageTokensByObject</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$obj</span><span style="color: #555555;">){</span>
      <span style="color: #ff3030;">foreach</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$obj</span> <span style="color: #ff3030;">as</span> <span style="color: #0000ff;">$key</span> <span style="color: #555555;">=&gt;</span> <span style="color: #0000ff;">$value</span><span style="color: #555555;">) {</span>
        <span style="color: #d11ced;">preg_match_all</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"/{LANG:(.+)}/"</span><span style="color: #555555;">,</span> <span style="color: #0000ff;">$value</span><span style="color: #555555;">,</span> <span style="color: #0000ff;">$tokens</span><span style="color: #555555;">,</span> PREG_SET_ORDER<span style="color: #555555;">);</span>
        <span style="color: #ff3030;">foreach</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$tokens</span> <span style="color: #ff3030;">as</span> <span style="color: #0000ff;">$token</span><span style="color: #555555;">){</span>
          <span style="color: #0000ff;">$translation</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'language'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">getString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$token</span><span style="color: #555555;">[</span><span style="color: #32ba06;">1</span><span style="color: #555555;">]);</span>
          <span style="color: #0000ff;">$obj</span><span style="color: #555555;">-&gt;{</span><span style="color: #0000ff;">$key</span><span style="color: #555555;">} =</span> <span style="color: #d11ced;">str_ireplace</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$token</span><span style="color: #555555;">[</span><span style="color: #32ba06;">0</span><span style="color: #555555;">],</span><span style="color: #0000ff;">$translation</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$obj</span><span style="color: #555555;">-&gt;{</span><span style="color: #0000ff;">$key</span><span style="color: #555555;">});</span>
        <span style="color: #555555;">}</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$obj</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span></pre>
<p>Zunächst einmal kann man die Eigenschaften mit einer ganz normalen foreach-Schleife durchlaufen. $key ist der Name der Eigenschaft und $value logischerweise der Wert. mit den geschweiften Klammern können wir die Eigenschaft über einen String abfragen. Der Rest ist bereits aus anderen Teilen der Language-Klasse bekannt.</p>
<p>In der Datenbankklasse habe ich diese Funktionalität in den derzeit benötigten Abfragen eingebaut. Später muss noch ReadField folgen. Außerdem muss es auch möglich sein, Ausnamen zu definieren, aber das machen wir erst, wenn es wirklich benötigt wird. Hier ist der neue Code der Klasse <strong>/system/classes/mysql.php</strong>:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> MySQL <span style="color: #ff3030;">extends</span> DataBase<span style="color: #555555;">{</span>
    <span style="color: #ff3030;">private</span> <span style="color: #0000ff;">$connection</span><span style="color: #555555;">;</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">){</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>connection<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">query</span><span style="color: #555555;">(</span><span style="color: #d11ced;">str_replace</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"{'dbprefix'}"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>Prefix<span style="color: #555555;">,</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">));</span>
    <span style="color: #555555;">}</span> 

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">GetTables</span><span style="color: #555555;">(){</span>
      <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span>  <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>connection<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">query</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SHOW TABLES"</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">while</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$row</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">fetch_row</span><span style="color: #555555;">()){</span>
        <span style="color: #0000ff;">$tables</span><span style="color: #555555;">[] =</span> <span style="color: #0000ff;">$row</span><span style="color: #555555;">[</span><span style="color: #32ba06;">0</span><span style="color: #555555;">];</span>
      <span style="color: #555555;">}</span>
      <span style="color: #d11ced;">sort</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$tables</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$tables</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">GetColumns</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$table</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$mysqlres</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SHOW COLUMNS FROM "</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$table</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">while</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$row</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$mysqlres</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">fetch_object</span><span style="color: #555555;">()){</span>
        <span style="color: #0000ff;">$res</span><span style="color: #555555;">[] =</span> <span style="color: #0000ff;">$row</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">ReadField</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$row</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">fetch_row</span><span style="color: #555555;">();</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$row</span><span style="color: #555555;">[</span><span style="color: #32ba06;">0</span><span style="color: #555555;">];</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">ReadRow</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'language'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">replaceLanguageTokensByObject</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$res</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">fetch_object</span><span style="color: #555555;">());</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">ReadRows</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">array</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$mysqlRes</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">while</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$row</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$mysqlRes</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">fetch_object</span><span style="color: #555555;">()){</span>
        <span style="color: #0000ff;">$row</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'language'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">replaceLanguageTokensByObject</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$row</span><span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$res</span><span style="color: #555555;">[] =</span> <span style="color: #0000ff;">$row</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">InsertID</span><span style="color: #555555;">(){</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>connection<span style="color: #555555;">-&gt;</span>insert_id<span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$text</span><span style="color: #555555;">){</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>connection<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">real_escape_string</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$text</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">Connect</span><span style="color: #555555;">(){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>connection <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">mysqli</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>Host<span style="color: #555555;">,</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>User<span style="color: #555555;">,</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>Password<span style="color: #555555;">,</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>Name<span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">Disconnect</span><span style="color: #555555;">(){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>connection<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">close</span><span style="color: #555555;">();</span>
    <span style="color: #555555;">}</span>
  <span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Ich bin dann heute die Komplette Datenbank durchgegangen und habe alles übersetzt. Bereits bestehende Übersetzungen mussten leicht verändert werden. Da so gut wie alle MySQL- und SQLite Datenbankeinträge geändert wurden, solltet ihr das komplette System neu installieren. Ich werde kein Update bereitstellen, aber ihr könnt alternativ auch die Einzelnen änderungen in Revision <a href="http://code.google.com/p/contentlion/source/detail?r=62" target="_self">62</a> und <a href="http://code.google.com/p/contentlion/source/detail?r=63" target="_self">63</a> abarbeiten.</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/2YZLgBInFs4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/09/ubersetzung-der-datenbankeintrage-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/09/ubersetzung-der-datenbankeintrage-cms/</feedburner:origLink></item>
		<item>
		<title>Ubuntu Server Installation auf VirtualBox Teil 3</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/agP7o9rw3h8/</link>
		<comments>http://blog.stevieswebsite.de/2010/09/ubuntu-server-installation-auf-virtualbox-teil-3/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 20:49:02 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Virtualisierung]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6325</guid>
		<description><![CDATA[Stehengeblieben sind wir im vorherigen Teil des Tutoirals beim Erstellen der Partitionierung. Und direkt zum dritten Teil dürfen wir uns ausruhen! Denn erstmal muss das Dateisystem erzeugt werden: Als nächstes ist das Grundsystem an der Reihe: Hier kannst du deinen Benutzernamen eingeben.  Da ich Stefan heiße, habe ich den bei mir auch &#8220;stefan&#8221; genannt: Als [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fubuntu-server-installation-auf-virtualbox-teil-3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fubuntu-server-installation-auf-virtualbox-teil-3%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Stehengeblieben sind wir im vorherigen Teil des Tutoirals beim Erstellen der Partitionierung. Und direkt zum dritten Teil dürfen wir uns ausruhen! Denn erstmal muss das Dateisystem erzeugt werden:<span id="more-6325"></span></p>
<div id="attachment_6327" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/30_ubuntu_partitionierung_laden3.png"><img class="size-full wp-image-6327  " title="Erzeugen des Dateisystems" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/30_ubuntu_partitionierung_laden3.png" alt="Erzeugen des Dateisystems" width="448" height="336" /></a><p class="wp-caption-text">Erzeugen des Dateisystems</p></div>
<p>Als nächstes ist das Grundsystem an der Reihe:</p>
<div id="attachment_6331" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/31_ubuntu_installation_grundsystem.png"><img class="size-full wp-image-6331 " title="Installation Grundsystem" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/31_ubuntu_installation_grundsystem.png" alt="Installation Grundsystem" width="448" height="336" /></a><p class="wp-caption-text">Installation Grundsystem</p></div>
<p>Hier kannst du deinen Benutzernamen eingeben.  Da ich Stefan heiße, habe ich den bei mir auch &#8220;stefan&#8221; genannt:</p>
<div id="attachment_6333" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/32_ubuntu_installation_benutzer.png"><img class="size-full wp-image-6333 " title="Benutzernamen eingeben" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/32_ubuntu_installation_benutzer.png" alt="Benutzernamen eingeben" width="448" height="336" /></a><p class="wp-caption-text">Benutzernamen eingeben</p></div>
<p>Als Nächstes musst du dein Passwort eingeben. Da es sich bei mir nur um einen Testserver für ein OpenSource System handelt, habe ich einfach mal &#8220;geheim&#8221; genannt. Bei produktiven Systemen solltest du selbstverständlich ein weitaus komplizierteres Passwort nehmen:</p>
<div id="attachment_6335" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/33_ubuntu_installation_passwort.png"><img class="size-full wp-image-6335 " title="Passwort eingeben" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/33_ubuntu_installation_passwort.png" alt="Passwort eingeben" width="448" height="336" /></a><p class="wp-caption-text">Passwort eingeben</p></div>
<div id="attachment_6337" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/34_ubuntu_installation_passwort_bestätigen.png"><img class="size-full wp-image-6337 " title="Passwort bestätigen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/34_ubuntu_installation_passwort_bestätigen.png" alt="Passwort bestätigen" width="448" height="336" /></a><p class="wp-caption-text">Passwort bestätigen</p></div>
<p>An dieser Stelle hast du die Möglichkeit, deinen persöhnlichen Ordner zu verschlüsseln. Da es bei meinem Rechner immer noch um einen Testrechner handelt und ich meinen persögnlichen Ordner sowieso nicht verwenden werde, ist auch keine Verschlüsselung nötig.</p>
<div id="attachment_6339" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/35_ubuntu_installation_verschluesseln.png"><img class="size-full wp-image-6339 " title="Persöhnlichen Ordner verschlüsseln" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/35_ubuntu_installation_verschluesseln.png" alt="Persöhnlichen Ordner verschlüsseln" width="448" height="336" /></a><p class="wp-caption-text">Persöhnlichen Ordner verschlüsseln</p></div>
<p>Als Nächstes können wir für den <a href="http://wiki.kubuntu-de.org/Konfiguration/Programme_installieren/Paketmanagement" target="_self">Paketmanager</a> einen Proxy-Server auswählen. Da ich keinen habe, kann ich das einfach leer lassen.</p>
<div id="attachment_6341" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/36_ubuntu_installation_paketmanager.png"><img class="size-full wp-image-6341 " title="Paketmanager - Proxy Server einrichten" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/36_ubuntu_installation_paketmanager.png" alt="Paketmanager - Proxy Server einrichten" width="448" height="336" /></a><p class="wp-caption-text">Paketmanager - Proxy-Server einrichten</p></div>
<div id="attachment_6343" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/37_ubuntu_installation_apt_konfiguieren.png"><img class="size-full wp-image-6343 " title="APT konfigurieren" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/37_ubuntu_installation_apt_konfiguieren.png" alt="APT konfigurieren" width="448" height="336" /></a><p class="wp-caption-text">APT konfigurieren</p></div>
<p>Wähle aus, wie deine Software aktualisiert werden soll. Ich habe mich für die automatische Aktualisierung entschieden:</p>
<div id="attachment_6345" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/38_ubuntu_installation_software_auswaehlen.png"><img class="size-full wp-image-6345 " title="Aktualisierungen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/38_ubuntu_installation_software_auswaehlen.png" alt="Aktualisierungen" width="448" height="336" /></a><p class="wp-caption-text">Aktualisierungen</p></div>
<div id="attachment_6347" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/39_ubuntu_installation_software_auswaehlen_laden.png"><img class="size-full wp-image-6347 " title="Bitte warten..." src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/39_ubuntu_installation_software_auswaehlen_laden.png" alt="Bitte warten..." width="448" height="336" /></a><p class="wp-caption-text">Bitte warten...</p></div>
<p>Jetzt kommt ein sehr spannender Teil der Installation: Man kann sofort Softwarepakete installieren. Für unseren Fall ist Lamp eine gute Wahl! Ausgewählt wird mit der Leertaste (ich habe bei meiner Installation versehentlich Enter gedrückt, so dass ich Lamp später nachinstallieren durfte):</p>
<div id="attachment_6349" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/40_ubuntu_installation_softwareauswahl.png"><img class="size-full wp-image-6349 " title="Softwahlauswahl Ubuntu Server" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/40_ubuntu_installation_softwareauswahl.png" alt="Softwahlauswahl Ubuntu Server" width="448" height="336" /></a><p class="wp-caption-text">Softwahlauswahl Ubuntu Server</p></div>
<div id="attachment_6351" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/41_ubuntu_softwareinstallation.png"><img class="size-full wp-image-6351 " title="Bitte warten..." src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/41_ubuntu_softwareinstallation.png" alt="Bitte warten..." width="448" height="336" /></a><p class="wp-caption-text">Bitte warten...</p></div>
<p>Jetzt wirst du gefragt, ob du dem Grub-Loader im Master Boot Record installieren möchtest. Das bedeutet, ob das System als erstes starten sollte. Da wir nur ein Betriebssystem auf unserem virtuellen Rechner haben, kannst du diese Frage getrost mit ja beantrorten:</p>
<div id="attachment_6353" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/42_ubuntu_grub-pc.png"><img class="size-full wp-image-6353 " title="Grub PC" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/42_ubuntu_grub-pc.png" alt="Grub PC" width="448" height="336" /></a><p class="wp-caption-text">Grub PC</p></div>
<p>Mit dem nächstem Klick schließt du die Installation ab und beendest damit erfolgreich das Tutorial. Herzlichen Glückwunsch!</p>
<div id="attachment_6355" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/43_ubuntu_installation_beenden.png"><img class="size-full wp-image-6355 " title="Installation beenden" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/43_ubuntu_installation_beenden.png" alt="Installation beenden" width="448" height="336" /></a><p class="wp-caption-text">Installation beenden</p></div>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/agP7o9rw3h8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/09/ubuntu-server-installation-auf-virtualbox-teil-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/09/ubuntu-server-installation-auf-virtualbox-teil-3/</feedburner:origLink></item>
		<item>
		<title>Teamwork für bessere Artikel</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/qxEAcSzlExw/</link>
		<comments>http://blog.stevieswebsite.de/2010/09/teamwork-fur-bessere-artikel/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 17:00:16 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Bloggen]]></category>
		<category><![CDATA[blogger]]></category>
		<category><![CDATA[korrektur lesen]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6305</guid>
		<description><![CDATA[Vier Augen sehen mehr als Zwei &#8211; Beim Bloggen können dir immer wieder kleine Fehler passieren. Das können ganz normale Grammatik- oder Rechtschreibfehler sein. Aber auch größere Fehler, wie zum Beispiel falsche Logik sind relativ beliebt. Leider erkennt man selbst nicht jeden Fehler, da man zum Beispiel immer darüber hinwegliest oder schlicht und einfach davon [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fteamwork-fur-bessere-artikel%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F09%2Fteamwork-fur-bessere-artikel%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Vier Augen sehen mehr als Zwei &#8211; Beim Bloggen können dir immer wieder kleine Fehler passieren. Das können ganz normale Grammatik- oder Rechtschreibfehler sein. Aber auch größere Fehler, wie zum Beispiel falsche Logik sind relativ beliebt. Leider erkennt man selbst nicht jeden Fehler, da man zum Beispiel immer darüber hinwegliest oder schlicht und einfach davon ausgegangen ist, dass es gar kein Fehler ist.<span id="more-6305"></span></p>
<p>Wäre es nicht schön, wenn wir Blogger einen Lektor hätten, der vor dem Veröffentlichen eines Artikels nocheinmal Korrektur liest? Dieser Lektor sollte sich im Thema auskennen, aber auch so vertrauenswürdig sein, dass er nicht einfach die Artikelidee stiehlt.</p>
<div id="attachment_6312" class="wp-caption alignright" style="width: 237px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/korrektur-lesen.jpg"><img class="size-full wp-image-6312 " title="Korrektur Lesen für bessere Artikel" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/09/korrektur-lesen.jpg" alt="Korrektur Lesen für bessere Artikel" width="227" height="140" /></a><p class="wp-caption-text">Korrektur Lesen für bessere Artikel</p></div>
<p>Für dieses Problem habe ich mir eine Lösung ausgedacht, die nur funktioniert, wenn auch viele Blogger mitmachen. Und zwar platziert einfach jeder Blogger, der sich als Lektor anbietet ungefähr Folgendes im Footer oder in der Sidebar seines Blogs:</p>
<p style="padding-left: 30px;">Ich biete mich als Lektor für deine Blog-Artikel an. Sende mir einfach deinen Artikel und ich korrigiere ihn.</p>
<p>Unter den jeweiligen Artikeln wird dann als Dankeschön ein Link zurück zum Lektoren-Blog gesetzt. So hat der Artikel-Schreiber einen hochwertigeren Artikel und der Lektor einen (themenrelevanten) Backlink.</p>
<p>Wer mitmachen will, kann sich gerne im Kommentar melden, so hat man schon mal erste Anlaufquellen. Meinen Lektor-Satz werde ich dann gleich mal im Footer platzieren.</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/qxEAcSzlExw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/09/teamwork-fur-bessere-artikel/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/09/teamwork-fur-bessere-artikel/</feedburner:origLink></item>
		<item>
		<title>Ubuntu Server Installation auf VirtualBox Teil 2</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/05ORzk4-1sk/</link>
		<comments>http://blog.stevieswebsite.de/2010/08/ubuntu-server-installation-auf-virtualbox-teil-2/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 17:15:13 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Virtualisierung]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6264</guid>
		<description><![CDATA[In diesem Beitrag setzen wir die Installation des Ubuntu Servers auf VirtualBox vor. Gestern haben wir bereits eine neue virtuelle Maschine angelegt und heute kümmern wir uns um die Installation von Ubuntu selbst. Zu nächst einmal müssen wir die Sprache wählen. Da ich Deutsch am Besten verstehe, habe ich natürlich das genommen: Wenn du nun [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fubuntu-server-installation-auf-virtualbox-teil-2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fubuntu-server-installation-auf-virtualbox-teil-2%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>In diesem Beitrag setzen wir die Installation des Ubuntu Servers auf VirtualBox vor. Gestern haben wir bereits eine neue <a href="http://blog.stevieswebsite.de/2010/08/ubuntu-server-installation-auf-virtualbox/" target="_self">virtuelle Maschine angelegt</a> und heute kümmern wir uns um die Installation von Ubuntu selbst.</p>
<p>Zu nächst einmal müssen wir die Sprache wählen. Da ich Deutsch am Besten verstehe, habe ich natürlich das genommen:<span id="more-6264"></span></p>
<div id="attachment_6268" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/15_ubuntu_sprache.png"><img class="size-full wp-image-6268   " title="Sprache auswählen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/15_ubuntu_sprache.png" alt="Sprache auswählen" width="448" height="336" /></a><p class="wp-caption-text">Sprache auswählen</p></div>
<p>Wenn du nun den Hauptbildschirm siehst, kannst du die Installation starten:</p>
<div id="attachment_6271" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/17_ubuntu_installation_uebersicht.png"><img class="size-full wp-image-6271 " title="Hauptbildschirm Ubuntu Installation" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/17_ubuntu_installation_uebersicht.png" alt="Hauptbildschirm Ubuntu Installation" width="448" height="336" /></a><p class="wp-caption-text">Hauptbildschirm Ubuntu Installation</p></div>
<p>Als nächstes möchte Ubuntu von dir die Region wissen, in der du wohnst. Wenn du eben Deutsch gewählt hast, kannst du hier Deutschland, Österreich &amp; Co auswählen:</p>
<div id="attachment_6273" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/18_ubuntu_installation_sprachgebiet.png"><img class="size-full wp-image-6273 " title="Sprachgebiet anpassen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/18_ubuntu_installation_sprachgebiet.png" alt="Sprachgebiet anpassen" width="448" height="336" /></a><p class="wp-caption-text">Sprachgebiet anpassen</p></div>
<p>Als nächstes wirst du geben, das Tastaturmodell anzugeben:</p>
<div id="attachment_6275" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/18_ubuntu_installation_tastaturmodell.png"><img class="size-full wp-image-6275 " title="Tastaturmodell Hinweis" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/18_ubuntu_installation_tastaturmodell.png" alt="Tastaturmodell Hinweis" width="448" height="336" /></a><p class="wp-caption-text">Tastaturmodell Hinweis</p></div>
<p>Um den Typ zu bestimmen musst du einfach die oben eingeblendeten Tasten nacheinander eingeben. Dort erkennt Ubuntu zum Beispiel an der Position des &#8220;y&#8221; welches Modell du benutzt:</p>
<div id="attachment_6276" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/18_ubuntu_installation_tastaturmodell_test.png"><img class="size-full wp-image-6276 " title="Tastatur Test" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/18_ubuntu_installation_tastaturmodell_test.png" alt="Tastatur Test" width="448" height="336" /></a><p class="wp-caption-text">Tastatur Test</p></div>
<p>Jetzt fängt so langsam das Warten an:</p>
<div id="attachment_6278" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/19_ubuntu_hardware_erkennung.png"><img class="size-full wp-image-6278 " title="Hardware Erkennung" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/19_ubuntu_hardware_erkennung.png" alt="Hardware Erkennung" width="448" height="336" /></a><p class="wp-caption-text">Hardware Erkennung</p></div>
<div id="attachment_6280" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/20_ubuntu_module.png"><img class="size-full wp-image-6280 " title="Komponenten werden geladen..." src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/20_ubuntu_module.png" alt="Komponenten werden geladen..." width="448" height="336" /></a><p class="wp-caption-text">Komponenten werden geladen...</p></div>
<p>Nun musst du deinem Rechner einen Namen fürs Netzwerk geben. Ich habe meinen contentliontest genannt, aber wenn du das System einfach nur testen möchtest, kannst du es einfach bei ubuntu belassen:</p>
<div id="attachment_6282" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/21_ubuntu_netzwerk.png"><img class="size-full wp-image-6282 " title="Rechnername" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/21_ubuntu_netzwerk.png" alt="Rechnername" width="448" height="336" /></a><p class="wp-caption-text">Rechnername</p></div>
<p>Die Zeitzone wurde bei mir erfolgreich erkannt:</p>
<div id="attachment_6284" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/22_ubuntu_uhr.png"><img class="size-full wp-image-6284 " title="Zeitzone erkannt" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/22_ubuntu_uhr.png" alt="Zeitzone erkannt" width="448" height="336" /></a><p class="wp-caption-text">Zeitzone erkannt</p></div>
<p>Und wieder warten&#8230;</p>
<div id="attachment_6286" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/23_ubuntu_partitionierung_laden.png"><img class="size-full wp-image-6286 " title="Partitionierungsprogramm laden" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/23_ubuntu_partitionierung_laden.png" alt="Partitionierungsprogramm laden" width="448" height="336" /></a><p class="wp-caption-text">Partitionierungsprogramm laden</p></div>
<p>Weiter geht&#8217;s mit der Partitionierung. Hier kann die virtuelle Festplatte unterteilt werden. Da wir sowieso beliebig viele virtuelle Laufwerke anlegen können, können wir die komplette Festplatte mit <a href="http://wiki.ubuntuusers.de/Logical_Volume_Manager" target="_self">LVM</a> nehmen.</p>
<div id="attachment_6288" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/24_ubuntu_partitionierung.png"><img class="size-full wp-image-6288 " title="Partitionierung wählen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/24_ubuntu_partitionierung.png" alt="Partitionierung wählen" width="448" height="336" /></a><p class="wp-caption-text">Partitionierung wählen</p></div>
<div id="attachment_6292" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/25_ubuntu_partitionierung_bestaetigen.png"><img class="size-full wp-image-6292  " title="Bestätigen..." src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/25_ubuntu_partitionierung_bestaetigen.png" alt="Bestätigen..." width="448" height="336" /></a><p class="wp-caption-text">Bestätigen...</p></div>
<div id="attachment_6294" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/26_ubuntu_partitionierung_lvm.png"><img class="size-full wp-image-6294 " title="Nochmals bestätigen..." src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/26_ubuntu_partitionierung_lvm.png" alt="Nochmal bestätigen..." width="448" height="336" /></a><p class="wp-caption-text">Nochmal bestätigen...</p></div>
<p>ALs nächstes kannst du angeben, wie viel der Festplatte du nutzen möchtest. Ich denke hier ist &#8220;max&#8221; die richtige Antwort, denn bei einer Partition macht der Rest keinen Sinn.</p>
<div id="attachment_6297" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/27_ubuntu_partitionierung_groesse.png"><img class="size-full wp-image-6297 " title="Partionierungsgröße" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/27_ubuntu_partitionierung_groesse.png" alt="Partionierungsgröße" width="448" height="336" /></a><p class="wp-caption-text">Partionierungsgröße</p></div>
<div id="attachment_6299" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/28_ubuntu_partitionierung_laden_2.png"><img class="size-full wp-image-6299 " title="Bitte warten..." src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/28_ubuntu_partitionierung_laden_2.png" alt="Bitte warten..." width="448" height="336" /></a><p class="wp-caption-text">Bitte warten...</p></div>
<div id="attachment_6301" class="wp-caption alignnone" style="width: 458px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/29_ubuntu_partitionierung_uebersicht.png"><img class="size-full wp-image-6301 " title="Übersicht Partitionierungseinstellungen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/29_ubuntu_partitionierung_uebersicht.png" alt="Übersicht Partitionierungseinstellungen" width="448" height="336" /></a><p class="wp-caption-text">Übersicht Partitionierungseinstellungen</p></div>
<p>Der nächste Teil kommt in Kürze, bis dahin kannst du einfach den Zustand der Maschine speichern.</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/05ORzk4-1sk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/08/ubuntu-server-installation-auf-virtualbox-teil-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/08/ubuntu-server-installation-auf-virtualbox-teil-2/</feedburner:origLink></item>
		<item>
		<title>Ubuntu Server Installation auf VirtualBox</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/pXbo505aL1U/</link>
		<comments>http://blog.stevieswebsite.de/2010/08/ubuntu-server-installation-auf-virtualbox/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 16:10:30 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6219</guid>
		<description><![CDATA[Ich benutze virtuelle Server, um meine Projekte, wie zum Beispiel ContentLion zu testen, ohne meinen Rechner mit XAMPP oder Ähnlichem auszustatten. Heute zeige ich dir, wie man den Ubuntu Server (Linux-Betriebssystem) auf VirtualBox installieren kann. Ich habe mich für ein Linux-System entschieden, da man auch für virtuelle Rechner eine Lizenz benötigt und ich keine Lust [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fubuntu-server-installation-auf-virtualbox%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fubuntu-server-installation-auf-virtualbox%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Ich benutze virtuelle Server, um meine Projekte, wie zum Beispiel ContentLion zu testen, ohne meinen Rechner mit XAMPP oder Ähnlichem auszustatten. Heute zeige ich dir, wie man den Ubuntu Server (Linux-Betriebssystem) auf VirtualBox installieren kann.<span id="more-6219"></span></p>
<p>Ich habe mich für ein Linux-System entschieden, da man auch für virtuelle Rechner eine Lizenz benötigt und ich keine Lust habe für einen Testserver extra eine Windows-Lizenz zu kaufen. Außerdem kann man über Ubuntu sogar direkt bei der Installation Lamp mitinstallieren.</p>
<p>Mit VirtualBox kannst du mehrere virtuelle Rechner auf einem echten Rechner installieren. Somit kannst du deine Porjkte gut voneinander trennen und musst auch nicht alles immer gestartet haben. Der Schritt Eins ist also die <a href="http://www.virtualbox.org/wiki/Downloads" target="_self">Installation von VirtualBox</a>.</p>
<p>Wenn du damit fertig ist, benötigst du die Installation von Ubuntu Server. Ubuntu Server ist, wie der Name schon sagt, speziell für Server ausgelegt. Er besitzt keine grafische Oberfläche. Wenn du nicht darauf verzichten kannst, kannst du auch das <a href="http://blog.stevieswebsite.de/2009/08/virtuellen-server-erstellen-mit-virtualbox/" target="_self">normale Ubuntu installieren</a>.</p>
<p>Lade dir die Server-Installation als iso (CD) hier herunter:</p>
<p><a href="http://www.ubuntu.com/server/get-ubuntu/download" target="_self">http://www.ubuntu.com/server/get-ubuntu/download</a></p>
<p>Um die Iso, ohne sie auf eine CD zu brennen zu nutzen, kannst du mir <a href="http://www.chip.de/downloads/Daemon-Tools-Lite_37592200.html" target="_self">Daemon Tool</a>s installieren. So habe auch ich das bei meiner Installation gemacht.</p>
<p>Hast du all das gemacht, kann es endlich los gehen! Wenn du VirtualBox startest, kommst auf  folgende Übersicht (ähnlich der Abbildung):</p>
<div id="attachment_6226" class="wp-caption alignnone" style="width: 452px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/1_virtualbox_uebersicht.png"><img class="size-large wp-image-6226   " title="VirtualBox Übersicht" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/1_virtualbox_uebersicht-1024x819.png" alt="VirtualBox Übersicht" width="442" height="354" /></a><p class="wp-caption-text">VirtualBox Übersicht</p></div>
<p>Nach dem Klick auf &#8220;Neu&#8221; kann das Erstellen der Maschine beginnen:</p>
<div id="attachment_6230" class="wp-caption alignnone" style="width: 410px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/2_virtualbox_neu.png"><img class="size-full wp-image-6230 " title="Neue Maschine erstellen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/2_virtualbox_neu.png" alt="Neue Maschine erstellen" width="400" height="284" /></a><p class="wp-caption-text">Neue Maschine erstellen</p></div>
<p>Mit dem Klick auf Weiter kannst du das Betriebssystem und den Namen deiner neuen virtuellen Maschine auswählen. Da ich auf meinem Testserver das CMS ContentLion installieren möchte, nenne ich ihn &#8220;Contentlion Testserver 1&#8243;. Als Betriebssystem musst du Linux Ubuntu auswählen:</p>
<div id="attachment_6234" class="wp-caption alignnone" style="width: 467px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/3_virtualbox_vmname_und_bstyp.png"><img class="size-full wp-image-6234 " title="Name und Typ des virtuellen Servers" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/3_virtualbox_vmname_und_bstyp.png" alt="Name und Typ des virtuellen Servers" width="457" height="325" /></a><p class="wp-caption-text">Name und Typ des virtuellen Servers</p></div>
<p>Als nächstes kannst du die Größe des Arbeitsspeichers bestimmen. Normalerweise reicht der empfohlene Wert aus, ich habe aber trotzdem mal ein wenig drauf gehauen:</p>
<div id="attachment_6237" class="wp-caption alignnone" style="width: 467px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/4_virtualbox_speicher.png"><img class="size-full wp-image-6237 " title="Speicher einstellen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/4_virtualbox_speicher.png" alt="Speicher einstellen" width="457" height="325" /></a><p class="wp-caption-text">Speicher einstellen</p></div>
<p>Mit einem Klick auf weiter kommst du zum Festplaten Dialog. Hier kannst du auswählen, ob du eine neue virtuelle Festplatte erstellen oder eine Vorhandene nutzen möchtest. Da du wahrscheinlich noch keine hast, musst du hier eine neue Erzeugen:</p>
<div id="attachment_6240" class="wp-caption alignnone" style="width: 467px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/5_virtualbox_festplatte.png"><img class="size-full wp-image-6240 " title="Virtuelle Festplatte auswählen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/5_virtualbox_festplatte.png" alt="Virtuelle Festplatte auswählen" width="457" height="325" /></a><p class="wp-caption-text">Virtuelle Festplatte auswählen</p></div>
<p>Hier gibt es nun einen neuen Dialog, in welchem du festplatte bestimmen kannst. Zunächst wieder ein Begrüßungsdialog:</p>
<div id="attachment_6242" class="wp-caption alignnone" style="width: 463px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/6_virtualbox_festplatte_neu.png"><img class="size-full wp-image-6242 " title="Begrüßungsdialog neue Festplatte" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/6_virtualbox_festplatte_neu.png" alt="Begrüßungsdialog neue Festplatte" width="453" height="309" /></a><p class="wp-caption-text">Begrüßungsdialog neue Festplatte</p></div>
<p>Es gibt zwei verschiedene Festplattentypen. Zum einen ein &#8220;dynamisch wachsendes Medium&#8221;, welches nur so viel Speicher in Anspruch nimmt, wie es wirklich benötigt und zum anderen ein &#8220;Medium fester Größe&#8221; was von Anfang an den Platz für sich beansprucht. Solltest du keinen besonderen Grund für eine feste Größe haben, solltest du am besten die dynamische Größe benutzen:</p>
<div id="attachment_6244" class="wp-caption alignnone" style="width: 463px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/7_virtualbox_festplatte_typ.png"><img class="size-full wp-image-6244 " title="Festplattentyp" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/7_virtualbox_festplatte_typ.png" alt="Festplattentyp" width="453" height="309" /></a><p class="wp-caption-text">Festplattentyp</p></div>
<p>Die Größe der Festplatte kannst du für deinen Verwendungszweck anpassen. Ich hab mich mal für 10 GB entschieden, damit ich auch noch ausreichend Platz zum Testen mit großen Datenmengen habe:</p>
<div id="attachment_6246" class="wp-caption alignnone" style="width: 463px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/8_virtualbox_festplatte_lage_und_groesse.png"><img class="size-full wp-image-6246 " title="Festplatten Lage und Größe" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/8_virtualbox_festplatte_lage_und_groesse.png" alt="Festplatten Lage und Größe" width="453" height="309" /></a><p class="wp-caption-text">Festplatten Lage und Größe</p></div>
<p>Herzlichen Glückwunsch, du hast nun die Festplatte für dein neues System erstellt:</p>
<div id="attachment_6248" class="wp-caption alignnone" style="width: 463px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/9_virtualbox_festplatte_zusammenfassung.png"><img class="size-full wp-image-6248 " title="Zusammenfassung Festplatte" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/9_virtualbox_festplatte_zusammenfassung.png" alt="Zusammenfassung Festplatte" width="453" height="309" /></a><p class="wp-caption-text">Zusammenfassung Festplatte</p></div>
<p>Wer hätte es gedacht, auch dein virtueller Server ist aufgesetzt:</p>
<div id="attachment_6250" class="wp-caption alignnone" style="width: 467px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/10_virtualbox_zusammenfassung.png"><img class="size-full wp-image-6250 " title="Virtualbox Zusammenfassung" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/10_virtualbox_zusammenfassung.png" alt="Virtualbox Zusammenfassung" width="457" height="325" /></a><p class="wp-caption-text">Virtualbox Zusammenfassung</p></div>
<p>Du kommst jetzt zurück zur Übersicht. Nun kannst du oben im Menü auf &#8220;Start&#8221; klicken und deine Maschine erweckt zum Leben:</p>
<div id="attachment_6253" class="wp-caption alignnone" style="width: 480px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/12_virtualbox_startassistentt.png"><img class="size-full wp-image-6253 " title="Startassistent" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/12_virtualbox_startassistentt.png" alt="Startassistent" width="470" height="322" /></a><p class="wp-caption-text">Startassistent</p></div>
<p>Jetzt musst du quasi deine Ubuntu-CD einlegen. Wie gesagt, ich habe das mit Daemon Tools gemacht. Dort kannst du mit einem Rechtsklick die ISO als Laufwerk einbinden. Den Laufwerksbuchstaben musst du dann in VirtualBox auswählen:</p>
<div id="attachment_6256" class="wp-caption alignnone" style="width: 462px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/13_virtualbox_deamon_tool_image_einbinden.png"><img class="size-large wp-image-6256   " title="CD Einlegen" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/13_virtualbox_deamon_tool_image_einbinden-1024x416.png" alt="CD Einlegen" width="452" height="184" /></a><p class="wp-caption-text">CD Einlegen</p></div>
<p>Nun kann die eigentliche Installation losgehen:</p>
<div id="attachment_6260" class="wp-caption alignnone" style="width: 480px"><a href="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/14_virtualbox_start_zusammenfassung.png"><img class="size-full wp-image-6260 " title="Start Zusammenfassung" src="http://blog.stevieswebsite.de/wp-content/uploads/2010/08/14_virtualbox_start_zusammenfassung.png" alt="Start Zusammenfassung" width="470" height="322" /></a><p class="wp-caption-text">Start Zusammenfassung</p></div>
<p>Bald geht&#8217;s weiter mit dem Teil 2 des Tutorials!</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/pXbo505aL1U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/08/ubuntu-server-installation-auf-virtualbox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/08/ubuntu-server-installation-auf-virtualbox/</feedburner:origLink></item>
		<item>
		<title>Menüumzug ins neue Backend (CMS)</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/ipmXRBhYkaY/</link>
		<comments>http://blog.stevieswebsite.de/2010/08/menuumzug-ins-neue-backend-cms/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 11:51:28 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[CMS Tutorial]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6211</guid>
		<description><![CDATA[Derzeit ist das Erstellen, Bearbeiten und Löschen von Menüs nur im alten Backend möglich. Das wird sich heute ändern. Wir werden die komplette Funktionalotät übertragen. Fangen wir an mit dem Erstellen des Menüs in der Klasse /system/classes/menucreatorpage.php: &#60;?PHP class MenuCreatorPage extends Editor{ function __construct($page){ $this-&#62;page = $page; } public function display(){ $template = new Template(); [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fmenuumzug-ins-neue-backend-cms%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fmenuumzug-ins-neue-backend-cms%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Derzeit ist das Erstellen, Bearbeiten und Löschen von Menüs nur im alten Backend möglich. Das wird sich heute ändern. Wir werden die komplette Funktionalotät übertragen.<span id="more-6211"></span></p>
<p>Fangen wir an mit dem Erstellen des Menüs in der Klasse <strong>/system/classes/menucreatorpage.php</strong>:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> MenuCreatorPage <span style="color: #ff3030;">extends</span> Editor<span style="color: #555555;">{</span>
    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">__construct</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$page</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page <span style="color: #555555;">=</span> <span style="color: #0000ff;">$page</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">display</span><span style="color: #555555;">(){</span>
      <span style="color: #0000ff;">$template</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Template</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"menu_new"</span><span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">show_if</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"NOTSUCCEEDED"</span><span style="color: #555555;">,!</span><span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'name'</span><span style="color: #555555;">]);</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"URL"</span><span style="color: #555555;">,</span>Settings<span style="color: #555555;">::</span><span style="color: #d11ced;">getInstance</span><span style="color: #555555;">()-&gt;</span><span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"host"</span><span style="color: #555555;">).</span><span style="color: #1861a7;">"admin/newmenu.html"</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'name'</span><span style="color: #555555;">]){</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">show_if</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SUCCEEDED"</span><span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$id</span> <span style="color: #555555;">=</span> Menu<span style="color: #555555;">::</span><span style="color: #d11ced;">create</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'name'</span><span style="color: #555555;">],</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'dir'</span><span style="color: #555555;">]);</span>
        <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$id</span><span style="color: #555555;">){</span>
          <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"EDITURL"</span><span style="color: #555555;">,</span>Settings<span style="color: #555555;">::</span><span style="color: #d11ced;">getInstance</span><span style="color: #555555;">()-&gt;</span><span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"host"</span><span style="color: #555555;">).</span><span style="color: #1861a7;">"admin/editmenu.html?menu="</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$id</span><span style="color: #555555;">);</span>
        <span style="color: #555555;">}</span>
        <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
          <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"message"</span><span style="color: #555555;">);</span>
          <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MESSAGE"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$language</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getString</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MENU_NOT_CREATED"</span><span style="color: #555555;">));</span>
        <span style="color: #555555;">}</span>
      <span style="color: #555555;">}</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">output</span><span style="color: #555555;">();</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getHeader</span><span style="color: #555555;">(){</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">getEditableCode</span><span style="color: #555555;">(){</span>
      <span style="color: #ff3030;">return</span> <span style="color: #1861a7;">"&lt;input name=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">save</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">type=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">submit</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">value=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">&amp;Auml;ndern</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">onclick=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">form.action='"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'PHP_SELF'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">"?"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'QUERY_STRING'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">"' ; target='_self' ; return true</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">/&gt;"</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">save</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$newPage</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$oldPage</span><span style="color: #555555;">){</span>
    <span style="color: #555555;">}</span>
  <span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Weiter geht&#8217;s mit dem Bearbeiten der Einträge. Das geschieht im<strong> /system/classes/menueditor.php</strong>:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> MenuEditor <span style="color: #ff3030;">extends</span> Editor<span style="color: #555555;">{</span>
    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">__construct</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$page</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page <span style="color: #555555;">=</span> <span style="color: #0000ff;">$page</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">display</span><span style="color: #555555;">(){</span>
      <span style="color: #0000ff;">$template</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Template</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"menu_edit"</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'add'</span><span style="color: #555555;">]){</span>
        <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">trim</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'newtitle'</span><span style="color: #555555;">]) !=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">){</span>
          <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">trim</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'newurl'</span><span style="color: #555555;">]) !=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">){</span>
            <span style="color: #0000ff;">$entry</span>        <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">MenuEntry</span><span style="color: #555555;">();</span>
            <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>menu  <span style="color: #555555;">=</span> <span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'menu'</span><span style="color: #555555;">];</span>
            <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>title <span style="color: #555555;">=</span> <span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'newtitle'</span><span style="color: #555555;">];</span>
            <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>type  <span style="color: #555555;">=</span> <span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'type'</span><span style="color: #555555;">];</span>
            <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>type <span style="color: #555555;">==</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">){</span>
              <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>href  <span style="color: #555555;">=</span> <span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'newPage'</span><span style="color: #555555;">];</span>
            <span style="color: #555555;">}</span>
            <span style="color: #ff3030;">else if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>type <span style="color: #555555;">==</span> <span style="color: #32ba06;">1</span><span style="color: #555555;">){</span>
              <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>href  <span style="color: #555555;">=</span> <span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'newurl'</span><span style="color: #555555;">];</span>
            <span style="color: #555555;">}</span>
            <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
              <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>href  <span style="color: #555555;">=</span> <span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'newMenu'</span><span style="color: #555555;">];</span>
            <span style="color: #555555;">}</span>
            <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">save</span><span style="color: #555555;">();</span>
            <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$res</span><span style="color: #555555;">){</span>
              <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MESSAGE"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'language'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">getString</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"ENTRY_ADDED"</span><span style="color: #555555;">));</span>
            <span style="color: #555555;">}</span>
            <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
              <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MESSAGE"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'language'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">getString</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"ENTRY_NOT_ADDED"</span><span style="color: #555555;">));</span>
            <span style="color: #555555;">}</span>
          <span style="color: #555555;">}</span>
          <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
            <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MESSAGE"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'language'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">getString</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"ENTER_LINK_TARGET"</span><span style="color: #555555;">));</span>
          <span style="color: #555555;">}</span>
        <span style="color: #555555;">}</span>
        <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
            <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MESSAGE"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'language'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">getString</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"ENTER_LINK_TITLE"</span><span style="color: #555555;">));</span>
        <span style="color: #555555;">}</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'save'</span><span style="color: #555555;">]){</span>
        <span style="color: #ff3030;">foreach</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_POST</span> <span style="color: #ff3030;">as</span> <span style="color: #0000ff;">$param</span><span style="color: #555555;">=&gt;</span><span style="color: #0000ff;">$value</span><span style="color: #555555;">){</span>
          <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">strlen</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">) &gt;=</span> <span style="color: #32ba06;">6</span><span style="color: #555555;">){</span>
            <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">,-</span><span style="color: #32ba06;">5</span><span style="color: #555555;">,</span><span style="color: #32ba06;">5</span><span style="color: #555555;">) ==</span> <span style="color: #1861a7;">"_href"</span><span style="color: #555555;">){</span>
              <span style="color: #0000ff;">$entries</span><span style="color: #555555;">[</span><span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">,</span><span style="color: #32ba06;">0</span><span style="color: #555555;">,-</span><span style="color: #32ba06;">5</span><span style="color: #555555;">)][</span>href<span style="color: #555555;">] =</span> <span style="color: #0000ff;">$value</span><span style="color: #555555;">;</span>
            <span style="color: #555555;">}</span>
            <span style="color: #ff3030;">else if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">strlen</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">) &gt;=</span> <span style="color: #32ba06;">7</span> <span style="color: #555555;">&amp;&amp;</span> <span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">,-</span><span style="color: #32ba06;">6</span><span style="color: #555555;">,</span><span style="color: #32ba06;">6</span><span style="color: #555555;">) ==</span> <span style="color: #1861a7;">"_title"</span><span style="color: #555555;">){</span>
              <span style="color: #0000ff;">$entries</span><span style="color: #555555;">[</span><span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">,</span><span style="color: #32ba06;">0</span><span style="color: #555555;">,-</span><span style="color: #32ba06;">6</span><span style="color: #555555;">)][</span>title<span style="color: #555555;">] =</span> <span style="color: #0000ff;">$value</span><span style="color: #555555;">;</span>
            <span style="color: #555555;">}</span>
            <span style="color: #ff3030;">else if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">,-</span><span style="color: #32ba06;">5</span><span style="color: #555555;">,</span><span style="color: #32ba06;">5</span><span style="color: #555555;">) ==</span> <span style="color: #1861a7;">"_type"</span><span style="color: #555555;">){</span>
              <span style="color: #0000ff;">$entries</span><span style="color: #555555;">[</span><span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">,</span><span style="color: #32ba06;">0</span><span style="color: #555555;">,-</span><span style="color: #32ba06;">5</span><span style="color: #555555;">)][</span>type<span style="color: #555555;">] =</span> <span style="color: #0000ff;">$value</span><span style="color: #555555;">;</span>
            <span style="color: #555555;">}</span>
          <span style="color: #555555;">}</span>
        <span style="color: #555555;">}</span>
        <span style="color: #ff3030;">foreach</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$entries</span> <span style="color: #ff3030;">as</span> <span style="color: #0000ff;">$id</span><span style="color: #555555;">=&gt;</span><span style="color: #0000ff;">$params</span><span style="color: #555555;">){</span>
          <span style="color: #0000ff;">$entry</span>        <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">MenuEntry</span><span style="color: #555555;">();</span>
          <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>id    <span style="color: #555555;">=</span> <span style="color: #0000ff;">$id</span><span style="color: #555555;">;</span>
          <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>menu  <span style="color: #555555;">=</span> <span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'menu'</span><span style="color: #555555;">];</span>
          <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>title <span style="color: #555555;">=</span> <span style="color: #0000ff;">$params</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'title'</span><span style="color: #555555;">];</span>
          <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>href  <span style="color: #555555;">=</span> <span style="color: #0000ff;">$params</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'href'</span><span style="color: #555555;">];</span>
          <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span>type  <span style="color: #555555;">=</span> <span style="color: #0000ff;">$params</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'type'</span><span style="color: #555555;">];</span>
          <span style="color: #0000ff;">$entry</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">save</span><span style="color: #555555;">();</span>
        <span style="color: #555555;">}</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #ff3030;">foreach</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_POST</span> <span style="color: #ff3030;">as</span> <span style="color: #0000ff;">$param</span><span style="color: #555555;">=&gt;</span><span style="color: #0000ff;">$value</span><span style="color: #555555;">){</span>
          <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">strlen</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">) &gt;=</span> <span style="color: #32ba06;">8</span><span style="color: #555555;">){</span>
            <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">,-</span><span style="color: #32ba06;">7</span><span style="color: #555555;">,</span><span style="color: #32ba06;">7</span><span style="color: #555555;">) ==</span> <span style="color: #1861a7;">"_delete"</span><span style="color: #555555;">){</span>
              Menu<span style="color: #555555;">::</span><span style="color: #d11ced;">deleteEntry</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'menu'</span><span style="color: #555555;">]),</span>
                                <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #d11ced;">substr</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$param</span><span style="color: #555555;">,</span><span style="color: #32ba06;">0</span><span style="color: #555555;">,-</span><span style="color: #32ba06;">7</span><span style="color: #555555;">)));</span>
            <span style="color: #555555;">}</span>
          <span style="color: #555555;">}</span>
        <span style="color: #555555;">}</span>
      <span style="color: #555555;">}</span>

      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"URL"</span><span style="color: #555555;">,</span>Settings<span style="color: #555555;">::</span><span style="color: #d11ced;">getInstance</span><span style="color: #555555;">()-&gt;</span><span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"host"</span><span style="color: #555555;">).</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page<span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">.</span><span style="color: #1861a7;">".html?menu="</span><span style="color: #555555;">.</span><span style="color: #d11ced;">urlencode</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'menu'</span><span style="color: #555555;">]));</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"EDITABLEMENU"</span><span style="color: #555555;">,</span>Menu<span style="color: #555555;">::</span><span style="color: #d11ced;">getEditableCode</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'menu'</span><span style="color: #555555;">])));</span>

      <span style="color: #0000ff;">$selector</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">MenueSelector</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$selector</span><span style="color: #555555;">-&gt;</span>name  <span style="color: #555555;">=</span> <span style="color: #1861a7;">'newMenu'</span><span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$selector</span><span style="color: #555555;">-&gt;</span>value <span style="color: #555555;">= -</span><span style="color: #32ba06;">1</span><span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$selector</span><span style="color: #555555;">-&gt;</span>style <span style="color: #555555;">=</span> <span style="color: #1861a7;">'width:200px;position:relative;left:-210px;visibility:hidden'</span><span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MENUSELECTOR"</span><span style="color: #555555;">,</span> <span style="color: #0000ff;">$selector</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getCode</span><span style="color: #555555;">());</span>

      <span style="color: #0000ff;">$selector</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">PageSelector</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$selector</span><span style="color: #555555;">-&gt;</span>name  <span style="color: #555555;">=</span> <span style="color: #1861a7;">'newPage'</span><span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$selector</span><span style="color: #555555;">-&gt;</span>value <span style="color: #555555;">= -</span><span style="color: #32ba06;">1</span><span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$selector</span><span style="color: #555555;">-&gt;</span>style <span style="color: #555555;">=</span> <span style="color: #1861a7;">'width:200px;position:relative;left:-415px;'</span><span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"PAGESELECTOR"</span><span style="color: #555555;">,</span> <span style="color: #0000ff;">$selector</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getCode</span><span style="color: #555555;">());</span>

      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MESSAGE"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">""</span><span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">output</span><span style="color: #555555;">();</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getHeader</span><span style="color: #555555;">(){</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">getEditableCode</span><span style="color: #555555;">(){</span>
      <span style="color: #ff3030;">return</span> <span style="color: #1861a7;">"&lt;input name=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">save</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">type=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">submit</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">value=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">&amp;Auml;ndern</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">onclick=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">form.action='"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'PHP_SELF'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">"?"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'QUERY_STRING'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">"' ; target='_self' ; return true</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">/&gt;"</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">save</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$newPage</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$oldPage</span><span style="color: #555555;">){</span>
    <span style="color: #555555;">}</span>
<span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Der letzte Seitentyp ist die <strong>/system/classes/menudeletepage.php</strong>. Hier werden die Menüs gelöscht:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> MenuDeletePage <span style="color: #ff3030;">extends</span> Editor<span style="color: #555555;">{</span>
    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">__construct</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$page</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page <span style="color: #555555;">=</span> <span style="color: #0000ff;">$page</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">display</span><span style="color: #555555;">(){</span>
      <span style="color: #0000ff;">$template</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Template</span><span style="color: #555555;">();</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'delete'</span><span style="color: #555555;">]){</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"menu_delete"</span><span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"CANCELURL"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"javascript:history.back()"</span><span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"DELETEURL"</span><span style="color: #555555;">,</span>Settings<span style="color: #555555;">::</span><span style="color: #d11ced;">getInstance</span><span style="color: #555555;">()-&gt;</span><span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"host"</span><span style="color: #555555;">).</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page<span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">.</span><span style="color: #1861a7;">".html?menu="</span><span style="color: #555555;">.</span><span style="color: #d11ced;">urlencode</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'menu'</span><span style="color: #555555;">]).</span><span style="color: #1861a7;">"&amp;delete=true"</span><span style="color: #555555;">);</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"message"</span><span style="color: #555555;">);</span>
        <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span>Menu<span style="color: #555555;">::</span><span style="color: #d11ced;">delete</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'menu'</span><span style="color: #555555;">]))){</span>
            <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MESSAGE"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'language'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">getString</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MENU_DELETED"</span><span style="color: #555555;">));</span>
        <span style="color: #555555;">}</span>
        <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
          <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">assign_var</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MESSAGE"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'language'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">getString</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"MENU_NOT_DELETED"</span><span style="color: #555555;">));</span>
        <span style="color: #555555;">}</span>
      <span style="color: #555555;">}</span>
      <span style="color: #0000ff;">$template</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">output</span><span style="color: #555555;">();</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getHeader</span><span style="color: #555555;">(){</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">getEditableCode</span><span style="color: #555555;">(){</span>
      <span style="color: #ff3030;">return</span> <span style="color: #1861a7;">"&lt;input name=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">save</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">type=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">submit</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">value=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">&amp;Auml;ndern</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">onclick=</span><span style="color: #a61761;">\"</span><span style="color: #1861a7;">form.action='"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'PHP_SELF'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">"?"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'QUERY_STRING'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">"' ; target='_self' ; return true</span><span style="color: #a61761;">\"</span> <span style="color: #1861a7;">/&gt;"</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">save</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$newPage</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$oldPage</span><span style="color: #555555;">){</span>
    <span style="color: #555555;">}</span>
<span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Das erstellen von Menüs im Backend war bisher nur ohne Ordner möglich. Das ändert die Funktion create der Klasse <strong>/system/classes/menu.php</strong>:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';">  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">create</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$name</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$dir</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">){</span>
    <span style="color: #0000ff;">$name</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$name</span><span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$dir</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$dir</span><span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"INSERT INTO {'dbprefix'}menu_names (name, dir) VALUES ('"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$name</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"', '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$dir</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"')"</span><span style="color: #555555;">);</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$res</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$args</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'name'</span><span style="color: #555555;">]  =</span> <span style="color: #0000ff;">$name</span><span style="color: #555555;">;</span>
      EventManager<span style="color: #555555;">::</span><span style="color: #d11ced;">raiseEvent</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"menu_created"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"../"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$args</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">InsertID</span><span style="color: #555555;">();</span>
  <span style="color: #555555;">}</span></pre>
<p>Um die Funktion nutzen zu können müssen folgende SQL-Queries ausgeführt werden:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #ff3030;">INSERT INTO</span> `cms_menu` <span style="color: #ff3030;">VALUES</span> <span style="color: #555555;">(</span><span style="color: #32ba06;">14</span><span style="color: #555555;">,</span> <span style="color: #32ba06;">8</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'Menü'</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'16'</span><span style="color: #555555;">,</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">);</span>
<span style="color: #ff3030;">INSERT INTO</span> `cms_pages` <span style="color: #ff3030;">VALUES</span> <span style="color: #555555;">(</span><span style="color: #32ba06;">16</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'admin/newmenu'</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'Neues Menü'</span><span style="color: #555555;">,</span> <span style="color: #32ba06;">7</span><span style="color: #555555;">,</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'menucreatorpage'</span><span style="color: #555555;">);</span>
<span style="color: #ff3030;">INSERT INTO</span> `cms_pages` <span style="color: #ff3030;">VALUES</span> <span style="color: #555555;">(</span><span style="color: #32ba06;">17</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'admin/editmenu'</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'Menü Bearbeiten'</span><span style="color: #555555;">,</span> <span style="color: #32ba06;">7</span><span style="color: #555555;">,</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'menueditor'</span><span style="color: #555555;">);</span>
<span style="color: #ff3030;">INSERT INTO</span> `cms_pages` <span style="color: #ff3030;">VALUES</span> <span style="color: #555555;">(</span><span style="color: #32ba06;">18</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'admin/deletemenu'</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'Menü Löschen'</span><span style="color: #555555;">,</span> <span style="color: #32ba06;">7</span><span style="color: #555555;">,</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">'menuedeletepage'</span><span style="color: #555555;">);</span>
<span style="color: #ff3030;">INSERT INTO</span> `cms_role_rights` <span style="color: #ff3030;">VALUES</span> <span style="color: #555555;">(</span><span style="color: #32ba06;">2</span><span style="color: #555555;">,</span><span style="color: #32ba06;">16</span><span style="color: #555555;">);</span>
<span style="color: #ff3030;">INSERT INTO</span> `cms_role_rights` <span style="color: #ff3030;">VALUES</span> <span style="color: #555555;">(</span><span style="color: #32ba06;">2</span><span style="color: #555555;">,</span><span style="color: #32ba06;">17</span><span style="color: #555555;">);</span>
<span style="color: #ff3030;">INSERT INTO</span> `cms_role_rights` <span style="color: #ff3030;">VALUES</span> <span style="color: #555555;">(</span><span style="color: #32ba06;">2</span><span style="color: #555555;">,</span><span style="color: #32ba06;">18</span><span style="color: #555555;">);</span></pre>
<p>Alle Änderungen stehen in den Revisonen <a href="http://code.google.com/p/contentlion/source/detail?r=51" target="_self">51</a>, <a href="http://code.google.com/p/contentlion/source/detail?r=52" target="_self">52</a>, <a href="http://code.google.com/p/contentlion/source/detail?r=53" target="_self">53</a>, <a href="http://code.google.com/p/contentlion/source/detail?r=54" target="_self">54</a>, <a href="http://code.google.com/p/contentlion/source/detail?r=55" target="_self">55</a> und <a href="http://code.google.com/p/contentlion/source/detail?r=56" target="_self">56</a>.</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/ipmXRBhYkaY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/08/menuumzug-ins-neue-backend-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/08/menuumzug-ins-neue-backend-cms/</feedburner:origLink></item>
		<item>
		<title>Überarbeitung Settings-Komponente (CMS)</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/paQ92dukcGU/</link>
		<comments>http://blog.stevieswebsite.de/2010/08/uberarbeitung-settings-komponente-cms/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 17:05:26 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[CMS Tutorial]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6204</guid>
		<description><![CDATA[Unser CMS ContentLion ist ja zum Großteil objektorientiert &#8211; Nur zum Großteil! Denn auf die Settings wird derzeit über die Funktionen getSetting und setSetting zugegriffen. Da in Kürze Erweiterungen in Richtung Multi-Domain Benutzung und Order bzw. Seitenspezische Einstellungen anstehen, ist jetzt der passende Augenblick, die Settings einmal zu überarbeiten. Die alten Funktionen waren in der [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fuberarbeitung-settings-komponente-cms%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fuberarbeitung-settings-komponente-cms%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Unser CMS ContentLion ist ja zum Großteil objektorientiert &#8211; Nur zum Großteil! Denn auf die Settings wird derzeit über die Funktionen getSetting und setSetting zugegriffen. Da in Kürze Erweiterungen in Richtung Multi-Domain Benutzung und Order bzw. Seitenspezische Einstellungen anstehen, ist jetzt der passende Augenblick, die Settings einmal zu überarbeiten.<span id="more-6204"></span></p>
<p>Die alten Funktionen waren in der Datei <strong>/system/settings.php</strong> gespeicher, die am Ende des Beitrags gelöscht werden kann. Für jede Abfrage auf die Settings wurde eine Datenabfrage generiert. Bei Settings die häufiger gebraucht werden (root oder host) kann dies zu kleinen Performance-Problemen führen, weshalb ich in den neuen Settings extra darauf geachtet habe, dass wir jeden Setting nur einmal auslesen müssen.</p>
<p>Du erinnerst dich bestimmt, dass es neben den globalen Einstellungen auch Einstellungen für Plugins oder Skins geben kann. Hier werden die Spalten areaType und area verwendet -&gt; default ist beides global. In der neuen Settings-Klasse gibt es eine statisches Array mit dem Namen instances. Hier werden alle Instanzen der Settings-Klasse gespeichert. Als keys werden areaType unda rea genommen, so dass wir sicherstellen können, dass für jeden areaType und für jede area nur eine Instanz vorhanden ist.</p>
<p>Die Hauptinstanz, die für alle Settings ist, wird über die Funktion getInstance zurückgegeben. Sie erstellt auch ein neues Settings-Objekt, falls noch keins vorhanden ist:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';">    <span style="color: #ff3030;">public static function</span> <span style="color: #d11ced;">getInstance</span><span style="color: #555555;">(){</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span>self<span style="color: #555555;">::</span><span style="color: #0000ff;">$instances</span><span style="color: #555555;">[</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">][</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">])){</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Settings</span><span style="color: #555555;">();</span>
        self<span style="color: #555555;">::</span><span style="color: #0000ff;">$instances</span><span style="color: #555555;">[</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">][</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">] =</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> self<span style="color: #555555;">::</span><span style="color: #0000ff;">$instances</span><span style="color: #555555;">[</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">][</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">];</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span></pre>
<p>Diese<br />
Über diese Instanz kann man (gleich) schonmal die globalen Einstellungen auslesen. Möchte man nun eine Skinspezifische einstellung auslesen, kann man über specify eine passende Instanz bekommen:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';">    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">specify</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$areaType</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$area</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">"global"</span><span style="color: #555555;">){</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #0000ff;">$instances</span><span style="color: #555555;">[</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">][</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">])){</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Settings</span><span style="color: #555555;">();</span>
        <span style="color: #0000ff;">$res</span><span style="color: #555555;">-&gt;</span>parent <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">;</span>
        <span style="color: #0000ff;">$res</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">setAreaType</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$res</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">setArea</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>instances<span style="color: #555555;">[</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">][</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">] =</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>instances<span style="color: #555555;">[</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">][</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">];</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span></pre>
<p>In dieser wwerden areaType und die area gespeichert. Außerdem gibt es einen verweis auf die übergeordnete Klasse, so dass wenn keine spezifische Einstellung erstellt wurde einfach auf die globalen Einstellungen zurückgegriffen werden kann.</p>
<p>In der Funktion get und  der privaten Funktion getFromDB kann man sich nun die jeweilige Einstellung heraussuchen. Der Quelltext ähnelt dem der alten getSetting():</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';">    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> null<span style="color: #555555;">;</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>properties<span style="color: #555555;">[</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">])){</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>properties<span style="color: #555555;">[</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">];</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getFromDB</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">);</span>
        <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #0000ff;">$res</span> <span style="color: #555555;">&amp;&amp;</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>parent <span style="color: #555555;">!=</span> null<span style="color: #555555;">){</span>
          <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>parent<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">);</span>
        <span style="color: #555555;">}</span>
        <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>properties<span style="color: #555555;">[</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">] =</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>

      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">protected function</span> <span style="color: #d11ced;">getFromDB</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$area</span>     <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>area<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$areaType</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>areaType<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$property</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$sql</span>      <span style="color: #555555;">=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">;</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">])){</span>
       <span style="color: #0000ff;">$sql</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">"SELECT value FROM {'dbprefix'}settings WHERE role = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">]-&gt;</span>role<span style="color: #555555;">-&gt;</span>ID<span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' UNION "</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #0000ff;">$sql</span> <span style="color: #555555;">.=</span> <span style="color: #1861a7;">"SELECT value FROM {'dbprefix'}settings WHERE role = '3' AND area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">;</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadField</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span></pre>
<p>Die Funktion set ist ungefähr der Inhalt der alten setSetting:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';">    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">set</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$value</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$area</span>     <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>area<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$areaType</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>areaType<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$property</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>property<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$value</span>    <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>value<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$role</span>     <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>role<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$allUserData</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadRow</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT * FROM  {'dbprefix'}settings WHERE area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND role = '3'"</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$allUserData</span><span style="color: #555555;">-&gt;</span>value<span style="color: #555555;">) !=</span> <span style="color: #0000ff;">$value</span> <span style="color: #ff3030;">or</span> <span style="color: #0000ff;">$role</span> <span style="color: #555555;">==</span> <span style="color: #32ba06;">3</span><span style="color: #555555;">){</span>
        <span style="color: #0000ff;">$exists</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadField</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT COUNT(*) FROM {'dbprefix'}settings WHERE area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND role = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$role</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">) &gt;</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">;</span>
        <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$exists</span><span style="color: #555555;">){</span>
          <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"UPDATE {'dbprefix'}settings SET value = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$value</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' WHERE area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND role = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$role</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">);</span>
        <span style="color: #555555;">}</span>
        <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
          <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"INSERT INTO {'dbprefix'}settings (value,area,areaType,property,role,description,type) VALUES ('"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$value</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"', '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"', '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"', '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"', '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$role</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"','"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$allUserData</span><span style="color: #555555;">-&gt;</span>description<span style="color: #555555;">.</span><span style="color: #1861a7;">"','"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$allUserData</span><span style="color: #555555;">-&gt;</span>type<span style="color: #555555;">.</span><span style="color: #1861a7;">"')"</span><span style="color: #555555;">);</span>
        <span style="color: #555555;">}</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"DELETE FROM {'dbprefix'}settings WHERE area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND role = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$role</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">) ;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span></pre>
<p>Jetzt kommt der spaßige Teil der Änderung: Alle getSetting und setSetting-Aufrufe müssen an die neue Funktion angepasst werden. Für die globalen Einstellungen kann man zum Beispiel so den host bekommen: Settings::getInstance()-&gt;get(&#8220;host&#8221;).</p>
<p>Ich hoffe, ich habe in alle entsprechenden Aufrufe im Source geändert. Am besten ihr installiert ContentLion einmal neu, damit auch beim Update keine Datei vergessen wird.</p>
<p>Hier ist nochmal fürs Copy &amp; Paste der komplette Code der neuen Settings-Klasse:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> Settings<span style="color: #555555;">{</span>

    <span style="color: #ff3030;">protected</span> <span style="color: #0000ff;">$area</span>              <span style="color: #555555;">=</span> <span style="color: #1861a7;">"global"</span><span style="color: #555555;">;</span>
    <span style="color: #ff3030;">protected</span> <span style="color: #0000ff;">$areaType</span>          <span style="color: #555555;">=</span> <span style="color: #1861a7;">"global"</span><span style="color: #555555;">;</span>
    <span style="color: #ff3030;">protected</span> <span style="color: #0000ff;">$parent</span>            <span style="color: #555555;">=</span> null<span style="color: #555555;">;</span>
    <span style="color: #ff3030;">protected</span> <span style="color: #0000ff;">$properties</span>        <span style="color: #555555;">=</span> <span style="color: #ff3030;">array</span><span style="color: #555555;">();</span>
    <span style="color: #ff3030;">protected static</span> <span style="color: #0000ff;">$instances</span>  <span style="color: #555555;">=</span> <span style="color: #ff3030;">array</span><span style="color: #555555;">();</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> null<span style="color: #555555;">;</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>properties<span style="color: #555555;">[</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">])){</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>properties<span style="color: #555555;">[</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">];</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getFromDB</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">);</span>
        <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #0000ff;">$res</span> <span style="color: #555555;">&amp;&amp;</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>parent <span style="color: #555555;">!=</span> null<span style="color: #555555;">){</span>
          <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>parent<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">get</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">);</span>
        <span style="color: #555555;">}</span>
        <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>properties<span style="color: #555555;">[</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">] =</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>

      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">protected function</span> <span style="color: #d11ced;">getFromDB</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$area</span>     <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>area<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$areaType</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>areaType<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$property</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$sql</span>      <span style="color: #555555;">=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">;</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">])){</span>
       <span style="color: #0000ff;">$sql</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">"SELECT value FROM {'dbprefix'}settings WHERE role = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">]-&gt;</span>role<span style="color: #555555;">-&gt;</span>ID<span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' UNION "</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #0000ff;">$sql</span> <span style="color: #555555;">.=</span> <span style="color: #1861a7;">"SELECT value FROM {'dbprefix'}settings WHERE role = '3' AND area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">;</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadField</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$sql</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">set</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$value</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$area</span>     <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>area<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$areaType</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>areaType<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$property</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>property<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$value</span>    <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>value<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$role</span>     <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>role<span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$allUserData</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadRow</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT * FROM  {'dbprefix'}settings WHERE area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND role = '3'"</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$allUserData</span><span style="color: #555555;">-&gt;</span>value<span style="color: #555555;">) !=</span> <span style="color: #0000ff;">$value</span> <span style="color: #ff3030;">or</span> <span style="color: #0000ff;">$role</span> <span style="color: #555555;">==</span> <span style="color: #32ba06;">3</span><span style="color: #555555;">){</span>
        <span style="color: #0000ff;">$exists</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadField</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT COUNT(*) FROM {'dbprefix'}settings WHERE area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND role = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$role</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">) &gt;</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">;</span>
        <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$exists</span><span style="color: #555555;">){</span>
          <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"UPDATE {'dbprefix'}settings SET value = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$value</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' WHERE area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND role = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$role</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">);</span>
        <span style="color: #555555;">}</span>
        <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
          <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"INSERT INTO {'dbprefix'}settings (value,area,areaType,property,role,description,type) VALUES ('"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$value</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"', '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"', '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"', '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"', '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$role</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"','"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$allUserData</span><span style="color: #555555;">-&gt;</span>description<span style="color: #555555;">.</span><span style="color: #1861a7;">"','"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$allUserData</span><span style="color: #555555;">-&gt;</span>type<span style="color: #555555;">.</span><span style="color: #1861a7;">"')"</span><span style="color: #555555;">);</span>
        <span style="color: #555555;">}</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">Execute</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"DELETE FROM {'dbprefix'}settings WHERE area = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND areaType = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND property = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$property</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"' AND role = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$role</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">) ;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">setArea</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>area <span style="color: #555555;">=</span> <span style="color: #0000ff;">$area</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">setAreaType</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>areaType <span style="color: #555555;">=</span> <span style="color: #0000ff;">$area</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public static function</span> <span style="color: #d11ced;">getInstance</span><span style="color: #555555;">(){</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span>self<span style="color: #555555;">::</span><span style="color: #0000ff;">$instances</span><span style="color: #555555;">[</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">][</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">])){</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Settings</span><span style="color: #555555;">();</span>
        self<span style="color: #555555;">::</span><span style="color: #0000ff;">$instances</span><span style="color: #555555;">[</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">][</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">] =</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> self<span style="color: #555555;">::</span><span style="color: #0000ff;">$instances</span><span style="color: #555555;">[</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">][</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">];</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">specify</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$areaType</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$area</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">"global"</span><span style="color: #555555;">){</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #0000ff;">$instances</span><span style="color: #555555;">[</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">][</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">])){</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Settings</span><span style="color: #555555;">();</span>
        <span style="color: #0000ff;">$res</span><span style="color: #555555;">-&gt;</span>parent <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">;</span>
        <span style="color: #0000ff;">$res</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">setAreaType</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$res</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">setArea</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">);</span>
        <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>instances<span style="color: #555555;">[</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">][</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">] =</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
        <span style="color: #0000ff;">$res</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>instances<span style="color: #555555;">[</span><span style="color: #0000ff;">$areaType</span><span style="color: #555555;">][</span><span style="color: #0000ff;">$area</span><span style="color: #555555;">];</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$res</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

  <span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Alle weiteren Änderungen findest du in den Revisonen <a href="http://code.google.com/p/contentlion/source/detail?r=47" target="_self">47</a>, <a href="http://code.google.com/p/contentlion/source/detail?r=48" target="_self">48</a>,  <a href="http://code.google.com/p/contentlion/source/detail?r=49" target="_self">49</a> und <a href="http://code.google.com/p/contentlion/source/detail?r=50" target="_self">50</a>.</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/paQ92dukcGU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/08/uberarbeitung-settings-komponente-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/08/uberarbeitung-settings-komponente-cms/</feedburner:origLink></item>
		<item>
		<title>Exception-System (CMS)</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/y7shwlAlXkw/</link>
		<comments>http://blog.stevieswebsite.de/2010/08/exception-system-cms/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 14:29:09 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[CMS Tutorial]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=6198</guid>
		<description><![CDATA[Wenn in unserem CMS derzeit eine Seite nicht gefunden oder der zugriff verweigert wurde, bekommen wir eine PHP-Meldung. Das sollte natürlich so nicht sein. Derzeit werden die Rechte direkt in der index.php bzw. neuerdings in der /content/index.txt überprüft, jedoch funktionierte das auch noch nicht so schön. Erst habe ich den alten Fehler mit dem Zugriff-Verweigert [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;margin-right:10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fexception-system-cms%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.stevieswebsite.de%2F2010%2F08%2Fexception-system-cms%2F&amp;source=stevieswebsite&amp;style=normal&amp;service=ow.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Wenn in unserem CMS derzeit eine Seite nicht gefunden oder der zugriff verweigert wurde, bekommen wir eine PHP-Meldung. Das sollte natürlich so nicht sein. Derzeit werden die Rechte direkt in der index.php bzw. neuerdings in der <strong>/content/index.txt</strong> überprüft, jedoch funktionierte das auch noch nicht so schön.</p>
<p>Erst habe ich den alten Fehler mit dem Zugriff-Verweigert ausgebssert und wollte Ähnliches für das Seite-Nicht-Gefunden machen. Doch da kam mir eine viel bessere Idee: Wir regeln das über Exceptions. So müssen wir in der index lediglich die Exceptions abfangen und die Fehlernachricht anzeigen.<span id="more-6198"></span></p>
<p>Für alle ContentLion-Exceptions gibt es die neue Klasse <strong>/system/contentlionexception.php</strong>. In dieser wird neben der Standard-PHP-Exception auch eine Fehlerseite als Page-Objekt angelgt. So können wir eine sprechende Fehlermeldung auch über unser System anzeigen. Die Basisklasse die wir nun für alle über Contentlion geworfenen Exceptions benutzten sieht so aus:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> ContentLionException <span style="color: #ff3030;">extends</span> Exception<span style="color: #555555;">{</span>
    <span style="color: #ff3030;">protected</span> <span style="color: #0000ff;">$errorPage</span> <span style="color: #555555;">=</span> null<span style="color: #555555;">;</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">getErrorPage</span><span style="color: #555555;">(){</span>
      <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>errorPage<span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">setErrorPage</span><span style="color: #555555;">(</span>Page <span style="color: #0000ff;">$page</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>errorPage <span style="color: #555555;">=</span> <span style="color: #0000ff;">$page</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>
  <span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Jetzt erben wir von dieser Klasse in der neuen <strong>/system/classes/accessdeniedexception.php</strong>:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> AccessDeniedException <span style="color: #ff3030;">extends</span> ContentLionException<span style="color: #555555;">{</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">__construct</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$message</span><span style="color: #555555;">,</span> <span style="color: #0000ff;">$code</span> <span style="color: #555555;">=</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">) {</span>
      parent<span style="color: #555555;">::</span><span style="color: #d11ced;">__construct</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$message</span><span style="color: #555555;">,</span> <span style="color: #0000ff;">$code</span><span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$page</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Page</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$page</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">loadPropertiesById</span><span style="color: #555555;">(</span><span style="color: #d11ced;">getSetting</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"accessdenied"</span><span style="color: #555555;">));</span>
      parent<span style="color: #555555;">::</span><span style="color: #d11ced;">setErrorPage</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$page</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>

  <span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Bei der AccessDeniedException können wir die Seite schön über die Datenbank laden. Bei der FileNotFound-Ecxeption sieht es anders aus, denn was passiert, wenn die Fehlerseite auch nicht gefunden werden kann? Richtig: Eine Endos-Schleife. Hier erstmal der Code der Exception (<strong>system/classes/filenotfoundexception.php</strong>):</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> FileNotFoundException <span style="color: #ff3030;">extends</span> ContentLionException<span style="color: #555555;">{</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">__construct</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$message</span><span style="color: #555555;">,</span> <span style="color: #0000ff;">$code</span> <span style="color: #555555;">=</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">) {</span>
      parent<span style="color: #555555;">::</span><span style="color: #d11ced;">__construct</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$message</span><span style="color: #555555;">,</span> <span style="color: #0000ff;">$code</span><span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$page</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Page</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$page</span><span style="color: #555555;">-&gt;</span>editor <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">BlankEditor</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$page</span><span style="color: #555555;">);</span>
      <span style="color: #0000ff;">$page</span><span style="color: #555555;">-&gt;</span>editor<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">setContent</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"&lt;h2&gt;Seite nicht gefunden!&lt;/h2&gt;&lt;p&gt;Diese Seite konnte nicht gefunden werden!&lt;/p&gt;"</span><span style="color: #555555;">);</span>
      parent<span style="color: #555555;">::</span><span style="color: #d11ced;">setErrorPage</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$page</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>

  <span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Hier wird eine neue Editor-Klasse verwendet. Ich habe diese sehr simpel aufgebaut, so dass man den Text zuweisen kann und werden Datenbankverbindung noch Zugriff auf Dateisystem benötigt. <strong>/system/classes/blankeditor.php</strong>:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">class</span> BlankEditor <span style="color: #ff3030;">extends</span> Editor<span style="color: #555555;">{</span>
    <span style="color: #ff3030;">protected</span> <span style="color: #0000ff;">$content</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">;</span>

    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">__construct</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$page</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page <span style="color: #555555;">=</span> <span style="color: #0000ff;">$page</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">display</span><span style="color: #555555;">(){</span>
      <span style="color: #ff3030;">echo</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>content<span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">setContent</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$content</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>content <span style="color: #555555;">=</span> <span style="color: #0000ff;">$content</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getHeader</span><span style="color: #555555;">(){</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">getEditableCode</span><span style="color: #555555;">(){</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">public function</span> <span style="color: #d11ced;">save</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$newPage</span><span style="color: #555555;">,</span><span style="color: #0000ff;">$oldPage</span><span style="color: #555555;">){</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">private function</span> <span style="color: #d11ced;">readContent</span><span style="color: #555555;">(){</span>
        <span style="color: #0000ff;">$filename</span> <span style="color: #555555;">=</span> <span style="color: #d11ced;">getSetting</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"root"</span><span style="color: #555555;">).</span><span style="color: #1861a7;">"content/articles/"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>page<span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">.</span><span style="color: #1861a7;">".php"</span><span style="color: #555555;">;</span>
        <span style="color: #0000ff;">$handle</span> <span style="color: #555555;">= @</span><span style="color: #d11ced;">fopen</span> <span style="color: #555555;">(</span><span style="color: #0000ff;">$filename</span><span style="color: #555555;">,</span> <span style="color: #1861a7;">"rb"</span><span style="color: #555555;">);</span>
        <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$handle</span> <span style="color: #555555;">&amp;&amp;</span> <span style="color: #d11ced;">filesize</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$filename</span><span style="color: #555555;">) &gt;</span> <span style="color: #32ba06;">0</span><span style="color: #555555;">){</span>
            <span style="color: #0000ff;">$contents</span> <span style="color: #555555;">=</span> <span style="color: #d11ced;">fread</span> <span style="color: #555555;">(</span><span style="color: #0000ff;">$handle</span><span style="color: #555555;">,</span> <span style="color: #d11ced;">filesize</span> <span style="color: #555555;">(</span><span style="color: #0000ff;">$filename</span><span style="color: #555555;">));</span>
            <span style="color: #d11ced;">fclose</span> <span style="color: #555555;">(</span><span style="color: #0000ff;">$handle</span><span style="color: #555555;">);</span>
        <span style="color: #555555;">}</span>
        <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
            <span style="color: #0000ff;">$contents</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">;</span>
        <span style="color: #555555;">}</span>
        <span style="color: #ff3030;">return</span> <span style="color: #0000ff;">$contents</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">private function</span> <span style="color: #d11ced;">deleteContent</span><span style="color: #555555;">(){</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">writeContent</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$content</span><span style="color: #555555;">){</span>
    <span style="color: #555555;">}</span>

    <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">getBreadcrumb</span><span style="color: #555555;">(){</span>
    <span style="color: #555555;">}</span>

  <span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Die Exceptions selbst werden in der <strong>/system/classes/page.php</strong> ausgelöst. So können wir sicher sein, dass der User immer auch Zugriff auf eine Seite hat, egal wo die Page-Klasse verwendet wird. Da wir hier sowieso prüfen müssen, ob die Seite vorhanden ist, müssen wir auch hier die FileNotFound-Exception werfen:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';">  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">loadProperties</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$alias</span><span style="color: #555555;">){</span>
    <span style="color: #ff3030;">if</span> <span style="color: #555555;">(</span><span style="color: #0000ff;">$alias</span> <span style="color: #555555;">==</span> <span style="color: #1861a7;">""</span><span style="color: #555555;">) {</span>
      <span style="color: #0000ff;">$alias</span> <span style="color: #555555;">=</span> <span style="color: #1861a7;">"home"</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias <span style="color: #555555;">=</span> <span style="color: #0000ff;">$alias</span><span style="color: #555555;">;</span>
    <span style="color: #0000ff;">$row</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadRow</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT * FROM {'dbprefix'}pages </span>
<span style="color: #1861a7;">                           WHERE alias = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$alias</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$row</span><span style="color: #555555;">);</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">loadPropertiesById</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$id</span><span style="color: #555555;">){</span>
    <span style="color: #0000ff;">$row</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">ReadRow</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"SELECT * FROM {'dbprefix'}pages </span>
<span style="color: #1861a7;">                           WHERE id = '"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$id</span><span style="color: #555555;">.</span><span style="color: #1861a7;">"'"</span><span style="color: #555555;">);</span>
    <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$row</span><span style="color: #555555;">);</span>
  <span style="color: #555555;">}</span>

  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">load</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$data</span><span style="color: #555555;">){</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$data</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>id <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>id<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>title <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>title<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>ownerid <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>owner<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>menu <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>menu<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias <span style="color: #555555;">=</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>meta  <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Meta</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>meta<span style="color: #555555;">-&gt;</span>pageid <span style="color: #555555;">=</span> <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>id<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>meta<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">load</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>editor <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #0000ff;">$data</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">editor</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">);</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">]-&gt;</span>role<span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">canAccess</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">)){</span>
        <span style="color: #ff3030;">throw new</span> <span style="color: #d11ced;">AccessDeniedException</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"Access denied: "</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">);</span>
      <span style="color: #555555;">}</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
      <span style="color: #ff3030;">throw new</span> <span style="color: #d11ced;">FileNotFoundException</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"File Not Found: "</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$this</span><span style="color: #555555;">-&gt;</span>alias<span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>
  <span style="color: #555555;">}</span></pre>
<p>Zu guter letzt kommt das Abfangen in der /content/index.txt. Diese Datei wurde vor Kurzem vom Daniel dahin verschoben, damit wir bei der Installation auch die index.php aufrufen können. Nach der Installation wird die index.txt zur index.php. Beim Abfangen der Exceptions tauschen wir einfach die aktuelle Seite mit der Seite aus der Exception aus:</p>
<pre style="color: #330066; background-color: #ffffff; font-size: 10pt; font-family: 'Courier New';"><span style="color: #555555;">&lt;</span>?PHP
  <span style="color: #ff3030;">function</span> <span style="color: #d11ced;">__autoload</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$class_name</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$imported</span> <span style="color: #555555;">=</span> false<span style="color: #555555;">;</span>
      <span style="color: #0000ff;">$namespaces</span> <span style="color: #555555;">=</span> <span style="color: #d11ced;">split</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"_"</span><span style="color: #555555;">,</span><span style="color: #d11ced;">strtolower</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$class_name</span><span style="color: #555555;">));</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">sizeOf</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$namespaces</span><span style="color: #555555;">) ==</span> <span style="color: #32ba06;">3</span><span style="color: #555555;">){</span>
        <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$namespaces</span><span style="color: #555555;">[</span><span style="color: #32ba06;">0</span><span style="color: #555555;">] ==</span> <span style="color: #1861a7;">"plugin"</span><span style="color: #555555;">){</span>
          <span style="color: #ff3030;">require_once</span> <span style="color: #1861a7;">"system/plugins/"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$namespaces</span><span style="color: #555555;">[</span><span style="color: #32ba06;">1</span><span style="color: #555555;">].</span><span style="color: #1861a7;">"/classes/"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$namespaces</span><span style="color: #555555;">[</span><span style="color: #32ba06;">2</span><span style="color: #555555;">].</span><span style="color: #1861a7;">".php"</span><span style="color: #555555;">;</span>
          <span style="color: #0000ff;">$imported</span> <span style="color: #555555;">=</span> true<span style="color: #555555;">;</span>
        <span style="color: #555555;">}</span>
        <span style="color: #ff3030;">else if</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$namespaces</span><span style="color: #555555;">[</span><span style="color: #32ba06;">0</span><span style="color: #555555;">] ==</span> <span style="color: #1861a7;">"skin"</span><span style="color: #555555;">){</span>
          <span style="color: #ff3030;">require_once</span> <span style="color: #1861a7;">"system/skins/"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$namespaces</span><span style="color: #555555;">[</span><span style="color: #32ba06;">1</span><span style="color: #555555;">].</span><span style="color: #1861a7;">"/classes/"</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$namespaces</span><span style="color: #555555;">[</span><span style="color: #32ba06;">2</span><span style="color: #555555;">].</span><span style="color: #1861a7;">".php"</span><span style="color: #555555;">;</span>
          <span style="color: #0000ff;">$imported</span> <span style="color: #555555;">=</span> true<span style="color: #555555;">;</span>
        <span style="color: #555555;">}</span>
      <span style="color: #555555;">}</span>
      <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #0000ff;">$imported</span><span style="color: #555555;">){</span>
        <span style="color: #ff3030;">require_once</span> <span style="color: #1861a7;">"system/classes/"</span><span style="color: #555555;">.</span><span style="color: #d11ced;">strtolower</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$class_name</span><span style="color: #555555;">).</span><span style="color: #1861a7;">".php"</span><span style="color: #555555;">;</span>
      <span style="color: #555555;">}</span>
  <span style="color: #555555;">}</span>
  <span style="color: #d11ced;">session_start</span><span style="color: #555555;">();</span>
  <span style="color: #ff3030;">include</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"system/settings.php"</span><span style="color: #555555;">);</span>
  <span style="color: #ff3030;">include</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"system/filterfilename.php"</span><span style="color: #555555;">);</span>
  GetParamParser<span style="color: #555555;">::</span><span style="color: #d11ced;">parse</span><span style="color: #555555;">();</span>
  <span style="color: #0000ff;">$db</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">MySQL</span><span style="color: #555555;">(</span><span style="color: #1861a7;">'system/dbsettings.php'</span><span style="color: #555555;">);</span>
  <span style="color: #0000ff;">$db</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">Connect</span><span style="color: #555555;">();</span>
  <span style="color: #0000ff;">$language</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Language</span><span style="color: #555555;">();</span>
  <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">]))</span> <span style="color: #0000ff;">$_SESSION</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'user'</span><span style="color: #555555;">] =</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">User</span><span style="color: #555555;">();</span>
  <span style="color: #ff3030;">if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">file_exists</span><span style="color: #555555;">(</span><span style="color: #d11ced;">getSetting</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"root"</span><span style="color: #555555;">).</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'include'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">".htm"</span><span style="color: #555555;">)){</span>
    <span style="color: #ff3030;">include</span><span style="color: #555555;">(</span><span style="color: #d11ced;">getSetting</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"root"</span><span style="color: #555555;">).</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'include'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">".htm"</span><span style="color: #555555;">);</span>
  <span style="color: #555555;">}</span>
  <span style="color: #ff3030;">else if</span><span style="color: #555555;">(</span><span style="color: #d11ced;">file_exists</span><span style="color: #555555;">(</span><span style="color: #d11ced;">getSetting</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"root"</span><span style="color: #555555;">).</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'include'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">".html"</span><span style="color: #555555;">)){</span>
    <span style="color: #ff3030;">include</span><span style="color: #555555;">(</span><span style="color: #d11ced;">getSetting</span><span style="color: #555555;">(</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"global"</span><span style="color: #555555;">,</span><span style="color: #1861a7;">"root"</span><span style="color: #555555;">).</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'include'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">".html"</span><span style="color: #555555;">);</span>
  <span style="color: #555555;">}</span>
  <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'include'</span><span style="color: #555555;">])){</span>
      <span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'include'</span><span style="color: #555555;">] =</span> <span style="color: #1861a7;">''</span><span style="color: #555555;">;</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">try</span><span style="color: #555555;">{</span>
      <span style="color: #0000ff;">$currentpage</span> <span style="color: #555555;">=</span> <span style="color: #ff3030;">new</span> <span style="color: #d11ced;">Page</span><span style="color: #555555;">();</span>
      <span style="color: #0000ff;">$currentpage</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">loadProperties</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$GLOBALS</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'db'</span><span style="color: #555555;">]-&gt;</span><span style="color: #d11ced;">EscapeString</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'include'</span><span style="color: #555555;">]));</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">catch</span><span style="color: #555555;">(</span>ContentLionException <span style="color: #0000ff;">$ex</span><span style="color: #555555;">){</span>
      <span style="color: #0000ff;">$currentpage</span> <span style="color: #555555;">=</span> <span style="color: #0000ff;">$ex</span><span style="color: #555555;">-&gt;</span><span style="color: #d11ced;">getErrorPage</span><span style="color: #555555;">();</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">if</span><span style="color: #555555;">(!</span><span style="color: #ff3030;">isset</span><span style="color: #555555;">(</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'skin'</span><span style="color: #555555;">])){</span>
      <span style="color: #ff3030;">include</span><span style="color: #555555;">(</span>SkinController<span style="color: #555555;">::</span><span style="color: #d11ced;">getCurrentSkinPath</span><span style="color: #555555;">().</span><span style="color: #1861a7;">"/index.php"</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>
    <span style="color: #ff3030;">else</span><span style="color: #555555;">{</span>
      <span style="color: #ff3030;">include</span><span style="color: #555555;">(</span><span style="color: #1861a7;">'system/skins/'</span><span style="color: #555555;">.</span><span style="color: #0000ff;">$_GET</span><span style="color: #555555;">[</span><span style="color: #1861a7;">'skin'</span><span style="color: #555555;">].</span><span style="color: #1861a7;">"/index.php"</span><span style="color: #555555;">);</span>
    <span style="color: #555555;">}</span>
  <span style="color: #555555;">}</span>
?<span style="color: #555555;">&gt;</span></pre>
<p>Alle weiteren Änderungen stehen bei Google Code in den Revisionen <a href="http://code.google.com/p/contentlion/source/detail?r=38" target="_self">r38</a> <a href="http://code.google.com/p/contentlion/source/detail?r=39" target="_self">r39</a> <a href="http://code.google.com/p/contentlion/source/detail?r=40" target="_self">r40</a> <a href="http://code.google.com/p/contentlion/source/detail?r=41" target="_self">r41</a> <a href="http://code.google.com/p/contentlion/source/detail?r=42" target="_self">r42</a> <a href="http://code.google.com/p/contentlion/source/detail?r=43" target="_self">r43</a> <a href="http://code.google.com/p/contentlion/source/detail?r=44" target="_self">r44</a> und <a href="http://code.google.com/p/contentlion/source/detail?r=45" target="_self">r45</a>.</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/y7shwlAlXkw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2010/08/exception-system-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2010/08/exception-system-cms/</feedburner:origLink></item>
	</channel>
</rss>
