drupal_write_record

Sir_Csavar képe

Sziasztok!

Azt szeretném kérdezni, hogyha szeretnék egy olyan formot létre hozni ami arra szolgál, hogy bizonyos jogosultsággal rendelkező user tudjon felhasználót hozzá adni a rendszerhez, akkor jó e nekem a formhoz a drupal_write_record parancs (aminek a működéséhez egy kis segítséget is szeretnék kérni :) ) vagy van más módja is a dolognak.
A regisztráció tartalmazna olyan dolgokat amiket a sima Regisztrációs menü nem, szóval ez egyedi lenne, a nehezítés még annyi benne, hogy vannak olyan táblák is amikbe írni kell, amik sajátok. Bár ez inkább csak több gépelés.

A válaszokat előre is köszönöm!

Drupal verzió: 
pp képe

nem.

Pontos feladatot nem ismerem, de biztos, hogy jobb megoldás lesz neked a hook_user és egy kis form_alter

pp

0
0
Sir_Csavar képe

Hozzunk létre egy formot ami egy bizonyos jogosultságtól felfelé képes arra, hogy hozzá adjon usert a Drupal adatbázishoz

felhasználó név, teljes név, email cím, telefonszám, 1 nem módosítható azonosításra alkalmas mező (ez a legjobb lenne rejtettként), neme (Úr, Asszony)

A funkció hozzá adná az adatbázis megfelelő tábláihoz a rekordokat, küldene értesítő levelet arról, hogy a rendszerbe XY regisztrálta, egy generált jelszót, egy linket az adatlapjához, és, hogy legyen szíves türelemmel várni amíg a munkatársak ellenőrzik és aktiválják a fiókját (alapértelmezettként status=0).

Erről lenne szó.

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

Bálint képe

A kívánt mezőket felveheted Profile modullal, de talán érdemesebb Content Profile-t használni.

Ha az ezt a regisztrációs folyamatot végző role-nak adható felhasználók adminisztrációja jog, akkor egyszerű, mert ott van lehetőség e-mail küldésre is (az "XY regisztrálta" lehet problémás), és zárolt státuszban kell létrehozni a felhasználót. Ha pedig nem adható meg ez a jog bizonyos okokból, akkor nézd meg a Subuser modult.

Jelszó generálásra használhatod a Generate passwordöt.

"Nem módosítható azonosításra alkalmas mező" pedig egyszerűen a userid.
Az egyéb műveleteket hook_form_alter()-ben és hook_user()-ben végezheted, ahogy pp is írta.

Ha e-mail küldésre szofisztikáltabb megoldás kell, akkor Rules modullal készíthetsz egy rule setet, ami ezt végzi, majd beteheted egy triggered rule-ba.

0
0
Sir_Csavar képe

saját modul következő része lenne ez a kiegészítés, szóval jó lenne, ha az egészet onnan tudnám megoldani.

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

york képe

Ha rendesen leirod mit szeretnel akkor konnyebben tudunk segiteni :).
Felesleges meg egyszer leprogramozni azokat a reszeket amit mar tud a drupal kiegeszitesekkel, mert ezek a kiegeszitesek eleg flexibilisek es hosszabb tavon csak elonyos lesz neked.

0
0
Sir_Csavar képe

megpróbálom még egyszer leírni.

tehát kell egy regisztrációs űrlap ami a fent leírt követelményekkel hozzá tud adni felhasználót a rendszerhez. a regisztráció zárt az oldalra, meghívás nincs.

ez a regisztráció egy csoporthoz kapcsolná az újonnan felvett felhasználót az alapján az azonosító alapján amivel az őt regisztráló tag rendelkezik.

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

pp képe

A csoport tagjai számára engedélyezed a felhasználók adminisztrálását. Ezután a hook_user-ben a megfelelő csoportba beteszed a felhasználót.

Kb. ennyi.

pp

0
0
Sir_Csavar képe

és ezzel hogy lehet customizálni a register űrlapot?
és
hogy lehet megoldani, hogy ha kiadom a jogot felhjasználók adminisztrálására akkor bizonyos jogosultásogat tudjanak adni. (ezek a felhasználók nem rendelkeznek admin joggal, és nem rendelkezhetnek, viszont admin csoport van)

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

dj képe

Használod a Content Profile modult, létrehozod a megfelelő űrlapot vagy módosítod a modul által generált profile tartalomtípust olyanra amilyenre kérik. Megadod, hogy ez legyen a felhasználók profil adatlapja. A jogosultságoknál engedélyezed azoknak a csoportoknak az ilyen tartalom létrehozását ami a követelményben szerepel. Innentől a feladat első fele teljesítve van legózva.

Most jön az egyedi rész a modul. A modulban egy darab hook-al kell foglalkoznod a hook_nodeapi-val. Ezen belül sokmindent csinálhatsz, ellenőrizheted a kiírás szerint az adatokat, stb. Ami igazán érdekes neked az $op=='insert' ág, mert ekkor jött létre az űrlapod ténylegesen. Ezt kell a feladat kiírása szerint megvalósítani.
1. Létrehozol egy üres objektumot amit majd feltöltesz az user objektumnak megfelelő tartalommal.
2. Hozzáadod az űrlapról azokat az adatokat amiket megkövetel: fhnév, email, passwd
3. Hozzáadod a létrehozó felhasználó csoport jogosultságait amit a (global $user) objektumból kapsz meg ($user->roles).
4. Elmented a felhasználót az user_save funkcióval, ami az azonosításra alkalmas nem módosítható mezőt is létre fogja hozni (uid)
5. Módosítod az elmentett CP node uid-jét az új felhasználóéra amit abban az objektumban kapsz vissza amit a user_save visszaad.

Ez az én elképzelésem, biztos van más út is mert ez drupal, ha leírják akkor okosodhatunk abból is.

0
0

Üdv!
Dudás József

aboros képe

mikor létre akar majd hozni "profile node" -ot, nem fog menni, mert a user akihez kötni akarja nincs meg a rendszerben. (beküldés közben, op insertnél akarod majd létrehozni)

mindazonáltal, ahhoz hogy content profile nodeot hozz létre nem a saját useredhez kötve, kell legyen administer users jogod, hogy meg tudd adni a node beküldő űrlapon az 'author' -t..

szoval ez a content profileos vonal tök zsákutca.

0
0

-
clear: both;

dj képe

azt mindenképp kapnia kell annak a usernak aki ilyet csinálhat. Ha nem jön létre a node insert-nél akkor a presave-nél kell elvégezni a műveletet, így már az új user uid-el lehet menteni a CP node-ot.

0
0

Üdv!
Dudás József

Sir_Csavar képe

ajánlották a user_save funkciót. most azzal próbálkozom. user_load-al megnéztem hogyan épül fel és arra a sémára megpróbálom megcsinálni.

tud valaki esetleg valami buktatóról a dologban?

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)

aboros képe

az eddig elhangzottak alapjan nem vilagos, hogy ez egy vizsgafeladat vagy miert ez a sok megkotes. akarhogy is, az alaprendszer moduljaira vastagon epitunk amikor a sajat moduljainkat alkotjuk meg. ugye ez az egyik fo indonkunk arra, hogy keretrendszert hasznaljunk: nem akarjuk ujra feltalalni a kereket, ami van ha lehet arra epitunk.

en ugy csinalnam, hogy a sajat modulom fuggosegben lenne a core profile modultol. ez azert lenne jo, mert akkor a profile modul fuggvenyeit hasznalva, az install hurokban siman hozzaadnek egy "letrehozta" mezot a user adatokhoz, igy nem kene sajat tablamba, sajat sqlekkel szorakozni, hanem a user_save szepen elmentene a "letrehozo user" nevet vagy idjet vagy barmi.. ..ugyanigy a user_load betoltene azt, nekem semmi dolgom nem lenne azon kivul, hogy a sajat modulom hook_install -jaba letrehozom a profil mezot.

ezen kivul kell hook_perm hogy sajat jogosultsagaimhoz kothessem ki hozhat letre ilyen modon usert es ki tekintheti meg, hogy melyik usert ki hozta letre.

kell hook_menu hogy regisztralhassam az altalam hasznalni kivant utvonalakat.
ket utvonal kell majd, egyiken az urlap jelenik meg, masikon egy tablazatban at lehet tekinteni, hogy milyen usert, ki mikor hozott letre. mindkettonel hasznalom a hook_permben letrehozott jogokat az eleres szabalyozasara.

az urlapot egyedileg epitem (persze formAPIval) .. teszek bele mezoket a user nevnek, az emailnek es a role -nak radiokat .. sajat validalast hasznalok, ami ellenorzi, hogy a megadott e-mail cimmel meg nincs user letrehozva. ha nincs, akkor felepitek egy szabalyos user objektumot, belenyomom a profil mezobe az aktualis user nevet vagy idjet (inkabb utobbi) es elmentem user_save -el az uj usert.

szoval nem az original "create user" formot probalnam hekkelgetni, hanem egy sajat urlapot csinalnek aminek a submit fuggvenyebe user_save -el mentem a felhasznalot.

0
0

-
clear: both;

Sir_Csavar képe

egész jó irányba indultam el. csak hiányzik a rutin vagy nem tudom, hogy mi mert nem tudok megvalósítani pár dolgot, pedig elvileg jónak kellene lennie...

0
0

--
A jó ember az ő szívének jó kincséből hoz elő jót; és a gonosz ember az ő szívének gonosz kincséből hoz elő gonoszt: mert a szívnek teljességéből szól az ő szája. (Lukács 6:45)