Kategorien
WordPress

WordPress versteckte erweiterte Optionen anzeigen / ändern

versteckt sich unter

/wp-admin/options.php

Einfach im Browser öffnen.

Oder die Datenbank Tabelle wp-options ändern.

Kategorien
Yii Framework

Yii User hinzufügen von User Attributen

Wenn man mit dem Yii-User Modul eigene Attribute wie Strasse und Hausnummer hinzufügen will, kann man dies tun, indem man:

  1. eine neue Spalte in der Datenbank Tabelle profiles hinzufügt, z.B. namens street
  2. eine neue Zeile in der Datenbank Tabelle profiles_field hinzufügt:
3 street Strasse VARCHAR 80 10 1 Ungültige Strasse 2 3

Optionale Attribute kennzeichnen

Aufgrund der fehlenden Dokumentation des Moduls muss man ziemlich ausprobieren, um optionale Attribute zu kennzeichnen. Optionale Attribute kann man erreichen durch das Setzen von required auf 2 in der entsprechenden Zeile in der profiles_field Tabelle.

Kategorien
Yii Framework

Yii Pfad-Helfer Klasse

Sehr praktisch für die Verwendung von Pfaden im YII-Framework ist die folgende Klasse, die einen einfacher Zugriff auf die Pfade gibt und gleichzeitig die Anwendung flexibel hält bei Änderungen:

class Paths
{

    public static function getImagesPath()
    {
        return Yii::app()->request->baseUrl .DIRECTORY_SEPARATOR."images".DIRECTORY_SEPARATOR;
    }
    public static function getRootDirectory()
    {
        return Yii::getPathOfAlias('application');
    }
    public static function getWebRootDirectory()
    {
        return Yii::getPathOfAlias('webroot');
    }
    public static function getExtensionDirectory()
    {
        return Yii::getPathOfAlias('ext');
    }
    public static function getViewDirectory()
    {
        return Paths::getRootDirectory().DIRECTORY_SEPARATOR."views".DIRECTORY_SEPARATOR;
    }
    public static function getDataDirectory()
    {
        return Paths::getRootDirectory().DIRECTORY_SEPARATOR."data".DIRECTORY_SEPARATOR;
    }
}
Kategorien
PHP

PHP Rechen Captcha – Addieren und Subtrahieren

Ein Rechen-Captcha zu programmieren mit einfachen Rechenaufgaben ist erstaunlich einfach, es braucht nur 2 kleine Funktionen und schon kann man den User munter seine Mathematik-Kenntnisse testen lassen:

Features:

  • Addition
  • Subtraktion
  • Zahlen von 1 bis 13
  • sichere Zufallszahlen

Der Code lässt sich beliebig erweitern: Eine Möglichkeit der Sicherung wäre: Man benutzt deutsche Akzente für die Wörter im $words-Array, wie eens, zwee, dree usw…, damit würde man es den Spam-Bots noch schwieriger machen.

Beispiel Rechenaufgaben:

drei + vier = ?

zehn – vier = ?

Kategorien
WordPress

WordPress fehlende paragraph Tags im Content

Wenn sich WordPress entscheidet, keine <p> Paragraph-Tags mehr auszugeben auf der Webseite,kann dies behoben werden mit der Funktion wpautop():

<?php echo wpautop(get_the_content(),0); ?>
Kategorien
WordPress

WordPress Pagination funktioniert nicht

Wenn die Paginierung/Pagination nicht mehr funktioniert, kann das an einem Aufruf der Funktion query_posts() liegen, da diese den Main-Loop verändert.

Anstelle der Funktion sollte get_posts() verwendet werden.

Kategorien
Yii Framework

PhpStorm für Yii konfigurieren

Für das Coden von Yii mit PhpStorm sollte aus Effizienzgründen folgenden Einstellungen vorgenommen werden:

Code Completition aktivieren

Eine Anleitung gibt es hier.

Das Yiistorm Plugin installieren

Es dient zur einfachen Navigation von Controller zu View und mehr. Es muss lediglich die YiiStorm.jar in das PHPStorm Verzeichnis kopiert werden und die IDE neu gestartet werden.

Danach kann man z.B. direkt zum view File navigieren mit Strg+Mausklick in einem Controller-Aufruf wie:

        $this->render('index');
Kategorien
Yii Framework

Yii Installation und Hallo Welt

yiiDas Yii Framework für PHP ist zur Zeit das beste Framework für Web Applikationen, wenn man der Meinungen von vielen Freelancern und phpframeworks.com vertraut.

Die Vorteile von Yii

  • einfacher Einstieg: keine neue Templating oder Konfigurationssprache nötig
  • einfache Konfiguration durch Default Werte: die Konfiguration muss nur bei speziellen Aufgaben angepasst werden (convention over configuration)
  • High Perfomance optimiert
  • sehr hohe Code Wiederverwendbarkeit
  • MVC
  • Extensions: unbegrenzte Anzahl von Komponenten, die einfach installiert werden können, wie z.B. eine User-Verwaltung mit Login, Registrierung usw. yii-user extension
  • RESTful und SOAP Web Services
  • DAO, Active Record, Caching, I18N Mehrsprachigkeit

Unterstütze Datenbank Systeme

  • MySQL ab 4.1.
  • PostgresSQL 7.3.
  • SQLite 2 und 3
  • Microsoft SQL Server ab 2000er Version
  • Oracle

Die Installation von Yii

Kategorien
WordPress

WordPress Posts mit Custom Field finden

Mit einem einfach Query lassen sich Posts mit einem bestimmten custom-field suchen und ausgeben. Die Posts werden zusätzlich nach dem Erscheinungsdatum sortiert.

$my_custom_field = 'my_cool_custom_field';

$queryCustomField = new WP_Query(
    array (
        'meta_key' => $my_custom_field,
        'orderby' => 'date',
        'order' => 'DESC',
        'posts_per_page' => 5,
        'post_status' => array( 'publish')
    )
);

while ($queryCustomField->have_posts()) :;
    $queryCustomField->the_post();
    $my_custom_field = get_post_meta($post->ID, $my_custom_field, true);
endwhile;

wp_reset_postdata();
Kategorien
WordPress

WordPress: Kategorien ermitteln mit den meisten Artikeln innerhalb x Tage

Um eine solche Abfrage zu realisieren, braucht es ein wenig MySQL in Verbindung mit WordPress. Mit der Funktion getCategoriesWithMostArticlesInLastDays() kann man die beliebtesten X Kategorien innerhalb der letzten Y Tage bestimmen:

function getCategoriesWithMostArticlesInLastDays($categoriesCount, $lastDaysCount)
{
    global $wpdb;
    $querystr = "
    SELECT $wpdb->terms.name AS categoryName,COUNT($wpdb->terms.term_id) AS countCategory, $wpdb->terms.term_id as categoryId
    FROM $wpdb->posts
        LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id)
        LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
        LEFT JOIN $wpdb->terms ON ($wpdb->terms.term_id = $wpdb->term_taxonomy.term_id)
    WHERE
        $wpdb->posts.post_status = 'publish'
        AND $wpdb->posts.post_type = 'post'
        AND $wpdb->posts.post_date > TIMESTAMP(DATE_SUB(NOW(), INTERVAL $lastDaysCount DAY ))
        AND $wpdb->term_taxonomy.taxonomy = 'category'
    GROUP BY $wpdb->terms.term_id
    ORDER BY COUNT($wpdb->terms.term_id) DESC
    LIMIT $categoriesCount
";
    $categoriesWithMostArticlesInLastDays = $wpdb->get_results($querystr, ARRAY_A);
    foreach($categoriesWithMostArticlesInLastDays as  $key => $category)
    {
        $categoriesWithMostArticlesInLastDays[$key]["link"] = get_category_link($category['categoryId']);
    }
    return $categoriesWithMostArticlesInLastDays;
}