Hallo und willkommen!

WeizenSpr.eu Schön, dass es dich auf diese Seite verschlagen hat. Der Blog hier auf WeizenSpr.eu ist meine eigene kleine Welt. Hier schreibe ich über dies und das - von Alltagssituationen bis hin zu Projekten, die mich momentan beschäftigen.

Ich wünsche dir viel Spaß beim Lesen der einzelnen Artikel. Vielleicht findest du ja ein paar Informationen, die du bisher noch nicht gekannt hast.

27. Juni 2009 ~ 0 Kommentare | ÄHNLICHE ARTIKEL

Besseres Menü für BlogTheme

Während ich für WeizenSpr.eu (bisher) beim einfachen Kubrick-Theme geblieben bin und es ein wenig erweitert habe, um ihm einen persönlichen Touch zu verleihen, wollte ich bei meinem neuen Projekt, dass das ganze ein bisschen seriöser aussieht.

Nach einer langen Suche bin ich dann schlussendlich beim BlogTheme hängen geblieben. Wie ich jedoch leider feststellen musste, ist es nur dafür ausgelegt, dass die Hauptseite automatisch auch die Blogbeiträge enthält. Deutlich wird dies bei der Verwendung des Blogmenüs, das es mir inzwischen sehr angetan hat.
Dieses reagiert nur so lange zufriedenstellend, wie man über die Einträge ausschließlich einzelne Seiten verfügbar machen will. Sobald auf einem Link der Blog liegt oder eine Seite Unterseiten besitzt, wirkt die Darstellung ziemlich willkürlich.
Diesem Probleme habe ich mich angenommen und wollte nun einmal zeigen, wie man das Menü ein wenig verbessern kann.

Zuständig dafür, herauszufinden, welche Einträge in das Menü kommen, ist die Funktion "woothemes_get_pages()" in der Datei "./functions/getpages.php"

Das erste Problem, das das Menü hat, ist, dass Unterseiten im Menü auftauchen: Angenommen, man hat die Seite "Projekte", der man für jedes Projekt eine Unterseite hinzufügt. Im Menü selber sollten natürlich nicht alle Unterseiten auftauchen.
Es gibt zwar die Möglichkeit, durch die Angabe der Seiten-ID in der BlogTheme-Konfiguration diesen Seiten aus dem Menü zu entfernen, jedoch erschien mir dieses Vorgehen ziemlich aufwändig.
Aus diesem Grund habe ich einfach den Aufruf verändert, der für das Einlesen aller Seiten-IDs zuständig ist.

1
2
3
$getcats = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE
                               $wpdb->posts.post_type = 'page' AND
                               $wpdb->posts.post_status = 'publish'"
);

Glücklicherweise enthält jede Unterseite einen Verweis auf die ID seiner Elternseite. Sobald diese ID ungleich null ist, handelt es sich automatisch um eine Unterseite. Diesen Fakt können wir in dem Aufruf nutzen, um die ungewollten Seiten einfach herauszufiltern.
Nebenbei können wir gleich dafür sorgen, dass die Seiten eine vorhersehbare Reihenfolge haben, indem wir sie anhand ihrer ID sortieren lassen - dadurch steht die Seite, die zuerst erstellt wurde auch an vorderster Stelle im Menü.

1
2
3
4
5
$getcats = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE
                               $wpdb->posts.post_type = 'page' AND
                               $wpdb->posts.post_parent = 0 AND
                               $wpdb->posts.post_status = 'publish'
                               ORDER BY $wpdb->posts.ID ASC"
);

Für die weiteren Schritte benötigen wir ein paar Informationen von der aktuell angezeigten WordPress-Seite. Es gibt zwar einige Ansätze, Dinge wie die aktuelle URL aus den HTTP-Headern auszulesen, aber wieso sollte man das machen, wenn einem WordPress schon die ganze Arbeit abnimmt?
Danke der Information auf WenderHost.com konnte ich deshalb diesen wirklich kurzen Quelltext auf die Beine stellen, um die ID der aktuellen Seite und die Parent-ID der aktuellen Seite auszulesen:

1
2
3
$post_obj = $wp_query->get_queried_object();
$post_ID = $post_obj->ID;
$post_parent = $post_obj->post_parent;

Diesen Codeblock fügt man am besten direkt hinter der SQL-Abfrage ein. Dort wird er nur ein einziges Mal aufgerufen, was für den weiteren Verlauf völlig ausreichend ist.

In der folgenden Schleife findet sich der Befehl, der darüber entscheidet, ob der Menüeintrag, der gerade erzeugt wird, als aktiviert oder als deaktiviert dargestellt werden soll:

1
2
3
4
5
if ( is_page($thecat->ID) ) {
  $current = 'class="current_page_item"';
} else {
  $current = '';
}

Diesen kurzen Quelltext ersetzen wir nun durch diese nur unwesentlich längere Variante ;-) :

1
2
3
4
5
6
7
$current = '';
if ( ( $post_ID == $thecat->ID ) ||
     ( $post_parent == $thecat->ID ) ||
     ( ( is_single() || is_archive() ) &&
       ( get_option("page_for_posts") == $thecat->ID ) ) ) {
  $current = 'class="current_page_item"';
}

Im Grunde besteht diese Abfrage aus 3 Bedingungen. Eine der drei muss erfüllt sein, damit der aktuell erzeugte Menüeintrag als aktiv dargestellt wird:

  • Die erste Bedingung ist ein Ersatz für die vorher verwendete: Es wird also nur geguckt, ob der Menüeintrag zu der Seite gehört, die gerade angezeigt wird. Falls ja, muss der Menüeintrag natürlich aktiviert sein ;-) .
  • Die zweite Bedingung ist da, um zu überprüfen, ob die aktuell angezeigte Seite eine Unterseite der Seite ist, die ins Menü eingetragen werden soll. Dies funktioniert bisher nur mit der ersten Unterebene - sollte für den Anfang jedoch erstmal reichen ;-) .
  • Die dritte Bedingung ist dann schlussendlich für solche Blogs, bei denen sich die Blogeinträge auf einer Unterseite (z.B. "News") befinden. Ist man in einem Archiv oder sieht man sich einen Blogeintrag an, wird der Menüpunkt, der den Artikelindex repräsentiert, aktiviert.

Ich hoffe, die Beschreibung war so verständlich, dass andere Blogger die Modifikationen zur Not selber umsetzen könnten :-D !

Und nicht vergessen: Ich hafte nicht für Schäden an Software, Hardware oder für Vermögensschäden, die durch Anwendung dieser Änderungen entstanden sind oder entstehen könnten. ;-)

Bessere Grüße, Kenny


27. Juni 2009 ~ 3 Kommentare | ÄHNLICHE ARTIKEL

Der verschwundene PermaLink

Zur Zeit arbeite ich ein wenig an einer anderen Webseite und setze bei dieser WordPress als einfaches Content-Management-System ein. Zu Hilfe kommen mir dabei meine bisherigen Erfahrungen mit WordPress.

Jedoch bin ich heute über eine Unschönheit gestoßen, die mich eine ganze Weile hat grübeln lassen. Und zwar handelt es sich bei dem anderen Projekt nicht um einen Blog, sondern um eine normale Webseite mit News-Bereich. Aus diesem Grund wird als Hauptseite nicht das Nachrichtenarchiv angezeigt, sondern eine statische Seite. Dies kann man in neueren WordPress-Versionen problemlos auf der Ausgabe-Einstellungsseite konfigurieren.

Ausgabe-Einstellungen

Ausgabe-Einstellungen

Normalerweise kann man bei jedem Artikel und bei jeder Seite auch nachträglich noch den PermaLink ändern - dies kann z.B. bei Rechtschreibfehlern oder Umstrukturierungen ganz hilfreich sein.

PermaLink-Einstellung

PermaLink-Einstellung

Mich hatte nun gewundert, dass ich nach dem Einstellen aller Optionen nicht mehr in der Lage war, den PermaLink meiner (als statische Hauptseite definierten) Willkommen-Seite zu bearbeiten. Da ich zwischenzeitlich mit verschiedenen Blog-Designs rumexperimentiert hatte, war ich davon ausgegangen, dass es vllt. Probleme gibt, wenn Seiten bereits existieren und man dann das Design austauscht - man weiß ja nie ;-) .
Schlussendlich bin ich dann aber doch noch auf den Trichter gekommen, dass WordPress da einfach versucht, dass ihm nicht die Startseite unter dem Hintern wegeditiert wird ;-) .

Keine PermaLink-Einstellung

Keine PermaLink-Einstellung

Ein bisschen merkwürdig ist dieses Vorgehen trotzdem. Denn für die Bestimmung der statischen Hauptseite verwendet WordPress die Option page_for_posts - dabei handelt es sich um die ID der entsprechenden Seite. Warum sollte man dann also das Ändern des PermaLinks unterbinden?

Verschwindende Grüße, Kenny


25. Juni 2009 ~ 4 Kommentare | ÄHNLICHE ARTIKEL

[Update] Ordner ersetzen ohne Entsetzen

Jaja... als ITler kriegt man manchmal wirklich abenteuerliche Geschichten zu hören, was jahrelang genutzte Software denn alles so kann... ;-)
Eine besonders tolle wollte ich euch nicht vorenthalten.

Ordner sind schon eine tolle Erfindung - man kann durch sie Dateien sinnvoll in einer Hierarchie sortieren und auch schnell von Ort A nach Ort B kopieren. Doch was, wenn an Ort B der Ordner bereits existiert, der eigentlich kopiert werden sollte?
Hier wurde mir letztens in voller Ernsthaftigkeit erzählt, dass man unbedingt den Ordner anderswo hinkopieren muss - denn schließlich wird der alte Ordner ansonsten einfach ersetzt: natürlich inklusive aller enthaltenen Dateien! Denn laut des aufploppenden Dialogs soll man das "Ersetzen von Ordnern bestätigen".

Ersetzen von Ordnern bestätigen

Ersetzen von Ordnern bestätigen

Für alle, die panische Angst vor etwaigen Kopiervorgängen haben: hier wird natürlich nicht der Ordner mitsamt seines Inhalts ersetzt, sondern die Dateien des einen Ordners werden in den anderen Ordner integriert ;-) .

Hast du Angst davor, einen Ordner zu ersetzen?

Update:
Da selbst das anscheinend noch zu mehrdeutig war: mit integrieren ist gemeint, dass noch nicht existierende Dateien einfach in den bestehenden Ordner kopiert werden und bereits existierende Dateien überschrieben werden. Das Betriebssystem geht natürlich nicht her und benennt bereits existierende Dateien um, damit die neue und die alte Version parallel erhalten bleiben :-D !

Ersetzende Grüße, Kenny


21. Juni 2009 ~ 4 Kommentare | ÄHNLICHE ARTIKEL

Ein Dankeschön an den da oben…

Nachdem Hannes mich gestern auf das Thema Speicherauslastung durch WordPress aufmerksam gemacht hat, habe ich mir mal die Werte meines eigenen Blogs angeschaut. Erschreckenderweise verbraucht mein Blog jetzt schon gut 88% der zur Verfügung stehenden 32MB RAM :-( .

WordPress: Memory Usage - Before

WordPress: Memory Usage - Before

Aus diesem Grund habe ich mich einfach mal an meinen Hoster Crea-IT gewandt und gefragt, ob man da irgendetwas machen könne.

Wer es nicht weiß: bei Crea-IT kann man ein Hosting-Paket beliebig upgraden - also z.B. mehr Speicher dazukaufen, mehr Datenbanken dazukaufen, etc. pp.; mehr RAM steht dabei jedoch leider nicht zur Auswahl :-D .

Das Ergebnis konnte ich nun glücklich betrachten - der zur Verfügung stehende Speicher wurde auf 64MB RAM erweitert :-D ! Damit habe ich erst einmal wieder ein bisschen mehr Luft nach oben:

WordPress: Memory Usage - After

WordPress: Memory Usage - After

Für den kundenfreundlichen und unkomplizierten Support der letzten Jahre wollte ich mich deshalb an dieser Stelle einfach einmal bei meinem Hoster bedanken :-) .

Zufriedene Grüße, Kenny


19. Juni 2009 ~ 1 Kommentar | ÄHNLICHE ARTIKEL

E-Mail an Martin Dörmann

Kaum zu glauben: kaum ist das Gesetz zur Einführung der Internet-Zensur vom Deutschen Bundestag abgenickt worden, schon melden sich Stimmen, dass man das ganze unbedingt auf "Killerspiele" ausweiten sollte:

Köln (ots) - Der CDU-Bundestagsabgeordnete und baden-württembergische CDU-Generalsekretär Thomas Strobl will über die Sperrung kinderpornografischer Seiten im Internet hinausgehen und hat auch die Sperrung von Killerspielen ins Gespräch gebracht. "Wir prüfen das ernsthaft", sagte er dem "Kölner Stadt-Anzeiger" (Freitag-Ausgabe). "Wir gehen nach Winnenden nicht zur Tagesordnung über. Wenn es einen Nachweis gibt, dass sich Killerspiele negativ auf das Verhalten Jugendlicher auswirken, dann kann das Internet kein rechtsfreier Raum sein.
(Pressemeldung des Kölner Stadtanzeigers)

Nun hat sich heute anscheinend Martin Dörmann - seines Zeichens Stellvertretender wirtschaftspolitischer Sprecher der SPD-Bundestagsfraktion - mit einem Schreiben an den Arbeitskreis gegen Internet-Sperren und Zensur gewandt. Der "AK Zensur" hatte bereits am Dienstag weitere Treffen mit der SPD abgelehnt, nachdem diese sich Montag Abend mit der CDU auf einen gemeinsamen Kurs zum Thema Internetsperr-Gesetz geeinigt hatte.

In dem Schreiben von Herr Dörmann äußert sich dieser u.a. dazu, dass sichergestellt wurde, dass das Gesetz ausschließlich zur Bekämpfung von KiPo eingesetzt werden würde. Mit der Nachricht des Kölner Stadtanzeigers im Hinterkopf habe ich daraufhin Herrn Dörmann eine E-Mail zukommen lassen (seine E-Mail-Adresse steht freundlicherweise in seinem Schreiben):

Guten Abend Herr Dörmann,

ich habe Ihre "Antwort auf Ihren Offenen Brief an die SPD-Bundestagsfraktion" bei Netzpolitik.org gelesen und verweise Sie ob Ihres Punktes "1. Gesetzliche Regelung" ohne weiteren Kommentar auf eine Pressemeldung des Kölner Stadtanzeigers:

> Köln (ots) - Der CDU-Bundestagsabgeordnete und baden-württembergische
> CDU-Generalsekretär Thomas Strobl will über die Sperrung
> kinderpornografischer Seiten im Internet hinausgehen und hat auch die
> Sperrung von Killerspielen ins Gespräch gebracht. "Wir prüfen das
> ernsthaft", sagte er dem "Kölner Stadt-Anzeiger" (Freitag-Ausgabe).
> "Wir gehen nach Winnenden nicht zur Tagesordnung über. Wenn es einen
> Nachweis gibt, dass sich Killerspiele negativ auf das Verhalten
> Jugendlicher auswirken, dann kann das Internet kein rechtsfreier Raum
> sein."
(http://www.presseportal.de/pm/66749/1425454/koelner_stadt_anzeiger)

Mit freundlichen Grüßen,
Kevin Niehage

Wie gutgläubig muss man eigentlich sein, um solche absehbaren Gefahren einfach zu übersehen? Oder ist es etwa pure Absicht?

E-Mail-schreibende Grüße, Kenny


499
no-www.org extra-www.org
IPv6 ready XHTML 1.0 Transitional

Datenbank: 47 Abfragen | Generierung: 0,24488 Sekunden