Ez az a nap!

Ma van Budapesten a híres Ez ez a nap! Én itthon vagyok, most kivételesen nem mentem el rá.

Bocsánat, kedves Barátaim és fenntartók, ha ez most kicsit technikai lesz, de most ilyet csinálok az evangelizációért. :)

Csütörtökön, amint írtam előzőleg tehát nekiestem a CRM Core modul tanulmányozásának. Egész megörültem neki, mert nagyon kis ügyes dolog, de délutánra rájöttem, hogy nem fogom tudni alkalmazni. Egyedül a kapcsolatok modult tudtam volna belőle használni, a többi két típus nem jó arra, amire nekünk kellene. Úgyhogy este elkezdtem egy másik csomagot tesztelni a RedHen-t. Este már úgy feküdtem le közi után, hogy talán ebből lesz valami.

Pénteken tehát a RedHen-t teszteltem. Egész jó. Lehet vele kezelni a résztevevőket, munkatársakat. A jelentkezést is pöpecül meg lehet vele oldani. Kapcsolatokat lehet létrehozni a csoportok és a személyek között (iskolaközösség és munkatárs) és a tagságot is lehet vele kezelni, amely lejártjával a jogkör is megváltozik. Ezen kívül plusz jó, hogy támogatja a kötegelt importálást. Mivel entitás alapú simán lehet belőle exportálni is adat. Automatikusan összekapcsolja a Drupal felhasználókat a személyekkel (contact) az email címük alapján. Szóval, 90%, hogy ezt fogom használni. :)

Tegnap két hiányosságot fedeztem fel. Szóltam a fejlesztőknek, az egyiket már sikerült is megoldani. Regisztrációor automatikusan hozzon létre felhasználói adatlapot és kapcsolja össze a Drupal felhasználóval. Rules modul. Ma tanultam. Reggel úgy néztem a modulra, mint akihez kínaiul beszélnek, de aztán csak összehoztam. Logikus:

{ "rules_auto_create_contact" : {
    "LABEL" : "Create contact on create new account",
    "PLUGIN" : "reaction rule",
    "TAGS" : [ "contact" ],
    "REQUIRES" : [ "rules" ],
    "ON" : [ "user_insert" ],
    "IF" : [
      { "data_is" : { "data" : [ "account:field-auto-create-account" ], "value" : 1 } }
    ],
    "DO" : [
      { "entity_create" : {
          "USING" : {
            "type" : "redhen_contact",
            "param_type" : "volunteer",
            "param_first_name" : "[account:name]",
            "param_last_name" : "[account:name]",
            "param_redhen_state" : "1"
          },
          "PROVIDE" : { "entity_created" : { "entity_created" : "Created entity" } }
        }
      },
      { "data_set" : {
          "data" : [ "entity-created:redhen-contact-email:0:value" ],
          "value" : "[account:mail]"
        }
      },
      { "data_set" : { "data" : [ "entity-created:user" ], "value" : [ "account" ] } }
    ]
  }
}

Vagyis, ha regisztráció történik (on user_insert) és a regisztráció folyamán a regisztráló még nem volt kurzuson (field-auto-create-account értéke 1), akkor hozzon létre egy új kontaktot (itt önkéntes a típusa), a nevét adja meg a felhasználói névből az email címét a regisztrációkor megadottból, végül a kontakt felhasználói mezőjébe írja be a regisztrált felhasználó azonosítóját.

Még meg kell oldanom a másik problémát is, ami a nevekkel kapcsolatos.

Tegnap este meghoztam a döntést: a Bandisták megy a kukába. Vagyis a munkatársi adatokat nem ott fogom létrehozni, hanem a Szent András oldalon. A Bandisták addig él, amíg az adatait át nem hozom emide. Szóval tegnap elkezdtem felkészíteni az oldalt a változásokra, vagyis megcsináltam, amit nem sikerült tavaly befejezni: új ikonokat készítettem, mert néhány hiányzott, elkészítettem a címkék szép megjelenítését (egy mezőbe összegyűjteni három taxonómia kifejezéseit), aztán a megjegyzések lettek még szépek és a beküldő űrlapok is kicsit szebbek lettek. Jön egy biztonsági mentés és kezdem az RedHen bekötését. Ha valamit elszúrok, azt észre fogjátok venni :).

Valahol mindig bántott, hogy ebbe a projektbe kétszer is beletört a bicskám, sohasem készült el. Most nagyon remélem, sikerül összehozni. Az öröm az, hogy amikor először megírtam a dokumentációt hozzá, sehol se voltak ezek a modulok. Most vannak, ma van esély rá. Úgy élem meg: Isten kerülő utat választott, hogy megvalósulhasson az egységes elektronikus adminisztráció.

Végül, itt az taxonómia kifejezéseket összegyűjtő EVA views mező kódja (Views modul):

$view = new view();
$view->name = 'teszt_taxonomia';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Taxonómia kifejezések összegyűjtése egy mezőbe (Kurzusmeghívó, Írás, Tanúságtétel)';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Kapcsolódó taxonómia kifejezések';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'tovább';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['submit_button'] = 'Alkalmazás';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Alaphelyzet';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Rendezés';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Növekvő';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Csökkenő';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['expose']['items_per_page_label'] = 'Elemek száma oldalanként';
$handler->display->display_options['pager']['options']['expose']['items_per_page_options_all_label'] = '- Mind -';
$handler->display->display_options['pager']['options']['expose']['offset_label'] = 'Eltolás';
$handler->display->display_options['pager']['options']['tags']['first'] = '« első';
$handler->display->display_options['pager']['options']['tags']['previous'] = '‹ előző';
$handler->display->display_options['pager']['options']['tags']['next'] = 'következő ›';
$handler->display->display_options['pager']['options']['tags']['last'] = 'utolsó »';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['style_options']['default_row_class'] = FALSE;
$handler->display->display_options['style_options']['row_class_special'] = FALSE;
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['row_options']['inline'] = array(
  'name' => 'name',
  'name_2' => 'name_2',
  'name_1' => 'name_1',
);
$handler->display->display_options['row_options']['separator'] = ',';
$handler->display->display_options['row_options']['hide_empty'] = TRUE;
/* Kapcsolat: Tartalom: Konkrét kurzusok (taxonomy_vocabulary_8) */
$handler->display->display_options['relationships']['taxonomy_vocabulary_8_tid']['id'] = 'taxonomy_vocabulary_8_tid';
$handler->display->display_options['relationships']['taxonomy_vocabulary_8_tid']['table'] = 'field_data_taxonomy_vocabulary_8';
$handler->display->display_options['relationships']['taxonomy_vocabulary_8_tid']['field'] = 'taxonomy_vocabulary_8_tid';
/* Kapcsolat: Tartalom: Kurzustípusok (taxonomy_vocabulary_11) */
$handler->display->display_options['relationships']['taxonomy_vocabulary_11_tid']['id'] = 'taxonomy_vocabulary_11_tid';
$handler->display->display_options['relationships']['taxonomy_vocabulary_11_tid']['table'] = 'field_data_taxonomy_vocabulary_11';
$handler->display->display_options['relationships']['taxonomy_vocabulary_11_tid']['field'] = 'taxonomy_vocabulary_11_tid';
/* Kapcsolat: Tartalom: Tartalom (fő kategória) (taxonomy_vocabulary_1) */
$handler->display->display_options['relationships']['taxonomy_vocabulary_1_tid']['id'] = 'taxonomy_vocabulary_1_tid';
$handler->display->display_options['relationships']['taxonomy_vocabulary_1_tid']['table'] = 'field_data_taxonomy_vocabulary_1';
$handler->display->display_options['relationships']['taxonomy_vocabulary_1_tid']['field'] = 'taxonomy_vocabulary_1_tid';
/* Mező: Taxonómia kifejezés: Név */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['relationship'] = 'taxonomy_vocabulary_1_tid';
$handler->display->display_options['fields']['name']['label'] = '';
$handler->display->display_options['fields']['name']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['name']['link_to_taxonomy'] = TRUE;
/* Mező: Taxonómia kifejezés: Név */
$handler->display->display_options['fields']['name_2']['id'] = 'name_2';
$handler->display->display_options['fields']['name_2']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name_2']['field'] = 'name';
$handler->display->display_options['fields']['name_2']['relationship'] = 'taxonomy_vocabulary_11_tid';
$handler->display->display_options['fields']['name_2']['label'] = '';
$handler->display->display_options['fields']['name_2']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['name_2']['link_to_taxonomy'] = TRUE;
/* Mező: Taxonómia kifejezés: Név */
$handler->display->display_options['fields']['name_1']['id'] = 'name_1';
$handler->display->display_options['fields']['name_1']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name_1']['field'] = 'name';
$handler->display->display_options['fields']['name_1']['relationship'] = 'taxonomy_vocabulary_8_tid';
$handler->display->display_options['fields']['name_1']['label'] = '';
$handler->display->display_options['fields']['name_1']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['name_1']['link_to_taxonomy'] = TRUE;
/* Szövegkörnyezeti szűrő: Tartalomváltozat: Tartalom azonosító */
$handler->display->display_options['arguments']['nid']['id'] = 'nid';
$handler->display->display_options['arguments']['nid']['table'] = 'node_revision';
$handler->display->display_options['arguments']['nid']['field'] = 'nid';
$handler->display->display_options['arguments']['nid']['default_action'] = 'default';
$handler->display->display_options['arguments']['nid']['exception']['title'] = 'Mind';
$handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node';
$handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
/* Szűrési feltétel: Tartalom: Közzétéve */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Szűrési feltétel: Tartalom: Típus */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'meghivo' => 'meghivo',
  'tanusagtetel' => 'tanusagtetel',
  'story' => 'story',
);

/* Display: EVA Field */
$handler = $view->new_display('entity_view', 'EVA Field', 'entity_view_1');
$handler->display->display_options['entity_type'] = 'node';
$handler->display->display_options['bundles'] = array(
  0 => 'meghivo',
  1 => 'tanusagtetel',
  2 => 'story',
);
$translatables['teszt_taxonomia'] = array(
  t('Master'),
  t('Kapcsolódó taxonómia kifejezések'),
  t('tovább'),
  t('Alkalmazás'),
  t('Alaphelyzet'),
  t('Rendezés'),
  t('Növekvő'),
  t('Csökkenő'),
  t('Elemek száma oldalanként'),
  t('- Mind -'),
  t('Eltolás'),
  t('« első'),
  t('‹ előző'),
  t('következő ›'),
  t('utolsó »'),
  t('kifejezés ebből: taxonomy_vocabulary_8'),
  t('kifejezés ebből: taxonomy_vocabulary_11'),
  t('kifejezés ebből: taxonomy_vocabulary_1'),
  t('Mind'),
  t('EVA Field'),
);
  • Jóbel