IT Gedanken frisch auf den Tisch
Mir gefiel die Art und Weise des normalen Wordpress Logins in einem meiner aktuellen Projekte nicht. Also habe ich mich umgeschaut, welche Formen es noch gibt. Da bin ich auf die Idee gestoßen, eine Art Overlay (wie man es von Thickbox, Lightbox, Slimbox, etc kennt) dafür zu nutzen.
Dann habe ich den Artikel gelesen, in dem jQuery, Thickbox und Wordpress dafür vereinigt werden. Um nicht im Header rumfummeln zu müssen, habe ich mir kurzerhand ganz bequem das Thickbox Plugin installiert.
Dazu mußte ich dann noch folgende Schritte erledigen:
In dem aktivierten Themes Verzeichnis hab ich in die sidebar.php den Code für das Formular aus meiner wp-login.php reinkopiert:
<div id=”form” style=”display:none;”>
<form name=”loginform” id=”loginform” action=”<?php echo site_url(‘wp-login.php’, ‘login_post’) ?>” method=”post”>
<p>
<label><?php _e(‘Username’) ?><br />
<input type=”text” name=”log” id=”user_login” value=”<?php echo esc_attr($user_login); ?>” size=”20″ tabindex=”10″ /></label>
</p>
<p>
<label><?php _e(‘Password’) ?><br />
<input type=”password” name=”pwd” id=”user_pass” value=”" size=”20″ tabindex=”20″ /></label>
</p>
<?php do_action(‘login_form’); ?>
<p><label><input name=”rememberme” type=”checkbox” id=”rememberme” value=”forever” tabindex=”90″ /> <?php esc_attr_e(‘Passwort speichern’); ?></label></p>
<p>
<input type=”submit” name=”wp-submit” id=”wp-submit” value=”<?php esc_attr_e(‘Anmelden’); ?>” tabindex=”100″ />
<input type=”hidden” name=”redirect_to” value=”<?php echo esc_attr(admin_url()); ?>” />
<input type=”hidden” name=”testcookie” value=”1″ />
</p>
</form>
</div>
Dann habe ich etwas über diesem Code in der sidebar.php den Standardeintrag von Wordpress durch folgendes ersetzt, damit das neue Formular auch korrekt aufgerufen wird, jedoch während des eingeloggten Zustands das “normale” Standardelement (Admin und Abmelden) dennoch vorhanden ist:
<?php if ( !is_user_logged_in() ) {
echo “<li><a href=\”#TB_inline?height=180&width=200&inlineId=form\” class=\”thickbox\” title=\”Dein Loginformular\” rel=\”nofollow\”>Login</a></li>”;
}else{
echo “<li>”.wp_loginout().”</li>”;
} ?>
In meinem ausgesuchten Theme gab es oben in der header.php noch ein Anmelde-Icon, welches ich auch kurzerhand etwas modifiziert habe:
<?php if ( !is_user_logged_in() ) { echo “<a href=\”".get_bloginfo(‘url’).”/wp-content/themes/purple/sidebar.php#TB_inline?height=180&width=200&inlineId=form\” class=\”thickbox\” title=\”Dein Loginformular\” id=\”login\” rel=\”nofollow\”>Login</a>”; } ?>
Daran denken, dass Google immer den Login indiziert, was natürlich unnötig ist. Somit rel=”nofollow” mit in dem Link angeben (wie oben geschehen).
Sodann hat man ein fesches Ajax Anmeldeformular und alles wird gut.
Kleine Anmerkung: damit man beim Logout nicht doch das “normale” Standard Anmeldeformular sieht, benötigt man ab Zeile 312 in wp-login.php noch folgende Ergänzung:
case ‘logout’ :
check_admin_referer(‘log-out’);
wp_logout();
//$redirect_to = ‘wp-login.php?loggedout=true’;
//if ( isset( $_REQUEST['redirect_to'] ) )
// $redirect_to = $_REQUEST['redirect_to'];
//wp_safe_redirect($redirect_to);
wp_safe_redirect(“/”);
exit();
Nach dem ich mal wieder etwas Zeit hatte, dachte ich mir, dass ich meine Plugins ja mal auf den neuesten Stand bringen könnte. Gesagt getan, so klickte ich im Admin Menue jedes Plugin an, welches danach schreite. Ab dem 12ten gab es dann plötzlich ein Problem. Fehlermeldung “Fatal error: Allowed memory size of 33554432 bytes exhausted”.
Da sollte man dann einfach in der Datei wp-config.php den Wert ‘WP_MEMORY_LIMIT’ in der folgenden Zeile “define(’WP_MEMORY_LIMIT’, ‘32M’);” auf 64M hochzusetzen. Matthias Mayer’s Blog beschreibt noch andere Fehlerquellen und Lösungen zum Speicherproblem unter Wordpress.
Wenn man einen “Routing error” erhält, kann ein Eintrag in der
“config/routes.rb” falsch sein. Dort kann man nach dem
folgenden Muster die Route angeben (am besten ganz oben):
map.connect ”, :controller =>’companies’, :action =>’index’
First: pg_dumpall > outfile then: psql -U "owner name" dbname < infile (or: psql -f infile postgres)
Once restored, it is wise to run ANALYZE on each database so the optimizer has useful statistics. An easy way to do this is to run:
"vacuumdb -U 'owner name' -a -z"
to VACUUM ANALYZE all databases; this is equivalent to running VACUUM ANALYZE manually.
Falls man "uninitialized constant ApplicationController"
als Fehlermeldung im Browser erhält, kann es sein,
dass man ein altes Projekt noch nicht an gepaßt hat.
In der Version 2.3.2 muss "application.rb" nämlich
"application_controller.rb" heißen. Einfach
umbenennen oder folgenden Befehl aufrufen:
rake rails:update:application_controller
Das WebLog (oder kurz Blog) von der Medienbeckerei beschäftigt sich mit den herzhaftesten Köstlichkeiten die die IT Küche zu bieten hat. Da ist für jeden Feinschmecker etwas dabei. Ob es SEO, CMSs, CSS, XML, Rails,Ruby, Perl, AJAX oder was auch immer für Zutaten betrifft. Die Medienbeckerei verwandelt mit viel Erfahrung und Gespühr diese in schmackhafte Gerichte. Viel Genuss!