IMG_7921

Ernährungsumstellung – aber wie?

Immer wieder ließt man von wilden Diäten ob mit Fleisch, Fisch, Kohl oder neumodisch LowCarb. Das erste was alle beschwören ist ein schneller Erfolg. Eines haben sie jedoch alle gemeinsam, man muss verzichten und das für die Dauer der Diät. Geht es um die reine Ernährungsumstellung so wird als erstes auf den Süßigkeiten und den versteckenten Kalorien herumgeritten. Wer hat es noch nicht gehört “Ja dann lass den Süßkram sein”. Einige wenige sehr willenstarke Menschen schaffen das villeicht einfach so. Aber bei den meisten von uns stellt sich nach kurzer Zeit eine Entzugserscheinung ein und unser Körper schreit nach dem, was er meint, das es ihm fehlt. Ruck zuck erwischen wir uns in der Nacht am Kühlschrank mit dem Schokopudding oder gar einem Löffel Nutella. Wie ich dem entgehen konnte und trotzdem nicht das gefühl habe zu verzichten möchte ich hier erzählen.
Weiterlesen

IMG_6920

Fahrrad Handyhalterung DIY Bikepad®

Vor zwei Wochen habe ich mir ein neues Fahrrad zugelegt. Einen Bikecomputer wollte ich keinen anschrauben da ich eh meistens mein Handy dabei habe und mit GPS sogar meine Route aufzeichnen lassen kann. Auch Ingress spielen macht mit Fahrrad eindeutig mehr Spaß da man schneller von a nach b kommt. Um das Handy immer im Blick zu haben und auch mal als Navi verwenden zu können, musste eine Fahrradhalterung her. Zwei Modelle sind mir dabei besonders ins Auge gefallen.

Finn (von bikecityguid.org)

Die Handyhalterung Finn von BikeCityGuid die auch eine App für IPhone und Android anbieten, überzeugt von seiner Größe und Gewicht sowie vom Preis, denn mit 12Euro incl. Versand (stand Mai 2013) ist die Halterung eine der günstigsten die ich gefunden habe. Auch das Haltesystem ist so einfach wie genial, dabei lässt sich die Halterung schnell anbringen und wieder entfernen. Sie ist für alle Handygrößen geeignet und somit flexibel einsetzbar.

Bikepad®

Das Bikepad® ist eine interessante Lösung sein Handy am Fahrrad an zu bringen, zumal die Halterung nicht nur für das Handy sondern auch für Navigations- oder GPS-Geräte genutzt werden kann. Das Prinzip basiert auf den seit einigen Jahren erhältlichen “Nanopads” welche viele kleine Saugnäpfe auf Nanoebene haben und somit die darauf abgelegten Gegenstände sicher festhalten. Ich muss zugeben das ich der ganzen Sache etwas misstrauisch gegenüber getreten war, aber mein Interesse an war dadurch erst recht geweckt. Für 60€ ist das Bikepad® jedoch alles andere als günstig und daher habe ich mir einfach selbst eines gebaut.

DIY

Zunächst habe ich mir einige Videos zum Bikepad® angeschaut und mich überzeugt das es zumindest in den Videos funktioniert. Nach einigen Recherchen habe ich herausgefunden das das Nanopad von der Firma Innotec auf dem Bikepad® Verwendung findet. Es ist für ca. 9 Euro erhältlich und damit eines der teureren Nanopads. Die weiteren Materialien sind relativ einfach zusammen zu bekommen.

Materialien:

  • Nanopad ca. 5€ – 9€
  • Aluplatte 1mm stärke (größe abhängig vom Nanopad) ca. 3€ oder
    Plexiglas platte 4mm stärke für ca. 2€
  • Sebstklebenes Klettband 46cm positiv und negativ für ca. 2,20€
  • Rohrdämmung ca. 2€

Somit bekommt man für ca. 14€ ein Bikepad® und hat noch Material für weitere ;-).

Anleitung

Zuerst wird die Aluplatte auf die Größe des Nanopads zugeschnitten, ich hatte glück und konnte es von einem guten Freund in der Firma machen lassen. Ansonsten fragt einfach mal in dem Baumarkt eures Vertrauens oder macht es selbst ;-).
Den blüschigen Teil (negativ) des Klettbandes schneidest du auf 2x 23 cm und den Teil mit den Kletten (positiv) auf 4x 10cm, danach klebt ihr die 4 positiven Teile von den beiden Enden des negativen Teils anfangend nach innen. Somit bleiben 3 cm Klebeanteil auf dem negativen Klettband übrig.

https://picasaweb.google.com/101620447980386746176/FahrradhalterungDIYBikepad

Nun solltet ihr die Aluplatte mit Ethanol reinigen (es geht auch Nagellackentferner) damit das selbstklebende Klettband auch richtig gut hält. Die zwei Klettbänder werden in den unteren zwei Drittel der Aluplatte mittig angebracht. Dazwische klebt man etwas Rohrdämmung die die Erschütterungen vom Fahren abfedern soll.

Nun dreht man die Platte rum und reinigt die andere Seite und bringt das Nanopad darauf an. Das ganze am Fahrrad angebracht ist die Halterung auch schon Fertig!

 

90169788_b73a1ca911

Frühstücksideen für jedermann

Gerade gab es bei Galileo ein paar Frühstücksideen die einem die nötige Energie für den Tag geben sollen. Ob für muskuläre oder geistige Ansprüche sowie für Frühaufsteher oder ausgiebige Frühstücker, für alle ist etwas dabei. Da ich nicht weiß wie lange diese Rezeptideen auf prosieben.de zu finden sind, wollte ich sie hier nochmal zur Verfügung stellen und natürlich auch für mich Persönlich notieren.
Weiterlesen

Links aus einem Artikel filtern und am ende Ausgeben

Heute habe ich bei wpde.org eine Frage nach einem “Artikel-link-Crawler” gelesen. Darunter konnte ich mir erst nicht viel vorstellen. Zur Erklärung, gesucht wurde die Möglichkeit alle im Artikel befindlichen Links heraus zu filtern und am ende des Artikels aus zu geben. Ganz ähnlich findet dies auch bei Wikipedia statt, sobald man eine Quelle zu einer Aussage angibt wird diese am ende der Webseite angezeigt. Nun gut und schön, wer diese Funktion benötigt sucht vergebens, jedoch jetzt nicht mehr. Ich habe mich diesem Problem angenommen und einen kleinen Codeschnipsel dazu verfasst welcher genau das tut was gesucht wurde.

Einfügen in die functions.php des WordPress Themes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function get_post_urls($content) {
    if( preg_match_all("#((https?://|ftp://|www\.|[^\s:=]+@www\.).*?[a-z_\/0-9\-\#=&])(?=(\.|,|;|\?|\!)?(\"|'|«|»|\[|\s|\r|\n|$))#iS", $content, $url) ) {
        $ausgabe = '<h3>Links zum Artikel</h3>';
        $ausgabe .= '<ul>';
        foreach ($url[0] as $url) {
            $ausgabe .= '<li>'.$url.'</li>';
        }
        $ausgabe .= '</ul><ul>';
 
        return $content.$ausgabe;
    } else {
        return $content;
    }
}
add_filter('the_content', 'get_post_urls'); </ul>

Die Schwierigkeit hierbei ist es die URL’s korrekt zu erkennen. Das Suchmuster muss hierzu sehr komplex aufgebaut sein um möglichst wenig fehler zu zu lassen. Wie umfangreich solche suchmuster werden können zeigt der Artikel “In search of the perfect URL validation regex“. Hier findet man Suchmuster von 38 Zeichen bis hin zu 969 Zeichen welche auf den Prüfstand geschickt wurden.
Weiterlesen

Post/Page Status im Adminbereich hervorheben

Mit dem Folgenden kleinen Codeschnipsel lässt sich der Status (Entwurf, Geplant, Privat…) im Adminbereich hervorheben.

Eingefügt wird der Code in die function.php deines Themes:

1
2
3
4
5
6
7
8
9
10
add_action('admin_footer','posts_status_color');
function posts_status_color(){
?>
.status-draft{background: #FCE3F2 !important;}
.status-pending{background: #87C5D6 !important;}
.status-publish{/* no background keep wp alternating colors */}
.status-future{background: #C6EBF5 !important;}
.status-private{background:#F2D46F;}
<?php 
}

via WPsnipp.com

Artikel Aufrufe erfassen ohne Plugin

Aktuell habe ich versucht den Aufruf von Artikel ohne Plugins wie WP-PostViews zu erfassen. Ich möchte die Artikelaufrufe zählen um in der Sidebar eine Liste der am häufigsten gelesenen Artikel ein zu fügen. Im folgenden habe ich mein Vorgehen erklärt.

Auf der Hilfreichen Webseite WPsnipp.com habe ich den entsprechenden Codeschnipsel gefunden den ich zum Zählen der Aufrufe benötige (WordPress Track post views without a plugin using post meta). Zum speichern der Anzahl nutze ich wie das Plugin die Benutzerdefinierten Felder wodurch ich ohne Probleme die Anzahl der aufrufe die bisher gezählt wurden übernehmen kann.

Zählen der Artikelaufrufe

Der Folgende Code gehört in die functions.php deines Themes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Funktion zur anzeigen der Aufrufe im Theme
function getPostViews($postID){
    $count_key = 'post_views_count'; // Beim ersetzen des WP-PostView Plugin muss hier "views" stehen!
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0 View";
    }
    return $count.' Views';
}
// Funktion zum Zaehlen der Aufrufe
function setPostViews($postID) {
    $count_key = 'post_views_count'; // Beim ersetzen des Plugin WP-PostViews muss hier "views" stehen!
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}

Nun musst du noch in deiner single.php folgenden Code hinzufügen:

1
2
<?php // Zaehlt die Aufrufe des Artikels
          setPostViews(get_the_ID()); ?>

Um die Anzahl der Aufrufe in den Artikeln Anzuzeigen musst du an die gewünschte Stelle folgenden Code einfügen:

1
2
<?php // Anzeige der Aufrufe im Theme
          echo getPostViews(get_the_ID()); ?>

Nun werden die Aufrufe der Artikel gezählt. Möchtest du bestimmte Benutzergruppen von der Zählung ausschließen (z.B. die Administratoren) dann gelingt dir das mit Folgendem Code:

1
2
3
4
<?php if ( ! current_user_can('administrator') ){ // Wenn der User nicht Administrator ist dann Zaehlen!
       // Aufrufe Zaehlen
               setPostViews(get_the_ID()); ?>;
  }

 Anzeige der Meist gelesenen Artikel

Zur Anzeige der meist gelesen Artikel bietet sich die Sidebar an, daher habe ich hier den Code für ein kleines aber nützliches Widget welches man über die Pluginverwaltung einspielt und aktiviert.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
/*
Plugin Name: Last_Month_Most_Viewed_Posts
Plugin URI: http://calyrium.org
Description: Dieses Plugin erstellt ein Widget für die WordPress Sidebar
Author: Sebastian Preisner
Version: 1.1
Author URI: http://calyrium.org
*/
 
function most_view_display_widget($args) {
    extract($args);
 
    $tage = '30';
    $artikel = '5';
    // Filterfunktion erstellen
        function filter_where( $where = '' ) {
            // Artikel der letzten 30 Tage (xx days koennen beliebig geaendert werden.)
            $where .= " AND post_date &gt; '" . date('Y-m-d', strtotime('-$tage days')) . "'";
            return $where;
        }
    echo $before_widget;
    echo $before_title;?&gt;Top $artikel der letzten $tage Tage&lt;?php echo $after_title;
    echo "&lt;ul&gt;";
    // Filter aktivieren
    add_filter( 'posts_where', 'filter_where' );
        // Abfrage starten
        $query = new WP_Query( array('showposts' =&gt; '$artikel', 'orderby' =&gt; 'meta_value_num', 'meta_key' =&gt; 'views', 'order' =&gt; 'DESC', 'category__not_in' =&gt; array(1799) ) );
        while ( $query-&gt;have_posts() ) : $query-&gt;the_post();
            $views = get_post_meta($post-&gt;ID, 'views');
            echo "&lt;li&gt;";
            echo "&lt;a href='"; echo get_permalink(); echo "'&gt;"; echo get_the_title(); echo "&lt;/a&gt;";
            echo "&lt;/li&gt;";
        endwhile;
    echo "&lt;/ul&gt;";
    echo $after_widget;
    // Filter deaktivieren (Wichtig!!)
    remove_filter( 'posts_where', 'filter_where' );
 
        /**
	 * Sanitize widget form values as they are saved.
	 *
	 * @see WP_Widget::update()
	 *
	 * @param array $new_instance Values just sent to be saved.
	 * @param array $old_instance Previously saved values from database.
	 *
	 * @return array Updated safe values to be saved.
	 *
	public function update( $new_instance, $old_instance ) {
		$instance = array();
		$instance['title'] = strip_tags( $new_instance['title'] );
                $instance['number'] = strip_tags( $new_instance['number']);
		return $instance;
	}
 
        // Back-End Einstellungen
        public function form( $instance ) {
        if ( isset( $instance[ 'title' ] ) ) {
			$title = $instance[ 'title' ];
		}
		else {
			$title = __( 'New title', 'text_domain' );
		}
        if (isset( $instance[ 'number'] ) ) {
                        $number = $instance[ 'number' ];
        }
            else {
                $number = '5';
            }
		?&gt;
		&lt;p&gt;
		&lt;label for="&lt;?php echo $this-&gt;get_field_id( 'title' ); ?&gt;"&gt;&lt;?php _e( 'Title:' ); ?&gt;&lt;/label&gt; 
		&lt;input class="widefat" id="&lt;?php echo $this-&gt;get_field_id( 'title' ); ?&gt;" name="&lt;?php echo $this-&gt;get_field_name( 'title' ); ?&gt;" type="text" value="&lt;?php echo esc_attr( $title ); ?&gt;" /&gt;
                &lt;label for="&lt;?php echo $this-&gt;get_field_id( 'number' ); ?&gt;"&gt;&lt;?php _e( 'Anzahl:' ); ?&gt;&lt;/label&gt;
                &lt;input class="widefat" id="&lt;?php echo $this-&gt;get_field_id( 'number'); ?&gt;" name="&lt;?php echo $this-&gt;get_field_name( 'nubmber'); ?&gt;" type="text" value="&lt;?php echo esc_attr( $number ); ?&gt;" /&gt;
		&lt;/p&gt;
		&lt;?php 
 
        } */
}
wp_register_sidebar_widget(
    'mostview_lastmonth_1',        // your unique widget id
    'Most view last month',          // widget name
    'most_view_display_widget',  // callback function
    array(                  // options
        'description' =&gt; 'Zeigt die am häufigsten aufgerufenen Artikel des letzten Monats'
    )
);

 

 

Bildschirmfoto am 2012-04-14 01:04:23

Google Maps Karte einbinden ohne Plugin (API V3)

Auf einem meiner Projekte wollte ich eine Google Maps Karte integrieren um die Stellenanzeigen und Events optisch auf zu peppen und den Ort zu Visualisieren. Hierfür kann und möchte ich aus verschiedenen Gründen kein Plugin verwenden. Erstens sind die Plugins nicht immer sauber Programiert und laden den Code an stellen wo es unnütze ist und zweitens tragen verschiedene Kunden die Events und Stellenanzeigen ein und dies macht die Nutzung eines Plugins noch schwieriger.

Leider musste ich feststellen das sich alle Tutorials auf die schon seit 2010 veraltete Google Maps Java API V2 beziehen. Daher habe ich mich entschlossen mir hier gleich mal eine Gedankenstütze zu schaffen falls ich den Code nochmal benötigen sollte.
Weiterlesen