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ý :)

Fórum: 

Reklama

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.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Ď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ť. :)

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

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

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

Přeji taktéž

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Přidat komentář