zionduc képe

Konkrétan ilyet még nem kellett csinálnom, de mivel pénteken fals tippet adtam, így szívemen viseltem a problémát, és utánanéztem ennek a megoldásának, ami nem annyira evidens, mint elsőre tűnik. Ebből indultam ki, bár a konkrét megoldást nem írják le:
http://drupal.org/node/982250

Ami kell ehhez:
- A feljebb már említett Conditional Rules, és a
- Views Bulk Operations

Azon nem is lepődtem meg, hogy a legjobb segítséget a Johan Falk által készített videó adta: http://nodeone.se/sv/node/777
(Ha még nem használtad a VBO-t, akkor nézd meg a videósorozatot a 17-es résztől - bár az egészet érdemes végigtanulmányozni)

Lépések:
1.
Hozz létre egy Nézetet a Felhasználók táblát használva.
- Formázatlan lista
- 3 db mezővel (Email, Név, Tömeges műveletek: Felhasználó (Felhasználó) ).
- Szűrési feltétel: a Felhasználó Aktív.
- Fontos!, hogy a hozzáférés ne az alapértelmezett legyen, hanem add meg azoknak a szerepköröknek a jogosultságot, akik beküldhetnek tartalmakat az oldaladon (valószínűleg nincs nekik "Felhasználói profilok megtekintése" joguk).
2.
Hozz létre egy új Rule Összetevőt
admin/config/workflow/rules/components/add
Összetevő-beépülő: Művelethalmaz
...
Inkább exportáld be ezt (és akkor nem kell annyit írnom :) ):

{ "rules_email_to_everybody_except_the_author" : {
    "LABEL" : "Email to everybody except the author",
    "PLUGIN" : "action set",
    "REQUIRES" : [ "views_bulk_operations", "rules_conditional", "rules" ],
    "ACTION SET" : [
      { "views_bulk_operations_action_load_list" : {
          "USING" : { "view" : "list_of_user_email|default" },
          "PROVIDE" : { "entity_list" : { "email_list" : "Email list" } }
        }
      },
      { "LOOP" : {
          "USING" : { "list" : [ "email-list" ] },
          "ITEM" : { "email" : "email" },
          "DO" : [
            { "CONDITIONAL" : [
                {
                  "IF" : { "text_matches" : { "text" : [ "site:current-user:mail" ], "match" : "[email:mail]" } },
                  "DO" : [
                    { "drupal_message" : { "message" : "Remove the author from the list: [email:mail]" } },
                    { "list_remove" : { "list" : [ "email-list" ], "item" : [ "email" ] } }
                  ]
                },
                { "ELSE" : [
                    { "mail" : {
                        "to" : "[email:mail]",
                        "subject" : "teszt",
                        "message" : "teszt",
                        "language" : "hu"
                      }
                    },
                    { "drupal_message" : { "message" : "Email to [email:mail]" } }
                  ]
                }
              ]
            }
          ]
        }
      }
    ]
  }
}

A teszteléshez benne hagytam két üzenet megjelenítést. Azokat majd töröld ki, ha már nálad is jól működik.

3.
Végül a Szabályhoz add hozzá a 2. pontban elkészített Akciót.

Ezt teszteltem, és jól működik admin userrel, és egy másik szerepkörbe tartozó felhasználóval is.

4
0

Írj rám, ha érdekel a Győri Drupal Használói Találkozó.

drupal 6.x Felhasználó Profilokhoz 'radios' es 'checkboxes' field

eaposztrof képe

az /admin/user/profile oldalon alapertelmezettkent csak az alabbi mezok adhatoak hozza:

* egysoros szövegmező
* többsoros szövegmező
* jelölőnégyzet
* választólista
* szabad formátumú lista
* URL
* dátum

ezt kellene kiboviteni a 'checkboxes' es 'radios' mezokkel. ime a hack:

/modules/profile.module

ipeto képe

Üdv!

Újabb probléma vetődött fel az ügyben: Egy olyan szabályra van szükség, amivel karbantarthatók az oktatók, vagyis ha egy tárgyból valaki kikerül, akkor a hozzá kötődő felhasználót leíratkoztatjuk a csoportból, ha valaki bekerül, akkor meg a megfelelő szerepkörrel felvesszük. (Közben áttértem a többek által javasolt Organic Groupra, de a szabály szempontjából ez nem nagy különbség.

A gond onnan fakad, hogy ehhez a feladathoz a következők kellenek:

  • Egy ciklus a mentett tartalom új állapotaihoz: node:field-oktato-entity
  • Egy ciklus a mentett tartalom eredeti állapotaihoz: node-unchanged:field-oktato-entity
  • Egy feltétel, miszerint az eredeti állapotban nem üres a mező
  • Egy feltétel, miszerint az eredeti és az új állapotban eltérő oktató szerepel a mezőben
  • Egy-egy "entity has field" feltétel, amely a field-oktato-entity mező régi és új állapotát kapcsolja az érintett felhasználóhoz
  • Összesen négy akció: a kikerülő felhasználó "oktató" szerepének eltávolítás ill. leíratkoztatása a csoportból, ill. az új felhasználónál ennek a fordítottja.

Namost erre a következő monumentális szabályt rakosgattam össze:

  1. { "rules_og_oktato_karbantart_oktato_entity" : {
  2. "LABEL" : "OG - Oktat\u00f3k karbantart\u00e1sa - oktat\u00f3 - entity",
  3. "PLUGIN" : "reaction rule",
  4. "OWNER" : "rules",
  5. "REQUIRES" : [ "rules_conditional", "og", "rules" ],
  6. "ON" : { "node_update--course" : { "bundle" : "course" } },
  7. "DO" : [
  8. { "LOOP" : {
  9. "USING" : { "list" : [ "node:field-oktato-entity" ] },
  10. "ITEM" : { "list_oktato" : "Oktat\u00f3k list\u00e1ja" },
  11. "DO" : [
  12. { "LOOP" : {
  13. "USING" : { "list" : [ "node-unchanged:field-oktato-entity" ] },
  14. "ITEM" : { "list_oktato_regi" : "Oktat\u00f3k r\u00e9gi list\u00e1ja" },
  15. "DO" : [
  16. { "CONDITIONAL" : [
  17. {
  18. "IF" : { "entity_has_field" : { "entity" : [ "list-oktato" ], "field" : "field_csatolt_user" } },
  19. "DO" : [
  20. { "CONDITIONAL" : [
  21. {
  22. "IF" : { "entity_has_field" : { "entity" : [ "list-oktato-regi" ], "field" : "field_csatolt_user" } },
  23. "DO" : [
  24. { "CONDITIONAL" : [
  25. {
  26. "IF" : { "NOT data_is_empty" : { "data" : [ "list-oktato-regi" ] } },
  27. "DO" : [
  28. { "CONDITIONAL" : [
  29. {
  30. "IF" : { "data_is" : { "data" : [ "list-oktato-regi" ], "value" : [ "list-oktato" ] } },
  31. "DO" : [
  32. { "og_revoke_og_role" : {
  33. "account" : [ "list-oktato-regi:field-csatolt-user" ],
  34. "group" : [ "node" ],
  35. "roles" : { "value" : { "oktat\u00f3" : "oktat\u00f3" } }
  36. }
  37. },
  38. { "og_group_content_remove" : {
  39. "entity" : [ "list-oktato-regi:field-csatolt-user" ],
  40. "group" : [ "node" ]
  41. }
  42. },
  43. { "og_group_content_add" : { "entity" : [ "list-oktato:field-csatolt-user" ], "group" : [ "node" ] } },
  44. { "og_grant_og_role" : {
  45. "account" : [ "list-oktato:field-csatolt-user" ],
  46. "group" : [ "node" ],
  47. "roles" : { "value" : { "oktat\u00f3" : "oktat\u00f3" } }
  48. }
  49. }
  50. ]
  51. }
  52. ]
  53. }
  54. ]
  55. }
  56. ]
  57. }
  58. ]
  59. }
  60. ]
  61. }
  62. ]
  63. }
  64. ]
  65. }
  66. ]
  67. }
  68. }
  69. ]
  70. }
  71. }
  72. ]
  73. }
  74. }

Ezzel egyrészt az a gond, hogy a leíratkoztatás rész nem működik, a másik pedig hogy lényegében tetszőleges mennyiségű memóriát el tud fogyasztani (így igazán tesztelni se könnyű).
Abban szeretnék segítséget kérni, hogyan lehetne ezt takarékosabbra hangolni?

0
0

User importálás és content profile taxonomy feltöltése rules modullal.

menesisz képe

Sziasztok!

User import modullal szeretnék felhasználókat feltölteni.

Van nekik egy content profile-juk, ebben egy szerepkör taxonómia mező, amiben az intézményi szerepköreiket tarthatja karban az arra jogosult admin. (nem content taxonomy, csak az alap Drupal...)

Én ezt a taxonómia mezőt szeretném bővíteni egy "tanuló" termmel, ha a frissen regisztrált user "tanuló" role-al rendelkezik.

Rules modullal egyszerűnek látszik a megoldás, de sehogy nem sikerült eddig működő kombinációt összeállítanom.

A legutóbbi definíció így néz ki:

Drupal verzió: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 

Views mezők újrarendezésénél elszáll

saben képe

Sziasztok,

Egy elég idegesítő probléma miatt írok, amire nem tudok rájönni mi lehet az oka. Lehet szimplán JavaScript eredetű.

A hibajelenség a Views UI felületén történik, amikor a mezőket szeretném újrarendezni. Hibátlanul feljön a kis inline-popup ablaka, majd eltudom rajta végezni az újrarendezést, aztán mikor menteném erre az URL-re dob át:

admin/structure/views/ajax/rearrange/commerce_line_item_table/default/field

Drupal verzió: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
eggproject képe

Nagyon koszonom! Ezt igy mar ertem :)

user_is_anonymus() sajnos nem jo mert keves latogato lesz aki nem fog belepni(alapbol reges az oldal) ...

-----------
form:
igen szeretnem ha a submit gomb es az elotte levo (barmilyen form) elem egy kulon wrapper divben lenne(ennek csupan design okai vannak es sajnos csak igy lehet megoldani :() ... de mivel ezt a form api-val nem tudtam megoldani(ahogy mar mondtam a form api-t meg nem ertem teljesen :( pl: nem tudom hogy mitol fugg hogy a tombben levo form elemeket milyen sorrendben fogja generalni stb...) ezert valasztottam azt a modszert hogy templatetet csinalok ahol ugye egyesevel renderelem ki az elemeket es akkor a kello div berakasa pofon egyszeru(egyebkent tenyleg halkan jegyzem meg hogyha neten rakeresek arra hogy drupal 7 custom user register form, akkor a legtobb esetben ezt a template-s modszert irjak es azert csinaltam en is ugy...) ...
a drupal alapbol ezt generalja

.
.
<div class="field-type-list-boolean field-name-field-elfogadom-a-szabalyzatot field-widget-options-onoff form-wrapper" id="edit-field-elfogadom-a-szabalyzatot">
	<div class="form-item form-type-checkbox form-item-field-elfogadom-a-szabalyzatot-und">
		<input type="checkbox" id="edit-field-elfogadom-a-szabalyzatot-und" name="field_elfogadom_a_szabalyzatot[und]" value="1" class="form-checkbox required">  
		<label class="option" for="edit-field-elfogadom-a-szabalyzatot-und">Elfogadom a szabályzatot <span class="form-required" title="This field is required.">*</span></label>
	</div>
</div>
<div class="form-actions form-wrapper" id="edit-actions--2">
	<input type="submit" id="edit-submit--2" name="op" value="Mehet" class="form-submit">
</div>
.
.

de en azt szerettem volna elerni(templattel el is ertem)

<div class="submit-wrapper">
	<div id="edit-field-elfogadom-a-szabalyzatot" class="field-type-list-boolean field-name-field-elfogadom-a-szabalyzatot field-widget-options-onoff form-wrapper">
		<div class="form-item form-type-checkbox form-item-field-elfogadom-a-szabalyzatot-und">
			  <label for="edit-field-elfogadom-a-szabalyzatot-und">Elfogadom a szabályzatot <span title="Szükséges mező." class="form-required">*</span></label>
			 <input type="checkbox" class="form-checkbox required" value="1" name="field_elfogadom_a_szabalyzatot[und]" id="edit-field-elfogadom-a-szabalyzatot-und">
		</div>
	</div>
	<div id="edit-actions--2" class="form-actions form-wrapper">
		<input type="submit" class="form-submit" value="mehet" name="op" id="edit-submit--2">
	</div>
</div>

a regisztracios formot pedig a page--front.tpl.php-ban rakkom ki megpedig igy

$form = drupal_get_form('user_register_form');
print render($form);

es hidd el tenyleg kivancsi vagyok hogy a form api-val hogy lehet megoldani mert egyebkent tenyleg nem mindegy hogy most letre kellett hoznom 1 fajlt vagy csak 3-4 sort beszurni egy alterba...

Koszonom az elozo magyarazatokat :)

0
0

Kereső blokk - Submit gomb nélkül

jailhouse képe

Sziasztok!

A Kereső blokkban szeretném ha nem jelenne meg a keresés gomb és Enterrel szeretném indítani a keresést, de ha kiveszem a submit gombot és entert ütök, akkor csak az oldalt tölti újra, nem működik a keresés.

Kódrészlet a modulban:

<?php
function search_box(&$form_state, $form_id) {
  $form[$form_id] = array(
    '#title' => t('Search this site'),
    '#type' => 'textfield',
    '#size' => 15,
    '#default_value' => '',
    '#attributes' => array('title' => t('Enter the terms you wish to search for.')),
  );
Fórum: 
Drupal verzió: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 

textsize modul testreszabása

szistvan képe

Hi!

A TextSize modult szeretném picit testreszabni.
Azt szeretném, hogy nagyon "minimalista" kinézete legyen, azaz csak a piktogrammok jelenjenek meg, semmi más. A kódot megtaláltam, csak igazából nem értem. :-(

<?php  if ($textsize_increase): ?>
Fórum: 
Drupal verzió: