Kifejezés beillesztése egy szótár hierarchikus pozíciójába

Luigi.hu képe

A feladat bemutatása egy példán keresztül: adott egy cég, amelynek a dolgozói beregisztrálnak a weboldalra, de a hierarchia rögzítése miatt meg kell adnia a főnöke nevét (aki már létre van hozva a "dolgozók" taxonómia szótárban).

Tehát a felhasználó egy Content Profile által létrehozott tartalom típusú oldalon beregisztrál, megadja a nevét, ami bekerül a "dolgozók" szótárba, de meg kellene adnia egy mezőben a főnöke nevét is, hogy a szervezeti diagramban alatta lehessen.

Nagy a cég, ezért a sok főnök miatt nem lehet egy fastruktúrában az egész szervezeti felépítést megmutatni, hogy abban válasszák ki a nevet, ezért a Content Taxonomy autocomplete opciójával kell beírni a főnök nevét. Ha a beírt név jó, tehát az létezik a szótárban, akkor azt eltároljuk a regisztráció után.

Az a gond ezzel, hogy a user profilhoz most létezik ugyan egy taxonómia mező, ami a főnökét jelenti, de a user nincs a "dolgozók" szótárban a főnöke alá rendelve.
Tudom, erre van a "PHP kód a szülő kifejezés kiválasztásához" funkció az adott mező beállításánál, de oda vhogyan át kellene tölteni azt az értéket.

Ideális volna még, ha a regisztrációs űrlapon beírt user nevet automatikusan adnánk hozzá a szótárhoz, és az a megfelelő pozícióba, tehát a főnöke alá kerülne.

Persze ez az egész móka megtörténhet a profil elmentése után is, amikor is a kifejezést beillesztenénk a szótár megfelelő helyére a Rules modullal. Ezzel az a gond, hogy a Rulesban nem találtam "parent id" tokent, tehát ott csak "simán" tudok beilleszteni egy kifejezést a szótárba, nem hierarchikusan.

Talán még az is megoldás lehetne, hogy először eltárolom az új kifejezést (új dolgozó neve) a szótárban gyökerében, majd annak a "parent term"-jét lecserélem a főnök nevére, de ehhez is kellene a hiányzó token.

Lehet, egy kicsit már össze vagyok zavarodva a túl sok agyalástól, :-) és nem látom a lényeget, ezért igazán örülnék, ha vki gyorsan tudna adni egy jó megoldást erre.
Köszi.

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Nagy Gusztáv képe

Én nem értem, hogy ehhez miért Taxonomy-t használsz. Én inkább Node reference mezővel hivatkoznék a főnökre (akár többre is). A visszafele hivatkozást pedig a Corresponding node references modullal oldanám meg.

2
0

Nagy Gusztáv

Luigi.hu képe

gondoltam a Taxonomy-ra, mert a későbbi sok háttér Rules feladat miatt nem akartam a node-okat "nyitogatni", ezért a Taxonomy gyorsabb, egyszerűbb megoldásnak tűnt.

Illetve van egy kész megoldásom a szervezet, tehát most szótár kifejezéseinek fa struktúrában való megjelenítéséhez, de az csak mezőkkel működik, a szűk határidő miatt pedig nincs időm vmit lefejleszteni.

Tehát a fa struktúrában történő rögzítés mellett annak hiererachiában történő szép kiírása is fontos feladat.
Az utóbbi időben csak ezzel foglalkozom, és lehet emiatt már csőlátásom van van, :-( ezért nem látok vmi egyszerűbb megoldást, de mindenre nyitott vagyok, ami gyorsan és szépen elkészíthető.
Köszönöm.

0
0
Luigi.hu képe

Ezt találtam a kifejezés beillesztésére egy szótárba, ami kézzel bírva szépen működik:

      $term = array(
        'vid' => 1, // Voacabulary ID
        'name' => 'Kifejezés', // Term Name
        'parent' => 4, // (Optional) Term ID of a parent term
      );
 
      taxonomy_save_term($term);
 

Most már csak a "taxonomy_get_parents(főnök kifejezés)" értéket kellene vhogy behúzni és azt berakni a "parent" mezőbe.

Erre esetleg vmi jó ötlet?
Köszi.

0
0
Luigi.hu képe

működik a dolog, eljátszottam kicsit a "taxonomy_get_parents(főnök id)" változóival és így be tudtam illeszteni a kifejezést a főnök alá.

0
0