Sziasztok!
Ide küldöm a problémákat, melyre szeretném ha drupal modul írásban jártastól kapnék választ.
A Feladat egyedi modulok készítése.
1.
A feladat megfogalmazása és lehetséges megvalósítása:
A CIKK közzétételének joga.
//CIKK (szerzői változat) és az egy erre létrehozott csoport BECIKK (szerkesztői változat) kereszthivatkozása.
global $user;
// Csoport BECIKK (szerkesztői változat) létrehozása a CIKK-ből (szerzői változat). A szerző és a szerkesztők (eddig csak jogosultak a CIKK szerkesztésére) felhasználók felvétele a BECIKKbe szerző és társszerzők mezőkbe.
// CIKK társszerzőinek PROFIL oldalán a CIKKek linkjeinek megjelenítése
=====================================================================
2.
A feladat megfogalmazása és lehetséges megvalósítása:
Ellenőrzés
// Egy új "mesterpont kiosztás" beküldésekor vizsgáljuk, hogy nem kapott-e már egyszer pontot a hivatkozott versenyre a hivatkozott user.
global $user;
#if ($node->type == 'master_point') {
// A felhasználó idei és örök mesterpontjainak összeszámolása (master_point tartalom típusú nodeok közül ahol a felhasználó a field_masterpoint_user) és megjelenítése a fh. profil oldalán.
=====================================================================
3.
A feladat megfogalmazása és lehetséges megvalósítása:
Hitelesítés!
//-------------- A feladat megfogalmazása és lehetséges megvalósítása -------------- // edit-field-online-game-list-1-nid-nid // edit-field-online-game-nick-1-0-value // edit-field-online-g-n-valid-1-value // Ha "online game nick hitelesítő" rid='11' role-ba tartozik a user, akkor az adott felhasználó content_profile-ján lássa és szerkeszteni tudja csak a field_online_g_n_valid_1_value -tól _5_value -ig mezőket. function nick_hitelesito_perm() { return array( 'nickek hitelesitese' ); } # function user_access($string, $account = NULL, $reset = FALSE) { // http://api.drupal.org/api/function/user_access/6 # function user_roles($membersonly = FALSE, $permission = NULL) { // http://api.drupal.org/api/function/user_roles/6 // Ha a saját lapját szerkesztette a user, akkor a submit megnyomása után a lekérdezzük az adatbázisból a 'field_online_game_nick_1_value'-tól '_5_value'-ig és a 'field_online_game_list_1_nid'-tól '_5_nid'-ig a mezők és select-ek értéke, # function nick_hitelesito_validate() // Majd ellenőrizzük, hogy megváltozott-e az értékük a user szerkesztése után. # function form_type_select_value($form, $edit = FALSE) { // http://api.drupal.org/api/function/form_type_select_value/6 # function form_type_textfield_value($form, $edit = FALSE) { // http://api.drupal.org/api/function/form_type_textfield_value/6 // Ha megváltoztatta a user a mezőpárok valamelyikét, akkor a 'field_online_g_n_valid_1_value'-tól '_5_value'-ig a megfelelő helyen megváltoztatjuk a mező értékét "hitelesítés alatt"-ra. # function nick_hitelesito_submit() function nick_hitelesito_form_alter(&$form, $form_state, $form_id) { //drupal_set_message($form_id); print_r($form); if ($form_id == 'profile_node_form' && user_access('nickek hitelesitese')) { //print_r($form_state); foreach($form as $key=>$element) { if (strpos($key, 'online_g_n_valid') == FALSE) { if (is_array($element)) { $form['theme_settings'][$key]['#disabled'] = TRUE; //drupal_set_message($form['theme_settings'][$key]['#disabled']); } #drupal_set_message($key); } if (strpos($key, 'online_game_nick_1') == TRUE) { drupal_set_message('o g n 1 : ' . $form['value'][$key]); } } } } /* global $user; // if ($user->uid != 1) { drupal_set_message('CSEKK form_id: ' . $form_id); if ($form_id == 'profile_node_form') { drupal_set_message('NICK HITELESÍTÉS AKTÍV'); drupal_set_message('CSEKK user_id: ' . $user->uid); form_type_select_value($form, $edit = FALSE); drupal_set_message('form: ' . $form); $form['group_online_game_nicks']['field_online_game_nick_5_0_value'] = array ( '#title' => t('Sly hello'), '#default_value' => $object['foo'], '#description' => t('baz'), ); } // } */ /*function nick_hitelesito_validate(&$form, $form_state, $form_id) { form_set_value( $form_state['value']['edit_field_online_game_nick_5_0_value'], $form_item['#parents'] = array( 'edit_field_online_game_nick_5_0_value'), $value='Sly hello'); }*/ ===================================================================== 4. A feladat megfogalmazása és lehetséges megvalósítása: Nevezés ellenőrzése. // A verseny oldalán megvizsgáljuk, hogy nevezett e már a user a versenyre. global $user; #$result_tag_e = db_query ('SELECT ctcs.nid FROM content_type_compatition ctc, content_type_compatition_subscribe ctcs, og_uid u, og o WHERE ctcs.field_nevezes_versenyre_nid=' .$node->nid. ' AND o.nid=u.nid AND u.uid='.$user->uid) // Ha a user még nem tagja egy nevezés csoportnak sem, mely erre a versenyre hivatkozik, akkor látható lesz egy "Nevezés a versenyre" gomb, melyre klattyintva a felhasználó egy úgy nevezést küld be, mely már tartalmazza a verseny_referenciáját, de módosítani nem tudja a user. /* function versenyre_nevezo_customlinks_link_alter($node, $links) { if ($node->type == 'compatition') { drupal_set_message('VERSENYRE NEVEZŐ MODUL AKTÍV'); #print_r($links); $links['compatition_customlinks']['#href'] = 'node/add/compatition-subscribe'; $links['compatition_customlinks']['#title'] = t('I subscribe for tis competition'); } } */ // Illetve ha egy nevezés csoport tagja akar lenni, akkor is vizsgálni kell, hogy a nevezés által hivatkozott versenyre nem jelentkezett-e már valamely másik csoporttal. # og_comfirm_subscibe #if ($node->type == 'compatition_subscibe') { // A nevezés csoportba ne tudjon jelentkezni a user, ha teljes a csoport létszáma (a versenytől függően 2 v. 4 fő). # field_verseny_num_group_members ===================================================================== A dev@netkey.hu címre írhatsz levelet, és várjuk jelentkezésed ezügyben. Üdv,
Értelemsebben szöveges leírással 1. ponthoz
Minden cikknek az eredeti, a szerző által publikált változata is megmarad. Különleges esetekben a szerkesztő a szerző által már késznek minősített változatot visszaadhatja szerkesztésre.
Ettől a szerkesztő által már elvégzett szerkesztési munka nem vész el: az eredeti és a szerkesztett változatok között kapcsolat van, egymásból elérhetőek, de egymás tartalmára semmilyen automatikus hatással nincsenek.
A publikált cikkek megjelentetett lapján a felhasználók egy linken keresztül mindig elérhetik a szerző által kiadott változatot.
Szabolcs Illes
Netkey HU SK
Értelemsebben szöveges leírással 2. ponthoz
Ha már feltöltötték a mesterpontokat:
Ha az arra kijelölt személy feltöltötte a mesterpontokat (ld. lent), akkor a versenyeredmény mellett az adott helyezésért járó mesterpont is látható.
Egy új "mesterpont kiosztás" beküldésekor vizsgáljuk, hogy nem kapott-e már egyszer pontot a hivatkozott versenyre a hivatkozott user.
A kiosztott pontozás adatok javíthatóak, és értesítővel is össze kell tudni kapcsolni.
A felhasználó idei és örök mesterpontjainak összeszámolása (master_point tartalom típusú nodeok közül ahol a felhasználó a field_masterpoint_user) és megjelenítése a fh. profil oldalán.
Szabolcs Illes
Netkey HU SK
Értelemsebben szöveges leírással 3. ponthoz
Hitelesítendő adatok:
pl.: a nickek, email címek, telefonszámok hitelesítendő adatok, ehhez kell egy hitelesítési folyamat és az adatokhoz kell egy hitelesítési állapotjelző is
Export:
1. includeplayer.txt, azok a BBO nickek, amelyeknek sikeres a hitelesítése, formátum: minden nick után egy crlf (az utolsó után is);
2. egy olyan pontosvesszővel elválasztott állomány, amiben a következő adatok vannak: felhasználónév, site (ha van értelme),nick (ha van értelme), telszám (ha van értelme), email (ha van értelme), folyamat kezdete, jelenlegi hitelesítési állapot;
Jogosultságok:
kell egy olyan szerepkör, aki a hitelesítést végezheti, neki van joga hozzájutni ehhez az export állományhoz és a felhasználói adatlapokon pittyegteti a hitelesítési állapot mezőket;
Ha 10 (megadható) naptári napon belül nem változik a hitelesítés állapota sikeresre, akkor változzon automatikusan sikertelenre (és ez az esemény hozzon létre egy emailt a felhasználó alapértelemezett email címére nomeg azok számára, akik rendelkeznek a hitelesítő jogkörrel)
Szabolcs Illes
Netkey HU SK
Értelemsebben szöveges leírással 4. ponthoz
Nevezés egy versenyre:
Ha a user még nem tagja egy nevezés csoportnak sem, mely erre a versenyre hivatkozik, akkor látható lesz egy "Nevezés a versenyre" gomb, melyre klattyintva a felhasználó egy úgy nevezést küld be, mely már tartalmazza a verseny_referenciáját, de módosítani nem tudja a user.
Illetve ha egy nevezés csoport tagja akar lenni, akkor is vizsgálni kell, hogy a nevezés által hivatkozott versenyre nem jelentkezett-e már valamely másik csoporttal.
A nevezés csoportba ne tudjon jelentkezni a user, ha teljes a csoport létszáma (a versenytől függően pl.: 2 vagy 4 fő).
Nevezésekről megerősítése, értesítő megy ki ha nevezését elfogadták.
Nevezés elutasítása, ha más nevezte be, de ő nem indul a a versenyen.
Szabolcs Illes
Netkey HU SK