[gelöst] PHP-Frage -> Linkanpassung Guestbook-Modul
Eingetragen von Ionit (1802)
am 12.07.2010 - 19:33 Uhr in
am 12.07.2010 - 19:33 Uhr in
Hallo,
wenn ein User bei einem anderen User einen Gästbucheintrag vornimmt, wird ein Link zum Userprofil des Schreibers gesetzt.
"domain.com/user/6/"
Im module.file findet man
$user_link = "user/$account->uid/";
Ich möchte gerne, dass der Name des Users verwendet wird anstatt der uid.
Nun habe ich schon $user_link = "users/$account->name/";
probiert - dort wird leider der erste Buchstabe des Namens groß geschrieben.
"domain.com/user/Benny/"
$user_link = "users/$account->user-raw/";
funktioniert leider nicht.
Was müsste man dort angeben damit der Name - kleingeschrieben - verwendet wird? "domain.com/user/benny/"
Danke und Gruß
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Es gibt in PHP ne Funktion
am 12.07.2010 - 21:47 Uhr
Es gibt in PHP ne Funktion strtolower .... vielleicht hilft Dir die dabei? http://php.net/manual/de/function.strtolower.php
Ich bin zwar selbst ne PHP Null aber vielleicht bist Du besser? Wenns damit klappt und Du weisst wie, dann verrate mal die Lösung! Interessiert mich auch ...
Hallo Thoor, danke für den
am 12.07.2010 - 22:43 Uhr
Hallo Thoor,
danke für den Hinweis auf strtolower - ich glaube aber, dass ich noch weniger von PHP verstehe als Du. Vor Jahren habe ich mal das "Hello World" PHP-Einstiegstutorial gemacht - mehr leider nicht ;-)
Ich dachte eigentlich, dass Drupal den Namen in "klein" schon irgendwo intern gespeichert hat denn path/URL-Alias verwendet zum Umscheiben von user/1 zu users/name als Muster für die Pfade "users/[user-raw]" und gibt den Usernamen kleingeschrieben aus.
Hinter [user-raw] müsste also irgendwo der Name stecken - ich dachte den kann man über einen Token/Variable/Konstante aufrufen. Kann aber auch sein, dass das nicht stimmt - ich habe keinen blassen Schimmer ...
Grübel.
Geht auch mit CSS
am 12.07.2010 - 22:47 Uhr
Das kannst du auch mit CSS erreichen.
Beispiel:
.submitted {text-transform:lowercase}
Damit sollte es gehen, wenn das Guestbook Modul für User-Namen die Klasse 'submitted' nutzt. Ansonsten musst du mit Firebug den richtigen Selektor rausfinden.
Hallo md, danke für den
am 12.07.2010 - 22:54 Uhr
Hallo md,
danke für den Hinweis aber ich meinte eigentlich den Namen in der URL (welche man oben im Browser sieht wenn man auf den Link klickt).
Ich habe nun mal einen Blick in das Pathauto-Modul geworfen.
Die Verarbeitung des Usernamens wird dort wie folgt gemacht.
User related functions.
/**
* Implementation of hook_user() for users, trackers, and blogs.
*/
function pathauto_user($op, &$edit, &$user, $category = FALSE) {
switch ($op) {
case 'insert':
case 'update':
_pathauto_include();
// Use the username to automatically create an alias
$pathauto_user = (object) array_merge((array) $user, $edit);
if ($user->name) {
$placeholders = pathauto_get_placeholders('user', $pathauto_user);
$src = 'user/'. $user->uid;
$alias = pathauto_create_alias('user', $op, $placeholders, $src, $user->uid);
Leider sehe ich da überhaupt nichts - Grübel!
Du kannst aber doch trotzdem
am 12.07.2010 - 22:54 Uhr
Du kannst aber doch trotzdem einfach strtolower verwenden, oder?
Nimmst du eben statt
<?php
$user_link = "users/$account->name/";
?>
<?php
$name = strtolower($account->name);
$user_link = "users/$name/";
//Oder auch so hier, spart eine Variable ein:
$user_link = "users/" . strtolower($account->name) . "/";
?>
Dürfte doch kein Problem sein, oder?
denn path/URL-Alias verwendet zum Umscheiben von user/1 zu users/name als Muster für die Pfade "users/[user-raw]"
Der nimmt da den Namen so, wie er in der Datenbank steht. Und wenn da "Benny" steht, nimmt er "Benny" und wenn da drin "bEnNy" steht, dann nimmt er eben das.
Vermutlich schickt die Funktion für Drupals Pfad-Aliase den Namen auch nochmal durch einen strtolower, bevor sie den Pfad einträgt, aber schon in lowercase gespeichert sind die wahrscheinlich nirgendwo, wozu auch? Mann muss ja die Daten nicht unnötig mehrfach speichern.
Noob-Anfänger schrieb Hallo
am 12.07.2010 - 23:00 Uhr
Hallo md,
danke für den Hinweis aber ich meinte eigentlich den Namen in der URL (welche man oben im Browser sieht wenn man auf den Link klickt).
...
Sorry, hatte ich falsch verstanden.
Hallo Toni, besten Dank - das
am 12.07.2010 - 23:15 Uhr
Hallo Toni,
vielen Dank - das funktioniert Bestens. ;-)
<?php
$name = strtolower($account->name);
$user_link = "users/$name/";
//Oder auch so hier, spart eine Variable ein:
$user_link = "users/" . strtolower($account->name) . "/";
?>
Genau so wollte ich das haben. Dieser Code-Schnipsel kommt in meine Sammlung damit ich imme rmal nachsehen kann wenn diese Frage nochmal aufkommt.
Drupal ist schon ein geiles CMS aber mit PHP-Kenntnissen könnte man viel mehr selbst machen und alles aus Drupal rausholen..
Ich drücke mich ja schon eine ganze Weile vor diesem Thema aber ich denke langsam müsste ich anfangen PHP zu lernen.
Bloß wo fängt man an? Ja - ich weiß - ganz Vorne ;-) Wenn ich schon an "Arrays" denke usw. .... ujuijui ... da sehe ich schon die böhmischen Wälder am Horizont aufziehen ;-)
Dank Dir.
Schönen Abend noch.
Matthias
Also PHP lernen lohnt sich
am 12.07.2010 - 23:17 Uhr
Also PHP lernen lohnt sich auf jeden Fall ;-)
Manchmal gibt es einfach Dinge, für die man PHP einsetzen muss (oder zumindest sollte) und dann kommt man nicht weiter, das frustriert ganz schön.
Vielleicht hilft da sowas:
http://www.php-einfach.de/php-tutorial/php-tutorial.php
Man muss ja nicht gleich ein totaler Crack in PHP werden (bin ich lange nicht), es reichen häufig schon die Basics (Fallunterscheidungen (also if und switch), Schleifen und ein paar Funktionen wie strtolower, explode usw,). Damit kommt man häufig schon sehr weit (ich bewege mich z.B. auch noch im Basic-Raum, aber mehr ist häufig auch nicht nötig). Die Sprache ist nicht sonderlich schwer zu verstehen und wenn man sich dann noch ein wenig in das ganze System "Programmieren" rein denkt, ist das eigentlich kein großes Problem und auch kein besonders großer Zeitaufwand, hilft einem aber häufig weiter.
Und das schöne: Wenn man ein wenig die Basics beherrscht, traut man sich auch mal ran, etwas mit diesem Wissen zu verändern oder zu erweitern. Und durch Anwendung lernt man auch sehr gut ;-)
Danke für den Link - ich habe
am 12.07.2010 - 23:36 Uhr
Danke für den Link - ich habe die Seite gerade mal überflogen und gesehen, dass das wirklich gut und einfach erklärt wird.
Ich habe nun beschlossen - morgen mit dem PHP-Lernen anzufangen.
Letzte Woche hatte ich ein Problem mit einem Modul - das hat mich einen ganzen Tag Zeit gekostst um das Teil zum Laufen zu bringen da ich unzählige Posting auf drupal.org durchgehen musste.
Es lag an einer einzigen Zeile Code die leicht abgeändert werden musste.
Hätte ich selbst PHP gekonnt, wäre die Sache nach 30 Sekunden erledigt gewesen. Da kann man sich dann immer selbst in den Hintern beißen ;-)
Naja - ab morgen gehts los ...
Sooo - bin erstmal off - ab ins Bett.
Nächtle!
Gruß Matthias