Kategorien
Yii Framework

Yii AR Search mit Relations Attribute Has_Many

Um eine Suche auch über die Relationen einer Active Record Klasse zu realisieren, muss Folgendes beachtet werden:

1. Die Relation muss vorhanden sein:

 public function relations()
    {
            'categories' => array(self::HAS_MANY, 'place_id', 'category_id'),

2. Die Relation muss suchbar sein:

public function rules()
    {
            array('name, categories', 'safe', 'on' => 'search'),

3. In der Suchfunktion muss folgender Code eingefügt werden. Das OR ist dabei optional aber wichtig, wenn man sich wundert, dass keine Ergebnisse angezeigt werden in der View.

  public function findPlaces($searchTerm)
    {
        $criteria = new CDbCriteria;

        $criteria->compare('name', $this->name, true, 'OR');
        $criteria->with = array('categories' => array("together" => true));
        $criteria->compare('categories.name', $searchTerm,true, 'OR');

        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
        ));
    }
Kategorien
WordPress Yii Framework

WordPress Integration in Yii Projekt

Wenn man einen WordPress Blog in das Yii Framework intgrieren will und das Layout der Seite behalten will, bietet WordPress die Möglichkeit, die WordPress API zu benutzen ohne ein Theme erstellen zu müssen.

Der Blog/News Bereich soll unter der Adresse: foo.com/news/ erreichbar sein.

WordPress hochladen

WordPress kann wie gewohnt installiert werden und sollte in der Ordner-Hierachie in folgendes Verzeichnis auf selbr Ebene, wie das Yii-Projekt entpackt werden:

yii-project
  assets
  protected
wordpress

Als Datenbank sollte die selber benutzt werden, wie das Yii-Projekt und alle Worpdress-Tabellen sollten ein Prefix erhalten (standardmäßig „wp_“ in der wp-config).

Nachdem man die wp-config angepasst hat, muss noch das Routing von Yii angepasst werden vor der Installation von WordPress.

Yii Controller anlegen

Kategorien
SEO Webdeveloper Tools

Seo Tool für Onsite Analyse: Screaming Frog SEO Spider

Das Screaming Frog SEO Spider Tool ist ein Desktop Programm für Windows/Mac/Ubuntu mit dem man kostenlos bis zu 500 Seiten einer Domain spidern und analysieren kann. Man kann unbegrenzt viele Domains spidern und anzeigen lassen.

Der Spider zeigt einem sehr übersichtlich die SEO relevanten Daten wie Meta-Tags, Überschriften und Redirects an:

seo-spider-tool
Seo Spider Ergebnisse: sb-gahlts-check.de

Fazit: Ein sehr empfelenswertes Tool, die Vollversion kstet lediglich £99 pro Jahr exkl. Steuern.

Kategorien
SEO

Seo Tutorial bei Seo United

Ein sehr schönes und kostenloses SEO-Tutorial mit allen wichtigen Themen habe ich bei seo united gefunden, absolut empfehlenswert und in 2 Stunden hat man einen sehr guten Einblick in das Thema Seo bekommen.

Am Rande: Lustigerweise ist die Url für das Haupttutorial selbst sehr Anti-Seo: /sitemap.html 🙂

Kategorien
Yii Framework

Yii Yiic Cronjob Permission Denied

Wer das Yiic-Tool zum Starten von Cronjobs benutzt und sich wundert, warum diese nicht ausgeführt werden, der sollte checken, ob der Cronjob korrekt angegeben ist:

php /var/www/vhosts/foo/bar/protected/yiic updateSomething

Ansonsten gibt es einen Fehler wie:

full_path/protected/yiic: Permission denied
Kategorien
MySQL

Importieren/Exportieren großer MySQL Datenbanken unter Xampp

Beim Importieren großer Datenmengen unter Xampp stößt man über den Weg von phpMyAdmin schnell auf Grenzen der Skriptlaufzeit oder auf Performance-Grenzen:

Fatal error: Maximum execution time exceeded

Diese kann zwar angepasst werden, aber ein solcher Import kann Stunden dauern. Der Import über die Konsole ist um den Faktor 10 schneller. Statt einer Stunde benötigt man damit nur ein paar Minuten und hat keine Probleme mit der Skriptlaufzeit oder ähnlichem. Am schnellsten und unkompliziertesten ist ein Import über die MySQL-Konsole:

  • einfach im Xampp Control Panel auf shell klicken und dann in der Konsole die folgenden Befehle eingeben:
mysql -u root -p

Passwort eingeben oder einfachmit ENTER bestätigen, wenn kein passwort festgelegt wurde. Root ist der Benutzer der Datenbank, kann abweichen. Dann die Datenbank auswählen, die importiert werden soll, ggf. vorher anlegen, wenn diese nicht existent.

Kategorien
SEO Webdeveloper Tools

Seo Podcast

Um aktuell über SEO-Themen informiert zu werrden, lohnt sich der sehr gute Podcast von radio4seo.

Die Podcasts können auch einfach gedownloaded werden und dann als mp3 auf dem Handy bei Gelegenheit offline durchgehört werden. Die Shows sind um 1h Stunde lang durchschnittlich und sehr informativ. Nur der Moderator „ähht“ ziemlich viel:)

Kategorien
Mobil

SMS unter der Lupe, ihre Funktion heutzutage

Angesichts der zunehmen stärker werdenden Konkurrenz durch Messaging-Dienste wie Whats App, Skype oder Viber für Smartphones wirkt es verwunderlich, dass der Versand von SMS-Nachrichten nach wie vor boomt. Laut aktueller Hochrechnungen der  Bundesnetzagentur werden im Jahr 2011 rund 55 Milliarden Kurznachrichten via SMS ihre Empfänger erreichen. Der Grund dafür liegt nach Meinung der Experten in der Vertragsgestaltung des jeweiligen Anbieters.

Kategorien
CSS Webdeveloper Tools

Icons kostenlos herunterladen

Es gibt im Netz hervorragende und kostenlose Icon-Biliotheken, die kommerziell kostenlos genutzt werden können oder teilweise für einen geringen Betrag gekauft werden können.

Mein Favourit: IconMonstr

Sehr gute Alternativen sind:

 

Kategorien
PHP

PHP Simple HTML DOM Parser Fehler beim Crawlen einiger Webseiten

Einige Webseiten konnte ich mit dem genialen Tool PHP Simple HTML DOM Parser nicht crawlen, weilder Inhalt, den die Methode file_get_contents() false zurücklieferte.

Um den Fehler zu fixen, war es lediglich nötig, den Funktionsaufruf zu ersetzen:

$html = file_get_html($myUrl);

durch die Funktion und die Nutzung von Curl mit einem korrektem USER_AGENT Header:

$html = getHtml($myUrl);
   function getHtml($url)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        $str = curl_exec($curl);
        curl_close($curl);

        $html = str_get_html($str);
        return $html;
    }

Curl is dazu noch performanter als file_get_contents().

Bei anderen Fehlern und Problem lohnt sich die sehr gute FAQ Seite des Projektes.