Skutočné meno

Prečítal som si Vašu knihu a ako začiatočníkovi sa mi veľmi pačila.
Moje požiadavky na web však už prekračujú jej hranice a potreboval by som poradiť. Prezrel som množstvo for ale bezuspešne.
Zakladne info: Drupal 6.4, content profile, cck, views, panels, workflows a ešte niekoľko modulov.
Problém1: Mám vytvorených viacero rol, kde každá ma iný profil (modul content profile). A potreboval by som, aby pri každom zaslanom článku bol automaticky link na profil užívateľa(autora postu), ktorý by zobrazoval presné meno(resp. nazov firmy), to je dané cez cck field profile. Možno je riešenie jednoduché, len ho jednoducho nevidím.
Problém2: nie som php zdatný :)

Profile picture for user Jan Polzer

Zdravím, jsem rád, že se Vám kniha líbila. Pokud potřebujete zobrazit obsah nějakého CCK políčka, bude to pro vás nejjednodušší s použitím modulu Contemplate. Měl byste to zvládnout i přes malé znalosti PHP.

Možná by ale bylo jednodušší skutečné jméno uživatele vytvořit v jeho uživatelském profilu a místo přezdívky jej u článku vypisovat tímto:

function phptemplate_username($object, $link = TRUE) {
if ( !$object->profile_fullname ) {
if ( $object->uid && function_exists('profile_load_profile') ) {
profile_load_profile($object);
}
}

if ( $object->profile_fullname ) {

$name = $object->profile_fullname;

if ( $link && user_access('access user profiles')) {
return l($name, 'user/'. $object->uid, array('title' => t('View user profile.')));
}
else {
return check_plain($name);
}
}

// Profile field not set, default to standard behaviour

if ($object->uid && $object->name) {
// Shorten the name when it is too long or it will break many tables.
if (drupal_strlen($object->name) > 20) {
$name = drupal_substr($object->name, 0, 15) .'...';
}
else {
$name = $object->name;
}

if ( $link && user_access('access user profiles')) {
$output = l($name, 'user/'. $object->uid, array('title' => t('View user profile.')));
}
else {
$output = check_plain($name);
}
}
else if ($object->name) {
// Sometimes modules display content composed by people who are
// not registered members of the site (e.g. mailing list or news
// aggregator modules). This clause enables modules to display
// the true author of the content.
if ($object->homepage) {
$output = l($object->name, $object->homepage);
}
else {
$output = check_plain($object->name);
}

$output .= ' ('. t('not verified') .')';
}
else {
$output = variable_get('anonymous', 'Anonymous');
}

return $output;
}

Kód dejte do template.php v tématu vzhledu. Předpokládá, že skutečné jméno je v profilu uživatele zadáno do políčka vytvořeného s pojmenováním profile_fullname.

návštěvník

Ďakujem za promtnú odpoveď. Vytvoril som daný súbor template.php s uvedeným kódom. V profile som vytvoril ďalšie políčko profile_fullname (to bez problemov funguje) ...
Po uploadnuti suboru na server (vyprazdnil som aj cache) sa však zobrazí iba chyba na vrchu stranky - obsahuje kód template.php.
A aj nové posty userov obsahuju iba username - nie fullname.

Možno stojí za zmienku spomenúť, že kvoli obsiahlosti profilov (dva druhy rolí, rozličné položky) využívam modul Content Profile. Skúšal som aj modul Realname - ale ten je obmedzený iba na jeden profil.

Modul contemplate mám nainštalovaný, ale musel by som ešte "prelúskať" pár manuálov, aby som sa v nom dokazal orientovať. :)

Profile picture for user Jan Polzer

Možná drobná připomínka. Pokud jste vytvářel template.php úplně nový, dal jste na začátek "<?php" (bez uvozovek)?

návštěvník

Drobná připomínka - ale trefná. Školácka chyba na mojej strane.
Veľmi pekne ďakujem za pomoc a Váš čas. Veľa zdaru ....

Odpovědět

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru