Saját token rulesban

charlos képe

Sziasztok!

Feltelepítettem a tokem_custom modult, megírtam példák alapján a saját tokenemet, ami pl meta keyword-ben meg is jelenik.
Viszont ezt a tokent szeretném használni rules-ben is (hiszen ezért hoztam létre), de nem jelenik meg.
A rules így épül fel:

Esemény: A vevő befejezi a rendelést
Akció: Levél küldése

Így néz ki a token jelenleg (lehet, hiányos?)

if(arg(0)!="node")
return "not viewing a node";
$node = node_load(arg(1));
$wrapper = entity_metadata_wrapper('node', $node);
$supported_name=$wrapper->field_supported_refer->title->value();
return $supported_name;

A levél küldése akció jelenleg csak order kezdetű tokeneket enged, ami logikus ugyan, de mégis szeretnék saját tokeneket használni. Erre van ötlete valakinek?

Előre is köszi.

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

Szerintem a lényeg az, hogy hova helyezed a tokened, ha benyomod a commerece-order tokenek közé, akkor meg kellene jelennie... ezt egy hook_token_info_alter()-ben könnyedén megteheted, ha neked az jó, hogy a commerece-order részben megjelenik, akkor valahogy így kellene létrehoznod a tokent:

  1. /**
  2.  * Implements hook_token_info_alter().
  3.  */
  4. function MODULOD_NEVE_token_info_alter(&$data) {
  5. $data['tokens']['commerce-order']['tokened-neve'] = array(
  6. 'name' => t('Tokened neve'),
  7. 'description' => t('Tokened leírása.'),
  8. );
  9. }
  10.  
  11. /**
  12.  * Implements hook_tokens().
  13.  */
  14. function MODULOD_NEVE_tokens($type, $tokens, array $data = array(), array $options = array()) {
  15. $replacements = array();
  16.  
  17. if ($type == 'commerce-order' && !empty($data['commerce-order'])) {
  18. $order = $data['commerce-order'];
  19.  
  20. foreach ($tokens as $name => $original) {
  21. switch ($name) {
  22. case 'tokened-neve':
  23. // ide jöhet a kódod, amivel előállítod a token értékét...
  24. $replacements[$original] = "";
  25. break;
  26. }
  27. }
  28. }
  29.  
  30. return $replacements;
  31. }
1
0