<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Punkt 16</title>
	<atom:link href="http://www.punkt16.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.punkt16.de</link>
	<description>Entwicklung &#38; Mehr von Punkt18.com</description>
	<lastBuildDate>Wed, 25 Apr 2012 17:32:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Custom Post Types &#8211; Custom Rights</title>
		<link>http://www.punkt16.de/custom-post-types-custom-rights/</link>
		<comments>http://www.punkt16.de/custom-post-types-custom-rights/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 15:41:33 +0000</pubDate>
		<dc:creator>Florian Palme</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[add_cap]]></category>
		<category><![CDATA[Capabilities]]></category>
		<category><![CDATA[CPT]]></category>
		<category><![CDATA[Custom Post Type]]></category>
		<category><![CDATA[get_role]]></category>
		<category><![CDATA[register_post_type]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=356</guid>
		<description><![CDATA[Custom Post Types (CPTs) geben den Entwicklern die Möglichkeit, einfach, weitere &#8220;Seiten&#8221; oder &#8220;Artikel&#8221; hinzuzufügen. So lassen sich z.B. Verwaltungssysteme einfach umsetzen. In diesem Artikel möchte ich gar nicht auf die komplette Funktionalität und die einzelnen Parameter der Custom Post Types eingehen, da es dazu schon genug Artikel im WWW gibt. Ich möchte euch hier [...]]]></description>
			<content:encoded><![CDATA[<p>Custom Post Types (CPTs) geben den Entwicklern die Möglichkeit, einfach, weitere &#8220;Seiten&#8221; oder &#8220;Artikel&#8221; hinzuzufügen. So lassen sich z.B. Verwaltungssysteme einfach umsetzen.</p>
<p>In diesem Artikel möchte ich gar nicht auf die komplette Funktionalität und die einzelnen Parameter der Custom Post Types eingehen, da es dazu schon genug Artikel im WWW gibt. Ich möchte euch hier jedoch zeigen, wie Ihr einfach eigene &#8220;Fähigkeiten&#8221; ( Capabilities ) für den Post Type hinzufügen könnt, ohne auf die Fähigkeit <code>publish_post</code> o.ä. zurückgreifen zu müssen.</p>
<p><span id="more-356"></span></p>
<p>Angenommen Ihr habt einen CPT um einige Produkte zu verwalten und euer Code zum erstellen des CPT schaut wie folgt aus:</p>
<pre class="brush: php; title: ; notranslate">add_action( 'init', 'register_addresses' );

function register_addresses(){

	register_post_type( 'addresses',
		array(
			'public'    =&gt;        true,
			'rewrite'    =&gt;        array(
				'slug'        =&gt;        'adresse',
			),
			'supports'    =&gt;        array(
				 'title',
				 'editor',
				 'thumbnail',
			),
			'labels'    =&gt;        array(
				'name'                =&gt;        'Adressen',
				'singular_name'        =&gt;        'Adresse',
				'add_new'            =&gt;        'Adresse erstellen',
				'add_new_item'        =&gt;        'Neue Adresse erstellen',
				'edit_item'            =&gt;        'Adresse bearbeiten',
				'new_item'            =&gt;        'Neue Adresse',
				'view_item'            =&gt;        'Adresse ansehen',
				'search_items'        =&gt;        'Adresse suchen',
				'not_found'            =&gt;        'Keine Adresse gefunden',
				'not_found_in_trash'=&gt;        'Keine Adresse im Papierkorb gefunden',
			),
			'menu_position' =&gt; 70,
			'map_meta_cap' =&gt; true,
			'capability_type' =&gt; array( 'address', 'addresses' ),
		)
	);

}</pre>
<p>Nun prüft WordPress bei jedem Aufruf auf die Berechtigung <code>read_posts</code>, <code>publish_posts</code> oder <code>delete_posts</code>. Jedoch möchten wir, dass Adressen nur von der Verwaltung voll gepflegt werden dürfen. Andere, z.b. Autoren dürfen nur neue Adressen erstellen. Da aber die Autoren in unserem Fall Posts auch löschen dürfen, benötigen wir hier weitere Einschränkungen.<br />
Dazu ergänzen wir die Parameter um zwei weitere:</p>
<pre class="brush: php; title: ; notranslate">'map_meta_cap' =&gt; true,
'capability_type' =&gt; array( 'address', 'addresses' ),</pre>
<p>Der Parameter <code>map_meta_cap</code> gibt an, dass nicht nach den Standard-Befugnissen geprüft werden soll, sondern eben nach denen, die für diesen Post Type bestimmt sind.<br />
Mit <code>capability_type</code> geben wir an, wie die neuen Befugnisse überhaupt heißen. In unserem Fall würden nun die Standard-Befugnisse durch folgende ersetzt:</p>
<pre>Auszug aus <code>print_r( $GLOBALS['wp_post_types']['addresses'] );</code> :
[cap] => stdClass Object
        (
            [edit_post] => edit_address
            [read_post] => read_address
            [delete_post] => delete_address
            [edit_posts] =>edit_addresses
            [edit_others_posts] => edit_others_addresses
            [publish_posts] => publish_addresses
            [read_private_posts] => read_private_addresses
            [read]=>; read
            [delete_posts] => delete_addresses
            [delete_private_posts] => delete_private_addresses
            [delete_published_posts] => delete_published_addresses
            [delete_others_posts] => delete_others_addresses
            [edit_private_posts] => edit_private_addresses
            [edit_published_posts] => edit_published_addresses
        )</pre>
<p>Nun können wir der Verwaltung alle Befugnisse zuweisen und den Autoren z.B. nur <code>edit_address</code>, <code>edit_addresses</code>, <code>read_address</code> und <code>publish_addresses</code> zuweißen. Dies kann mit einem von vielen Plugins geschehen, oder in eurem Plugin-Code. ( Vergesst nicht, dem Administrator ebenfalls rechte zu geben! Andernfalls wird er nicht einmal den Menüpunkt sehen können. <img src='http://www.punkt16.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<pre class="brush: php; title: ; notranslate">/* Rolle auslesen */
$author = get_role( 'author' );

/* Befugnisse hinzufügen */
$author-&gt;add_cap( 'edit_address' );
$author-&gt;add_cap( 'edit_addresses' );
$author-&gt;add_cap( 'read_address' );
$author-&gt;add_cap( 'publish_addresses' );</pre>
<p>&nbsp;</p>
<p>Ich hoffe, dieser kleine Artikel zu Custom Post Types und den erweiterten Berechtigungen hat euch geholfen bei eurem eigenen Projekt weiter zu kommen.</p>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=356&amp;md5=266c7be9c54a4783454982d5c93ddac9" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/custom-post-types-custom-rights/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Fcustom-post-types-custom-rights%2F&amp;language=de_DE&amp;category=text&amp;title=Custom+Post+Types+%26%238211%3B+Custom+Rights&amp;description=Custom+Post+Types+%28CPTs%29+geben+den+Entwicklern+die+M%C3%B6glichkeit%2C+einfach%2C+weitere+%26%238220%3BSeiten%26%238221%3B+oder+%26%238220%3BArtikel%26%238221%3B+hinzuzuf%C3%BCgen.+So+lassen+sich+z.B.+Verwaltungssysteme+einfach+umsetzen.+In+diesem+Artikel+m%C3%B6chte+ich+gar+nicht+auf...&amp;tags=add_cap%2CCapabilities%2CCode%2CCPT%2CCustom+Post+Type%2Cget_role%2CPHP%2Cregister_post_type%2CWordpress%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Update: Was wird kommen?</title>
		<link>http://www.punkt16.de/update-was-wird-kommen/</link>
		<comments>http://www.punkt16.de/update-was-wird-kommen/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 08:38:42 +0000</pubDate>
		<dc:creator>Florian Palme</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Custom Post Type]]></category>
		<category><![CDATA[fpLoadClass]]></category>
		<category><![CDATA[Functions]]></category>
		<category><![CDATA[Funktionen]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Routinen]]></category>
		<category><![CDATA[Sidebar]]></category>
		<category><![CDATA[Upcoming]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=346</guid>
		<description><![CDATA[Servus zusammen! Leider konnte ich während dem (WordPress-) Projekt nicht so viel schreiben, da es einfach verdammt viel Zeit in Anspruch genommen hat / nimmt. Nun, das ist bald vorbei, dann werde ich hier einige Artikel nachtragen. Was kommen wird? Einiges!: Funktions-Bibliothek ( Alles mögliche an nützlichen Funktionen, welche ich für dieses Projekt verwendet habe [...]]]></description>
			<content:encoded><![CDATA[<p>Servus zusammen!</p>
<p>Leider konnte ich während dem (WordPress-) Projekt nicht so viel schreiben, da es einfach verdammt viel Zeit in Anspruch genommen hat / nimmt. Nun, das ist bald vorbei, dann werde ich hier einige Artikel nachtragen. Was kommen wird? Einiges!:</p>
<ul>
<li>Funktions-Bibliothek ( Alles mögliche an nützlichen Funktionen, welche ich für dieses Projekt verwendet habe )</li>
<li>Sidebar-Widgets</li>
<li>Custom Post Types</li>
<li>Custom Post Types Übersicht ( Eigene Spalten, Sortiermöglichkeiten, Einschränkungsmöglichkeiten )</li>
<li>Installations-Routinen</li>
<li>fpLoadClass</li>
<li>&#8230;</li>
</ul>
<p>Bis dahin!</p>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=346&amp;md5=f69825bbfc0e4974ff829d10cd6333b3" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/update-was-wird-kommen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Fupdate-was-wird-kommen%2F&amp;language=de_DE&amp;category=text&amp;title=Update%3A+Was+wird+kommen%3F&amp;description=Servus+zusammen%21+Leider+konnte+ich+w%C3%A4hrend+dem+%28WordPress-%29+Projekt+nicht+so+viel+schreiben%2C+da+es+einfach+verdammt+viel+Zeit+in+Anspruch+genommen+hat+%2F+nimmt.+Nun%2C+das+ist+bald+vorbei%2C...&amp;tags=Custom+Post+Type%2CfpLoadClass%2CFunctions%2CFunktionen%2CInstallation%2CRoutinen%2CSidebar%2CUpcoming%2CUpdate%2CWidgets%2CWordpress%2Cblog" type="text/html" />
	</item>
		<item>
		<title>WordPress Theme Options</title>
		<link>http://www.punkt16.de/wordpress-theme-options/</link>
		<comments>http://www.punkt16.de/wordpress-theme-options/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 10:59:28 +0000</pubDate>
		<dc:creator>Florian Palme</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Code-Snippet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[add_action]]></category>
		<category><![CDATA[add_theme_page]]></category>
		<category><![CDATA[admin_init]]></category>
		<category><![CDATA[admin_menu]]></category>
		<category><![CDATA[get_categories]]></category>
		<category><![CDATA[get_option]]></category>
		<category><![CDATA[Kategorien]]></category>
		<category><![CDATA[Options]]></category>
		<category><![CDATA[register_settings]]></category>
		<category><![CDATA[settings_fields]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=323</guid>
		<description><![CDATA[Manchmal ist es von Nöten, dass man dem User Optionen für das eigene Theme anbietet. Dies kann aus Design-Gründen, zum Beispiel für verschiedene Backgrounds oder auch eine Kategorieauswahl, zur Darstellung der Artikel in einer im Design integrierten Box. In diesem Post möchte ich euch einen guten Weg aufzeigen, eure eigene Options-Seite für euer Theme zu [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal ist es von Nöten, dass man dem User Optionen für das eigene Theme anbietet. Dies kann aus Design-Gründen, zum Beispiel für verschiedene Backgrounds oder auch eine Kategorieauswahl, zur Darstellung der Artikel in einer im Design integrierten Box.<br />
In diesem Post möchte ich euch einen guten Weg aufzeigen, eure eigene Options-Seite für euer Theme zu bauen. Diese Seite wird ein Text-Feld beinhalten sowie eine Auswahl an verschiedenen Kategorien für eine Auflistung in einer Box. Der Clou an der Sache ist, dass wir alle Daten dieser Options-Page in einem einzigen Datenbank-Eintrag speichern.</p>
<p><span id="more-323"></span></p>
<p>Als allererstes erstellen wir eine Funktion, in welcher WordPress gesagt wird, dass wir nun eine neue Options-Page erstellen. Dadurch müssen wir uns nicht groß um die Speicherung der Daten kümmern.</p>
<pre class="brush: php; title: ; notranslate">//functions.php

//die funktion
function ctheme_options_init(){
  //Registrieren der Options &quot;ctheme_theme&quot;, die Speichervariable in der Tabelle &quot;ctheme_theme_options&quot; und eine Validierungs-Funktion (&quot;ctheme_options_validate&quot;, dazu später mehr)
  register_setting('ctheme_theme', 'ctheme_theme_options', 'ctheme_options_validate');
}

add_action('admin_init', 'ctheme_options_init');</pre>
<p>&nbsp;</p>
<p>Damit auch etwas dargestellt werden kann, benötigen wir eine do_page-Funktion. In dieser könnt ihr eine externe Datei inkludieren, um eine bessere Übersicht zu behalten. Ich schreibe es für dieses Tutorial direkt mit hinein.</p>
<pre class="brush: php; html-script: true; title: ; notranslate">&lt;?php function ctheme_options_do_page(){
?&gt;
&lt;div class=&quot;wrap&quot;&gt;
  &lt;h2&gt;cTheme Theme Optionen&lt;/h2&gt;

  &lt;form action=&quot;options.php&quot; method=&quot;post&quot;&gt;
    &lt;?php //Schreibt verschiedene hidden Inputs
    settings_fields('ctheme_theme'); ?&gt;
    &lt;?php //Hier werden die gespeicherten Optionen abgefragt. Wir erinnern uns, dass wir alles in einem Eintrag speichern!
    $options = get_option('ctheme_theme_options'); ?&gt;

    &lt;table class=&quot;form-table&quot;&gt;
      &lt;tbody&gt;
        &lt;tr valign=&quot;top&quot;&gt;
          &lt;th scope=&quot;row&quot;&gt;Titel der Box&lt;/th&gt;
          &lt;td&gt;&lt;input type=&quot;text&quot; value=&quot;&quot; name=&quot;&quot; id=&quot;&quot; /&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;th scope=&quot;row&quot;&gt;Kategorie für die Auflistung in der Box&lt;/th&gt;
          &lt;td&gt;Hier stehen dann die Kategorien..&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;

    &lt;p class=&quot;submit&quot;&gt;&lt;input class=&quot;button-primary&quot; type=&quot;submit&quot; value=&quot;&lt;?php _e('Save Changes') ?&gt;&quot; /&gt;&lt;/p&gt;

    &lt;/form&gt;
  &lt;/div&gt;
&lt;?php } ?&gt;</pre>
<p>Da wir alle Daten nur in einem Datenbankeintrag speichern, müssen wir die vom User eingegeben Daten selbst validieren.</p>
<pre class="brush: php; title: ; notranslate">function ctheme_options_validate($input){
	$input['boxtitle'] = ( $input['boxtitle'] == '' ) ? 'Standard-Box' : $input['boxtitle'];
	$input['categorylist'] = ( is_array( $input['categorylist'] ) ) ? $input['categorylist'] : array();
	return $input;
}</pre>
<p>Nun müssen wir die Werte noch änderbar machen. Fangen wir mit der Input-Box an:</p>
<pre class="brush: php; first-line: 14; highlight: [16]; html-script: true; title: ; notranslate">&lt;tr valign=&quot;top&quot;&gt;
  &lt;th scope=&quot;row&quot;&gt;Titel der Box&lt;/th&gt;
  &lt;td&gt;&lt;input type=&quot;text&quot; value=&quot;&lt;?php echo $options['boxtitle']; ?&gt;&quot; name=&quot;ctheme_theme_options[boxtitle]&quot; id=&quot;ctheme_theme_options_boxtitle&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;</pre>
<p>Wie Ihr seht, verwenden wir hier als name-Attribute den $options-Name als Array. (Hm, ist der Satz denn jetzt verständlich?)</p>
<p>Machen wir uns nun an die Auswahl der Kategorien. Dazu brauchen wir zwei Funktionen: Die eine listet alle Kategorien rekursive auf. Dafür ist es notwendig zu prüfen, ob die aktuelle Kategorie in der Schleife eine Unter-Kategorie hat, die zweite Funktion.</p>
<pre class="brush: php; title: ; notranslate">/***************
* list subcategories
* @categories wp-get_categories-Array
* @categoryId choosen category
* @label label to save in options
* @options the options
*******************/
function ctheme_options_listcategory( $categories, $categoryId, $label, &amp;$options ) {
        //alle kategorien durchgehen, um die gewünschten Kategorien zu erhalten...
        // 0 gibt z.B. alle Top-Kategorien aus, 8 z.B. nur die, welcher eine Sub-Kategorie der Top-Kategorie 8 ist
	foreach( $categories as $category ):
                //Hat diese Kategorie die gewünschte ID?
		if( $category-&gt;category_parent == $categoryId ):
		?&gt;
			&lt;li&gt;
				&lt;input name=&quot;ctheme_theme_options[&lt;?php echo $label; ?&gt;][]&quot; type=&quot;checkbox&quot; value=&quot;&lt;?php echo $category-&gt;term_id; ?&gt;&quot; &lt;?php if(@in_array($category-&gt;term_id, $options[$label])) { echo 'checked=&quot;checked&quot;'; } ?&gt; /&gt; &lt;?php echo $category-&gt;name; ?&gt;
				&lt;?php
                                //Ruft nun die 2. Funktion auf, um zu prüfen, ob diese Kategorie weitere Kategorien enthält
                                if($subcats = ctheme_options_hassubcategory($categories, $category-&gt;term_id)): ?&gt;
					&lt;ul style=&quot;padding-left:20px; margin-bottom:14px;&quot;&gt;
						&lt;?php
                                                //Sollte dies der Fall sein, rufe ctheme_options_listcategory erneut auf
                                                ctheme_options_listcategory( $categories, $category-&gt;term_id, $label, $options ); ?&gt;
					&lt;/ul&gt;
				&lt;?php endif; ?&gt;
			&lt;/li&gt;
	&lt;?php endif;
	endforeach;
}

/* check, if the given categoryid is in the category-array */
function ctheme_options_hassubcategory( $categories, $categoryId ){
	$hasSubcategory = false;

	foreach( $categories as $category ) {
		if( $category-&gt;category_parent == $categoryId) {
			$hasSubcategory = true;
			break;
		}
	}

	return $hasSubcategory;
}</pre>
<p>In unserer do_page-Funktion können wir die Kategorie-Funktion nun einfach mit dem Label, welchen wir in der Validierungs-Funktion angegeben haben, aufrufen.</p>
<pre class="brush: php; first-line: 19; highlight: [21]; title: ; notranslate">&lt;tr&gt;
  &lt;th scope=&quot;row&quot;&gt;Kategorie für die Auflistung in der Box&lt;/th&gt;
  &lt;td&gt;
    &lt;?php
        //Alle Kategorien von WordPress mit hide_empty=0 abfragen... Wir benötigen alle Kategorien für die Optionen
        $allCategories = get_categories('hide_empty=0');

        ctheme_options_listcategory( $allCategories, 0, categorylist, $options );
    ?&gt;
  &lt;/td&gt;
&lt;/tr&gt;</pre>
<p>Als letztes müsst ihr die Options-Seite noch an die Theme-Navigation im Admin-Bereich hängen:</p>
<pre class="brush: php; title: ; notranslate">//register options page
add_action('admin_menu', 'ctheme_menu');

function ctheme_menu(){
	add_theme_page('cTheme Optionen', 'Optionen', 'edit_theme_options', 'ctheme-options', 'ctheme_options_do_page');
}</pre>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=323&amp;md5=13a8863de58ad65ec0b28ded437e9500" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/wordpress-theme-options/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Fwordpress-theme-options%2F&amp;language=de_DE&amp;category=text&amp;title=WordPress+Theme+Options&amp;description=Manchmal+ist+es+von+N%C3%B6ten%2C+dass+man+dem+User+Optionen+f%C3%BCr+das+eigene+Theme+anbietet.+Dies+kann+aus+Design-Gr%C3%BCnden%2C+zum+Beispiel+f%C3%BCr+verschiedene+Backgrounds+oder+auch+eine+Kategorieauswahl%2C+zur+Darstellung...&amp;tags=add_action%2Cadd_theme_page%2Cadmin_init%2Cadmin_menu%2Cget_categories%2Cget_option%2CKategorien%2COptions%2Cregister_settings%2Csettings_fields%2CTheme%2CWordpress%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Neustart!</title>
		<link>http://www.punkt16.de/neustart/</link>
		<comments>http://www.punkt16.de/neustart/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 10:43:54 +0000</pubDate>
		<dc:creator>Florian Palme</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[E-Mail]]></category>
		<category><![CDATA[Erfahrung]]></category>
		<category><![CDATA[Kommentar]]></category>
		<category><![CDATA[Lösung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Punkt 18]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=318</guid>
		<description><![CDATA[Nach sehr langer Pause auf diesem Blog wird in den nächsten (sicheren!) 3 Monaten immer wieder neues erscheinen. Einige werden es noch nicht mitbekommen haben, dass ich nun mit Punkt 18 (.com) selbstständig bin. Gut, vor kurzem bekam ich einen recht großen Auftrag. Ich solle doch bitte ein Plugin für WordPress entwicklen. Gut, kein Ding, [...]]]></description>
			<content:encoded><![CDATA[<p>Nach sehr langer Pause auf diesem Blog wird in den nächsten (sicheren!) 3 Monaten immer wieder neues erscheinen.</p>
<p>Einige werden es noch nicht mitbekommen haben, dass ich nun mit Punkt 18 (.com) selbstständig bin. Gut, vor kurzem bekam ich einen recht großen Auftrag. Ich solle doch bitte ein Plugin für WordPress entwicklen. Gut, kein Ding, mach ich. In enger zusammenarbeit mit der Firma und deren Kunden wird das auch ein richtig schönes Ding! <img src='http://www.punkt16.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Hier im Blog werde ich in der Zeit meine gesammelte Erfahrung, Lösungsansätze und Lösungen präsentieren. Für alle, die auch mal auf die selben Probleme stoßen.<br />
Auch wird es eventuell ab und an ein kleines Plugin an sich für WordPress geben, welche ich zeitgleich entwickle, um eventuelle Probleme zu lösen.</p>
<p>Gerne sind natürlich Kommentare gesehen. Auch, wenn ihr natürlich möchtet, einen Beitrag über WordPress / PHP, welchen Ihr mir per E-Mail an blog@punkt16.de zukommen lassen könnt.</p>
<p>In diesem Sinne!:</p>
<pre lang="php">$startedochendlich = new Blog();

$startedochendlich->starteJetzt('!!!');</pre>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=318&amp;md5=a3d05181bc34aeac5cfbf6ed05fee015" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/neustart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Fneustart%2F&amp;language=de_DE&amp;category=text&amp;title=Neustart%21&amp;description=Nach+sehr+langer+Pause+auf+diesem+Blog+wird+in+den+n%C3%A4chsten+%28sicheren%21%29+3+Monaten+immer+wieder+neues+erscheinen.+Einige+werden+es+noch+nicht+mitbekommen+haben%2C+dass+ich+nun+mit+Punkt...&amp;tags=Blog%2CE-Mail%2CErfahrung%2CKommentar%2CL%C3%B6sung%2CPHP%2CPlugin%2CPunkt+18%2CWordpress%2Cblog" type="text/html" />
	</item>
		<item>
		<title>ActionScript 3: Timeout</title>
		<link>http://www.punkt16.de/actionscript-3-timeout/</link>
		<comments>http://www.punkt16.de/actionscript-3-timeout/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 13:58:19 +0000</pubDate>
		<dc:creator>Florian Palme</dc:creator>
				<category><![CDATA[ActionScript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Snippet]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=271</guid>
		<description><![CDATA[Ich musste gerade für meinen Chef ein Coverflow für eine Messe anpassen. Das Problem: Es sollte sich automatisch bewegen. Dieses Coverflow tat das natürlich nicht! Also fix ein Timeout geschrieben, welches mir die &#8220;weiter&#8221;-Funktion alle x Sekunden aufruft!]]></description>
			<content:encoded><![CDATA[<p>Ich musste gerade für meinen Chef ein Coverflow für eine Messe anpassen. Das Problem: Es sollte sich automatisch bewegen. Dieses Coverflow tat das natürlich nicht! Also fix ein Timeout geschrieben, welches mir die &#8220;weiter&#8221;-Funktion alle x Sekunden aufruft!</p>
<pre class="brush: as3; title: ; notranslate">import flash.events.TimerEvent;
import flash.utils.Timer;

var myTimer:Timer = new Timer(5000); //Timer-Klasse, alle 5 Sekunden
myTimer.addEventListener(TimerEvent.TIMER, myFunction); //Welche Funktion soll alle x Sekunden aufgerufen werden?
myTimer.start(); //Den Timer starten</pre>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=271&amp;md5=a0cf5ccc1b00ca0b303e4bf9c054598e" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/actionscript-3-timeout/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Factionscript-3-timeout%2F&amp;language=de_DE&amp;category=text&amp;title=ActionScript+3%3A+Timeout&amp;description=Ich+musste+gerade+f%C3%BCr+meinen+Chef+ein+Coverflow+f%C3%BCr+eine+Messe+anpassen.+Das+Problem%3A+Es+sollte+sich+automatisch+bewegen.+Dieses+Coverflow+tat+das+nat%C3%BCrlich+nicht%21+Also+fix+ein+Timeout+geschrieben%2C...&amp;tags=ActionScript+3%2CCode%2CFlash%2CSnippet%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Das Buch-Spiel!</title>
		<link>http://www.punkt16.de/das-buch-spiel/</link>
		<comments>http://www.punkt16.de/das-buch-spiel/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 23:33:33 +0000</pubDate>
		<dc:creator>Florian Palme</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Buch]]></category>
		<category><![CDATA[Diskussion]]></category>
		<category><![CDATA[Spiel]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=263</guid>
		<description><![CDATA[Da Ich zurzeit so wenige Poste - Entschuldigung dafür! - gibt es ein kleines "Spiel"! [ <a href="http://www.punkt16.de/allgemein/das-buch-spiel/" target="_blank" title="Das Buch-Spiel">Mehr erfahren...</a> ] ]]></description>
			<content:encoded><![CDATA[<p>Da Ich zurzeit so wenige Poste &#8211; Entschuldigung dafür! &#8211; gibt es ein kleines &#8220;Spiel&#8221;!</p>
<p><span id="more-263"></span></p>
<p>&nbsp;</p>
<p>Ganz einfache Spielregeln und jeder kann sofort mitspielen!</p>
<p><b>1.</b>Schnappe dir das Buch, welches am nächsten bei dir liegt. <b>Jetzt!</b><br />
<b>2.</b> Schlage Seite <b>56</b> auf.<br />
<b>3.</b> Suche den <b>5.</b> Satz.<br />
<b>4.</b> Schreibe diesen Satz als Kommentar zu diesem Beitrag.</p>
</ul>
<p>&nbsp;</p>
<p>Bei mir ist es:<br />
&#8220;Die Erfahrung von Albert Camus, der die Absurdität des Lebens kannte, aber an ihr nicht verzweifelt ist, möchte auch uns ermutigen, mitten in der Kälte unseres Herzens die unbesiegbare Wärme der Sonne zu sehen.&#8221;</p>
<p>&nbsp;</p>
<p>Was das bringt?! Nichts! Aber macht auf eine Art und Weiße Spass! <img src='http://www.punkt16.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=263&amp;md5=f296a2cbe9e22f2611b84fd3ecc6972f" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/das-buch-spiel/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Fdas-buch-spiel%2F&amp;language=de_DE&amp;category=text&amp;title=Das+Buch-Spiel%21&amp;description=Da+Ich+zurzeit+so+wenige+Poste+%26%238211%3B+Entschuldigung+daf%C3%BCr%21+%26%238211%3B+gibt+es+ein+kleines+%26%238220%3BSpiel%26%238221%3B%21+%26nbsp%3B+Ganz+einfache+Spielregeln+und+jeder+kann+sofort+mitspielen%21+1.Schnappe+dir+das+Buch%2C+welches+am...&amp;tags=Buch%2CDiskussion%2CSpiel%2Cblog" type="text/html" />
	</item>
		<item>
		<title>PHP Kalender 1.1.1</title>
		<link>http://www.punkt16.de/php-kalender-1-1/</link>
		<comments>http://www.punkt16.de/php-kalender-1-1/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 15:29:32 +0000</pubDate>
		<dc:creator>Florian Palme</dc:creator>
				<category><![CDATA[Klassen]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=250</guid>
		<description><![CDATA[Version 1.1.1 des Punkt . 16 PHP Kalender! [ <a href="http://www.punkt16.de/php-kalender-1-1" target="_blank" title="PHP Kalender 1.1.1">Mehr erfahren...</a> ] ]]></description>
			<content:encoded><![CDATA[<p>Version 1.1.1 des Punkt . 16 PHP Kalender!</p>
<p><span id="more-250"></span></p>
<p>Mit der neuen Version des Kalenders, erweitert sich der Funktionsumfang um Feiertage &#038; Ferien.</p>
<p>&nbsp;</p>
<p>Als Beispiel fügen wir Silvester dieses Jahres hinzu. Da Silvester jedes Jahr statt findet, verwenden wir für die Jahreszahl ein Sternchen ( * ). Diese Sternchen könnt ihr Nutzen wie Ihr möchtet, d.h. auch für Tage und Monate.</p>
<pre lang="php">$kalender->addHoliday('Silvester', '31.12.*');</pre>
<p>Oder habt Ihr vllt an jedem 5. Tag im Monat ein Fest?</p>
<pre lang="php">$kalender->addHoliday('Monats-Party', '05.*.*');</pre>
<p>&nbsp;</p>
<p><b>Schon gewusst?</b><br />
Ihr könnt noch zwei Paramter bei &#8220;addHoliday&#8221; übergeben:<br />
Eine URL, welche beim Klick auf den Eintrag auf eine Seite weiterleitet<br />
Eine CSS-Klasse, welche dieser Tag bekommen soll!</p>
<p>So könnt Ihr z.B. Weihnachten (welches schon fest hinterlegt ist <img src='http://www.punkt16.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) schön hinterlegen</p>
<pre lang="php">$kalender->addHoliday('Weihnachten', '24.12.*',
'http://deineseite.de/weihnachten.html', 'weihnachten');</pre>
<p>Der 24.12. wird zu http://deineseite.de/weihnachten.html verlinkt und bekommt die Klasse &#8220;weihnachten&#8221;, welche diesen Tag vielleicht rot hinterlegt? <img src='http://www.punkt16.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>Möchtet Ihr einen eingetragenen Feiertag wieder löschen, wie zum Beispiel &#8220;Heilige drei Könige&#8221; (fest Eingetragen), verwendet Ihr folgende Funktion:</p>
<pre lang="php">$kalender->removeHoliday('06.1.*');</pre>
<p>So werden genau die Feiertage ausgetragen, welche am 06.1.* stattfinden.</p>
<p>&nbsp;</p>
<p>Weiter habt ihr die Möglichkeit, ganze Ferien einzutragen:</p>
<pre lang="php">$kalender->addVacation('26.12.2009', '29.12.2009', 'Testferien');</pre>
<p>Das erste Datum ist der Beginn, das zweite Datum das Ende (wird markiert). Der Dritte Parameter &#8220;Testferien&#8221; ist der Name dieser Ferien.<br />
Hier könnt Ihr auch, wie oben, zwei weitere Parameter anhängen, welche eine URL und eine CSS-Klasse behinhalten.</p>
<p>&nbsp;</p>
<p>Ferien könnt ihr löschen, in dem Ihr beim Funktionsaufruf von removeVacation den Namen dieser Ferien übergebt:</p>
<pre lang="php">$kalender->removeVacation('Testferien');</pre>
<p>&nbsp;</p>
<p>Ein kompletter Code könnt nun so aussehen:</p>
<pre lang="php">$deutscheDaten=array('daysLong'=>array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'),'daysShort'=>array('Mo','Di','Mi','Do','Fr','Sa','So',),'monthsLong'=>array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'),'monthsShort'=>array('Jan','Feb','März','Apr','Mai','Juni','Juli','Aug','Sep','Okt','Nov','Dez'));

$kalender= new Punkt16_Calendar($deutscheDaten);
$kalender->addHoliday('Silvester', '31.12.*');
$kalender->addHoliday('Monats-Party', '05.*.*');
$kalender->removeHoliday('06.1.*');
$kalender->addVacation('26.12.2009', '29.12.2009', 'Testferien');
$kalender->removeVacation('Testferien');

echo $kalender->getCalendar();</pre>
<p>&nbsp;</p>
<p>Ein Beispiel mit den neuen Funktionen könnt ihr euch hier ansehen: <a href="http://examples.punkt16.de/PHP/Kalender1.1.1/" target="_blank" title="PHP Kalender 1.1 Beispiel">http://examples.punkt16.de/PHP/Kalender1.1.1/</a><br />
Die benötigten Dateien könnt Ihr euch <a href="http://downloads.punkt16.de/download.php?file=/PHP/Punkt16_PHP_Calendar_1_1_1.zip" title="PHP Kalender 1.1.1 Files">hier downloaden</a>!</p>
<p>&nbsp;</p>
<p><b>Ein Backlink zu www.punkt16.de ist erwünscht, aber nicht Pflicht!</b></p>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=250&amp;md5=0e4cf1d49406cd3500efab0023d32b72" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/php-kalender-1-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Fphp-kalender-1-1%2F&amp;language=de_DE&amp;category=text&amp;title=PHP+Kalender+1.1.1&amp;description=Version+1.1.1+des+Punkt+.+16+PHP+Kalender%21+Mit+der+neuen+Version+des+Kalenders%2C+erweitert+sich+der+Funktionsumfang+um+Feiertage+%26%23038%3B+Ferien.+%26nbsp%3B+Als+Beispiel+f%C3%BCgen+wir+Silvester+dieses+Jahres...&amp;tags=Code%2CPHP%2CSnippet%2CTutorial%2Cblog" type="text/html" />
	</item>
		<item>
		<title>The Incredible Polo</title>
		<link>http://www.punkt16.de/the-incredible-polo/</link>
		<comments>http://www.punkt16.de/the-incredible-polo/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 10:59:41 +0000</pubDate>
		<dc:creator>Florian Palme</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Fundstück]]></category>
		<category><![CDATA[Musik]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=246</guid>
		<description><![CDATA[Sie sehen aus wie vollgedröhnte Cracks. Es sind aber die einzig wahren Musiker! [ <a href="http://www.punkt16.de/allgemein/the-incredible-polo/" target="_blank" title="The Incredible Polo">Mehr erfahren...</a> ] ]]></description>
			<content:encoded><![CDATA[<p>Sie sehen aus wie vollgedröhnte Cracks. Es sind aber die einzig wahren Musiker!</p>
<p><span id="more-246"></span></p>
<p>Wer hat es noch nie Versucht: Man tipper auf einem Klavier, zupft auf seiner Gitarre, singt vielleicht noch bisschen was dazu. Schön und gut. Nur klingt dies oft nicht sonderlich gut. Auf &laquo;<a href="http://incredibox.fr/" target="_blank" title="Incredibox">Incredibox.fr</a>&raquo; könnt Ihr euch nun euer eigenes kleines Lied zusammenbauen.</p>
<p>Man wählt zwischen einigen Instrumenten, Rythmen, Effekten, Chor-Stimmen und Stimmen und zieht Sie in den Figuren. Sofort wird wiedergegeben, was man gerade zusammengesetzt hat. Ausserdem kann man, nach einiger Zeit, zwischen den verschienden Bonus-Modis wechseln.</p>
<p>&nbsp;</p>
<p>Viel Spaß auf &laquo;<a href="http://incredibox.fr/" target="_blank" title="Incredibox">Incredibox.fr</a>&raquo;</p>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=246&amp;md5=5b696ed07aad785f8a629926b06c4d66" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/the-incredible-polo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Fthe-incredible-polo%2F&amp;language=de_DE&amp;category=text&amp;title=The+Incredible+Polo&amp;description=Sie+sehen+aus+wie+vollgedr%C3%B6hnte+Cracks.+Es+sind+aber+die+einzig+wahren+Musiker%21+Wer+hat+es+noch+nie+Versucht%3A+Man+tipper+auf+einem+Klavier%2C+zupft+auf+seiner+Gitarre%2C+singt+vielleicht...&amp;tags=Fundst%C3%BCck%2CMusik%2CWebsite%2Cblog" type="text/html" />
	</item>
		<item>
		<title>PHP Kalender</title>
		<link>http://www.punkt16.de/php-kalender/</link>
		<comments>http://www.punkt16.de/php-kalender/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 23:17:23 +0000</pubDate>
		<dc:creator>Florian Palme</dc:creator>
				<category><![CDATA[Klassen]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=239</guid>
		<description><![CDATA[Ein PHP-basierender Kalender, welcher den aktuellen Tag markiert. [ <a href="http://www.punkt16.de/php/php-kalender/" target="_blank">Mehr erfahren...</a> ] ]]></description>
			<content:encoded><![CDATA[<p>Ein PHP-basierender Kalender, welcher den aktuellen Tag markiert.</p>
<p><span id="more-239"></span></p>
<p>Heute gibt es ein Skript für einen PHP-basierenden Kalender! Das Skript selbst erkläre ich nicht, da es den Rahmen mehr als sprengen würde. Allerdings erkläre ich euch, wie einfach es Anzuwenden ist! Die PHP-Klasse, welche ihr benötigt, könnt ihr euch <a href="http://downloads.punkt16.de/download.php?file=/PHP/Punkt16_PHP_Calendar.zip" target="_blank">hier downloaden</a>.</p>
<p>Als ersters solltet Ihr das Skript includen:</p>
<pre lang="php">include('calendar.class.php');</pre>
<p>Nun müsst Ihr ein neues Objekt instanzieren. Das heisst nichts anderes, als den Kalender aufzurufen und in einer Variable fest zu halten.</p>
<pre lang="php">$kalender = new Punkt16_Calendar();</pre>
<p>Jetzt noch die Funktion <span style="color: #2060a0;">getCalendar</span> aufrufen, und mit <span style="color: #2060a0;">echo</span> ausgeben:</p>
<pre lang="php">echo $kalender-&gt;getCalendar();</pre>
<p>Der komplette Code für den Standard-Kalender sieht wie folgt aus:</p>
<pre lang="php">include('calendar.class.php');
$kalender = new Punkt16_Calendar();
echo $kalender-&gt;getCalendar();</pre>
<p>Ihr habt nun aber englische Monats- und Tagesnamen. Um diese zu ändern, müsst Ihr beim instanzieren des Objekts ein Array mit den deutschen Namen übergeben.<br />
Euer Array sieht so aus:</p>
<pre lang="php">$deutscheDaten = array(
					   'daysLong' =&gt; array(
										   		'Montag',
												'Dienstag',
												'Mittwoch',
												'Donnerstag',
												'Freitag',
												'Samstag',
												'Sonntag'
										   ),

					   'daysShort' =&gt; array(
												'Mo',
												'Di',
												'Mi',
												'Do',
												'Fr',
												'Sa',
												'So',
											),

					   'monthsLong' =&gt; array(
											 	'Januar',
												'Februar',
												'März',
												'April',
												'Mai',
												'Juni',
												'Juli',
												'August',
												'September',
												'Oktober',
												'November',
												'Dezember'
											 ),

					   'monthsShort' =&gt; array(
											  	'Jan',
												'Feb',
												'März',
												'Apr',
												'Mai',
												'Juni',
												'Juli',
												'Aug',
												'Sep',
												'Okt',
												'Nov',
												'Dez'
											  )
					   );</pre>
<p>Falls Ihr euren Code nicht so aufblähen möchtet, hier die kurze Fassung:</p>
<pre lang="php">$deutscheDaten=array('daysLong'=&gt;array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'),'daysShort'=&gt;array('Mo','Di','Mi','Do','Fr','Sa','So',),'monthsLong'=&gt;array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'),'monthsShort'=&gt;array('Jan','Feb','März','Apr','Mai','Juni','Juli','Aug','Sep','Okt','Nov','Dez'));</pre>
<p>Übergebt nun dem Objekt diese Daten:</p>
<pre lang="php">$kalender = new Punkt16_Calendar($deutscheDaten);</pre>
<p>Kompletter Code:</p>
<pre lang="php">include('calendar.class.php');
$deutscheDaten=array('daysLong'=&gt;array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'),'daysShort'=&gt;array('Mo','Di','Mi','Do','Fr','Sa','So',),'monthsLong'=&gt;array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'),'monthsShort'=&gt;array('Jan','Feb','März','Apr','Mai','Juni','Juli','Aug','Sep','Okt','Nov','Dez'));
$kalender = new Punkt16_Calendar($deutscheDaten);
echo $kalender-&gt;getCalendar();</pre>
<p>Eure Ausgabe sieht wohl noch etwas sehr weiss aus. Deswegen benötigt Ihr noch eine passende CSS, welche dem Download oben beiliegt:</p>
<pre lang="css">table.calendar { width:210px; border:1px solid #a6c9e2; margin:50px auto auto;}
table.calendar table.title { width:100%; height:30px; border:1px solid #c5dbec; background:#5c9ccc; text-align:center;}
table.calendar table.title td.monthBackwardA { width:30px; color:#fff; }
table.calendar table.title td.monthBackwardA a { font-size:18px; color:#fff; width:30px; height:30px; line-height:30px; display:block; text-decoration:none; }
table.calendar table.title td.monthYear { font-size:14px; line-height:30px; color:#fff;}
table.calendar table.title td.monthForwardA { width:30px; color:#fff;}
table.calendar table.title td.monthForwardA a { font-size:18px; color:#fff; width:30px; height:30px; line-height:30px; display:block; text-decoration:none;}
table.calendar td.dayName { text-align:center; font-weight:bold; }
table.calendar td.dayA { border:1px solid #c5dbec; background:#dfeffc; color:#2e6e9e; text-align:center;}
table.calendar td.dayA.dayTodayA { border:1px solid #fad42e; background:#fbec88; color:#363636;}
table.calendar td.dayA.dayOther { border:1px solid #e6f4ff; background:#f6fbff; color:#98d3ff; }</pre>
<p>Ein Beispiel mit deutschen Namen könnt ihr euch hier ansehen: <a href="http://examples.punkt16.de/PHP/Kalender/" target="_blank">http://examples.punkt16.de/PHP/Kalender/</a></p>
<p><strong>Ein Backlink zu www.punkt16.de ist erwünscht, aber nicht Pflicht!</strong></p>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=239&amp;md5=52d6497f00717911781b211179b41fc6" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/php-kalender/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Fphp-kalender%2F&amp;language=de_DE&amp;category=text&amp;title=PHP+Kalender&amp;description=Ein+PHP-basierender+Kalender%2C+welcher+den+aktuellen+Tag+markiert.+Heute+gibt+es+ein+Skript+f%C3%BCr+einen+PHP-basierenden+Kalender%21+Das+Skript+selbst+erkl%C3%A4re+ich+nicht%2C+da+es+den+Rahmen+mehr+als+sprengen...&amp;tags=Code%2CPHP%2CSnippet%2CTutorial%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Enterseiten sinnvoll?</title>
		<link>http://www.punkt16.de/enterseiten-sinnvoll/</link>
		<comments>http://www.punkt16.de/enterseiten-sinnvoll/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 17:13:23 +0000</pubDate>
		<dc:creator>Timo Goedeke</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Diskussion]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://www.punkt16.de/?p=225</guid>
		<description><![CDATA[Jeder ist bestimmt schonmal über sie gestolpert - die Enterseite. Oder wie man sie auch nennt: Willkommensseite, Eingangsseite oder Splash-Seite. [ <a href="http://www.punkt16.de/allgemein/enterseiten-sinnvoll/" target="_blank">Mehr erfahren...</a> ] ]]></description>
			<content:encoded><![CDATA[<p>Jeder ist bestimmt schonmal über sie gestolpert &#8211; die Enterseite. Oder wie man sie auch nennt: Willkommensseite, Eingangsseite oder Splashs-Seite. </p>
<p><span id="more-225"></span><br />
Zwar sind sie nichtmehr so populär wie noch vor 3 Jahren, allerdings findet man sie trotzdem noch oft genug.</p>
<p>&nbsp;</p>
<p>Für diejenigen, die schon an dieser Stelle nicht mehr mitreden können, erkläre ich kurz, wovon ich überhaupt spreche.<br />
Enterseiten sind Seiten, die vor der eigentlichen Hauptseite stehen, sie sind also eine Art Eingangstor auf die der User in den meisten Fällen klicken muss. Auf solchen Seiten werden meistens Grafiken und Buttons gezeigt, die wie ein Wegweiser für den User dienen sollen.</p>
<p>&nbsp;</p>
<p>Nun stellt sich folgende Frage: &#8220;Sind solche Seiten überhaupt sinnvoll?&#8221;<br />
Nunja, es mag vielleicht auch Geschmackssache sein, doch es gibt auch einige Argumente, die dieses Thema erläutern.</p>
<p>&nbsp;</p>
<p>Was spricht also für eine Enterseite, wieso gibt es sie überhaupt?<br />
- Wichtige Informationen werden sofort vom User aufgenommen<br />
- Der User kann auf wichtige Unterseiten hingewiesen werden (Forum, Chat, &#8230;)<br />
- Es kann so der Status der Seite vermittelt werden (Offline, Umbau, Urlaubspause, &#8230;)<br />
- Man kann mit einer eindrucksvollen Enterseite den User neugierig auf die Seite machen, sodass sich dieser die Seite im Nachhinein vielleicht genauer anschaut.</p>
<p>&nbsp;</p>
<p>Doch trotzdem gibt es Sachen, die dagegen sprechen:<br />
- Der User wird durch den &#8220;Aufhalt&#8221; vor dem eigentlichen Ziel genervt.<br />
- Eine schlechte Gestaltung der Enterseite kann den User abschrecken, sodass er nicht bis zur Hauptseite geht.<br />
- Wenn auf der Enterseite zu viel Informationen geliefert werden und diese dann zu einer halben Hauptseite wird, hat der User vielleicht schon genug gesehen, braucht so nicht noch mehr Informationen und besucht deshalb die eigentliche Hauptseite garnicht.</p>
<p>&nbsp;</p>
<p>Nun kann man sich darüber streiten, welche Argumente gewichtiger sind. Also ist es wohl besser, wenn jeder seine eigene Meinung dazu bildet. Meiner Meinung nach sind Enterseiten überflüssig, da sie, wie gesagt, einen überflüssigen Aufenthalt vor dem eigentlichen Ziel sind und deshalb unnötige Zeit rauben. Außerdem treffe ich bei Enterseiten häufig auf Werbung, welche mich dann schon nervt und mich nichtmehr dazu motiviert, die eigentliche Hauptseite zu besuchen, sofern ich das nicht unbedingt muss.<br />
Das war von mir, zum Thema &#8220;Enterseiten sinnvoll?&#8221;.</p>
<p>&nbsp;</p>
<p>Gruß, Take!</p>
 <p><a href="http://www.punkt16.de/?flattrss_redirect&amp;id=225&amp;md5=6498936a6e1ab7aeb0f39fe1417273ba" title="Flattr" target="_blank"><img src="http://www.punkt16.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.punkt16.de/enterseiten-sinnvoll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=Pack161&amp;popout=1&amp;url=http%3A%2F%2Fwww.punkt16.de%2Fenterseiten-sinnvoll%2F&amp;language=de_DE&amp;category=text&amp;title=Enterseiten+sinnvoll%3F&amp;description=Jeder+ist+bestimmt+schonmal+%C3%BCber+sie+gestolpert+%26%238211%3B+die+Enterseite.+Oder+wie+man+sie+auch+nennt%3A+Willkommensseite%2C+Eingangsseite+oder+Splashs-Seite.+Zwar+sind+sie+nichtmehr+so+popul%C3%A4r+wie+noch+vor+3...&amp;tags=Diskussion%2CWebsite%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>
