Přeskočit přímo na text


Jak sloučit editaci uživatelského účtu s položkami profilu

Narazil jsem na zajímavý problém nutnosti sloučit formulář editace uživatelského účtu (jméno, heslo, email) s položkami profilu. Motivace je jasná – potřebujeme co nejvíce uživatelů, kteří si profil vyplní, nicméně nechceme je nutit a nechceme jim polička ukazovat při registraci. Jak na to?

Výchozí stav je následující. Na stránce editace účtu máme několik položek: Uživatelské jméno, Heslo, E-mail, případně několik dalších. Po doplnění chceme na stejné stránce mít možnost nastavit si i položky profilu ze sekce Moje údaje – adresu a rok narození.

Nejprve tedy vytvoříme příslušné položky profilu, zařadíme je do sekce „Moje údaje“. Postup nechám na čtenáři.

Následně si vytvoříme vlastní modul, který použijeme pro změnu formuláře. Nazveme ho zmena_profilu. Vytvoříme tedy adresář „zmena_profilu“ v sites/all/modules a vytvoříme v něm soubor zmena_profilu.info, do kterého vložíme:

<?php
name = Zmena profilu
description = Slouci editaci uzivatelskeho uctu a profilu
core = 6.x
?>

Poté vytvoříme soubor zmena_profilu.module a vložíme do něj následující řádky. Pro vysvětlení viz komentáře:

<?php
/*
 * Implementation of hook_user().
 */
function zmena_profilu_user($op, &$edit, &$account, $category = NULL) {
  switch ($op) {
    // $op 'form' znamena, ze jsme na strance formulare editace uzivatele
    case 'form':
      // V teto sekci mame vratit pole s formularem, proto nacteme potrebne polozky ze sekce 'Moje údaje' a vratime je. Tretim parametrem funkce je prave sekce ze ktere nacitame.
      return profile_form_profile($edit, $user, 'Moje údaje');
      break;
  }
}
?>

To je vše…Nyní se nám v editaci uživatelského účtu začnou objevovat i položky z profilu. V tipu jsme se naučili několik věcí:

  • Jak vytvořit velmi jednoduchý modul.
  • Jak málo stačí k podstatné změně v Drupalu, pro kterou nemusíme editovat zdrojový kód CMS.
  • Jak sloučit formulář účtu a profilu.
About the author

Jakub Suchý je provozovatelem projektu Drupal.cz. Je členem Drupal Security Teamu, vytvořil několik volně dostupných modulů a také se Drupalem živí.

 

díky za tip!! jen dotaz..

díky za tip!! jen dotaz.. nakonci má být uzavření ?> ??? mělo by to být otevřené myslím

Ne nema tam byt, pokud je to

Ne nema tam byt, pokud je to konec souboru. Nicmene zde to nejde jinak napsat, jinak by Texy! neuzavrelo kod :-)

Původní formulář profilu

Není potřeba ještě skrýt stránku s formulářem profilu, ať nedochází k jeho duplikaci?

dotaz

je možné ‚Moje údaje‘ mít v překládatelné formě? t(‚Moje údaje‘)?

Myslim si, ze ne. Je to user

Myslim si, ze ne. Je to user input a ty se v Drupalu neprekladaji. Mozna nejake i18n strings umi zalozit specialni string…To je treba ale zkusit, ono to vypise message

No nevím ale udělal jsem ten

No nevím ale udělal jsem ten modul náhral ho na web a zapl. Ale když kliknu ve svém učtu na „Upravit“ a jsem v Účet nic navíc se mi nezobrazuje… Přejmenoval jsem Moje údaje na to co tam mám já. Takže asi nevím jak se to používá. Prosím poradíte mi?

Funkce zmena_profilu_user() v souboru template.php

Děkuji za tip, funguje dobře. Zajímalo by mě proč uvedená funkce zmena_profilu_user() nefunguje pokud je pouze vložena do souboru template.php. Dík.

Protoz jde o implementaci

Protoz jde o implementaci hook_user() a ta proste funguje jen v modulu. To je vlastnost.

Děkuji

Děkuji

alebo skuste toto

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <p> <br> <b> <i> <h2> <img> <pre> <sup> <sub> <pre class="php"> <span class="php-keyword1"> <span class="php-var"> <span class="php-num"> <img class="screenshot"> <p class="beginner"> <a class="greybox"> <h3> <h4>

Více informací o možnostech formátování

Mollom CAPTCHA (play audio CAPTCHA)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.

Drupal meet-up mobilni web 2011

Hledat

Přihlášení

Poslední komentáře