Nyelvfüggő tartalmakhoz referenciák megjelenítése

Paal képe

Üdv!

Egy kétnyelvű oldalnál adott eseményre a kiírást is két nyelven kellett felvinni, az ugye 2 node-ot jelent:

Mindkettőben van egy "regisztráció" link, amivel tulajdonképpen egy új "event-registration" tartalmat fog létrehozni, node-referenciával hivatkozva az adott eseményre. Itt a node-referenciánál nyelvre szűrök egy views segítségével, mert a két rendezvény + két nyelv miatt 4 választási lehetősége lenne amúgy.

A problémám az, hogy a regisztrált csapatokat a rendezvény kiírásánál, a tartalom alatt (Regisztrált csapatok:) meg szeretném jeleníteni egy viewfiels segítségével, de nyelvtől függetlenül. De mivel az adott nyelven a node-referencia hivatkozása (%nid) más, ezért nem jelenik meg az összes csapat, csak azok, amelyek a "magyar" kiíráshoz regisztráltak, vagy csak az "angolhoz". Viszont mindkét kiírás u.arra a rendezvényre szólna.

Lehet, hogy már az elején elrontottam a gondolatot, de hogy lehetne ezt helyesen megoldani?

Köszi, Pali

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

de ízi, nincs lehetetlen, csak tehetetlen.

saját argumentumkezelő kóddal szerintem meg tudod oldani. a nid argumentumodat ugye provide default -ra állítod és a custom php lehetőséget választod. oda meg beírod a kódot, ami végül 2 nid -et fog visszaadni. lesz ugye egy amit kinéz mondjuk arg() -al az urlből, az alapján egy hívással (nézz bele az i18n -be, kell legyen benne olyan függv. ami arra való, hogy egy node fordítását adja vissza) megszerzed a fordításának is a nidjét és ezt a kettőt egy tömbbe visszaadod.

jó lenne látni, hogy perpillanat hogyan néz ki egy olyan nézeted, ami ezt a nevezés listát állítja elő, úgy pontosabban meg tudnám mondani, hogy mit kéne írni az argumentumkezelőbe.

0
0

-
clear: both;

Paal képe

$view = new view;
$view->name = 'registered_teams';
$view->description = 'Regisztrált csapatok';
$view->tag = 'team';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Registered Teams', 'default');
$handler->override_option('relationships', array(
  'field_event_reference_nid' => array(
    'label' => 'Rendezvény',
    'required' => 1,
    'delta' => -1,
    'id' => 'field_event_reference_nid',
    'table' => 'node_data_field_event_reference',
    'field' => 'field_event_reference_nid',
    'relationship' => 'none',
  ),
));
$handler->override_option('fields', array(
  'title' => array(
    'label' => '',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'html' => 0,
    ),
    'link_to_node' => 1,
    'exclude' => 0,
    'id' => 'title',
    'table' => 'node',
    'field' => 'title',
    'relationship' => 'none',
  ),
  'field_country_value' => array(
    'label' => 'Country',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'link_to_node' => 0,
    'label_type' => 'widget',
    'format' => 'default',
    'multiple' => array(
      'group' => TRUE,
      'multiple_number' => '',
      'multiple_from' => '',
      'multiple_reversed' => FALSE,
    ),
    'exclude' => 0,
    'id' => 'field_country_value',
    'table' => 'node_data_field_country',
    'field' => 'field_country_value',
    'relationship' => 'none',
  ),
  'field_teamgender_value' => array(
    'label' => 'Gender',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'link_to_node' => 0,
    'label_type' => 'widget',
    'format' => 'default',
    'multiple' => array(
      'group' => TRUE,
      'multiple_number' => '',
      'multiple_from' => '',
      'multiple_reversed' => FALSE,
    ),
    'exclude' => 0,
    'id' => 'field_teamgender_value',
    'table' => 'node_data_field_teamgender',
    'field' => 'field_teamgender_value',
    'relationship' => 'none',
  ),
  'field_teammanager_value' => array(
    'label' => 'Team manager',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'link_to_node' => 0,
    'label_type' => 'widget',
    'format' => 'default',
    'multiple' => array(
      'group' => TRUE,
      'multiple_number' => '',
      'multiple_from' => '',
      'multiple_reversed' => FALSE,
    ),
    'exclude' => 0,
    'id' => 'field_teammanager_value',
    'table' => 'node_data_field_teammanager',
    'field' => 'field_teammanager_value',
    'relationship' => 'none',
  ),
));
$handler->override_option('arguments', array(
  'nid' => array(
    'default_action' => 'summary asc',
    'style_plugin' => 'default_summary',
    'style_options' => array(
      'count' => 1,
      'override' => 0,
      'items_per_page' => '25',
    ),
    'wildcard' => 'all',
    'wildcard_substitution' => 'Minden',
    'title' => '',
    'default_argument_type' => 'fixed',
    'default_argument' => '',
    'validate_type' => 'none',
    'validate_fail' => 'not found',
    'break_phrase' => 0,
    'not' => 0,
    'id' => 'nid',
    'table' => 'node',
    'field' => 'nid',
    'override' => array(
      'button' => 'Override',
    ),
    'relationship' => 'field_event_reference_nid',
    'default_options_div_prefix' => '',
    'default_argument_user' => 0,
    'default_argument_fixed' => '',
    'default_argument_php' => '',
    'validate_argument_node_type' => array(
      'weblinks' => 0,
      'book' => 0,
      'event' => 0,
      'page' => 0,
      'rules' => 0,
      'session' => 0,
      'story' => 0,
      'team' => 0,
    ),
    'validate_argument_node_access' => 0,
    'validate_argument_nid_type' => 'nid',
    'validate_argument_vocabulary' => array(
      '1' => 0,
      '5' => 0,
      '4' => 0,
      '3' => 0,
    ),
    'validate_argument_type' => 'tid',
    'user_argument_type' => '',
    'restrict_user_roles' => 0,
    'user_roles' => array(),
    'validate_argument_php' => '',
  ),
));
$handler->override_option('filters', array(
  'type' => array(
    'operator' => 'in',
    'value' => array(
      'event_registration' => 'event_registration',
    ),
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'type',
    'table' => 'node',
    'field' => 'type',
    'override' => array(
      'button' => 'Override',
    ),
    'relationship' => 'none',
  ),
));
$handler->override_option('access', array(
  'type' => 'none',
));
$handler->override_option('title', 'Regisztrált csapatok');
$handler->override_option('items_per_page', 0);
$handler->override_option('style_plugin', 'table');
$handler->override_option('style_options', array(
  'grouping' => '',
  'override' => 1,
  'sticky' => 0,
  'order' => 'asc',
  'columns' => array(
    'title' => 'title',
  ),
  'info' => array(
    'title' => array(
      'sortable' => 0,
      'separator' => '',
    ),
  ),
  'default' => '-1',
));
0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

Paal képe

Csak mindig utólag jönnek elő az extra funkciók, 5letek.

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

aboros képe

hogy nem korlátozod az "event-registration" típus beküldésekor a node referencben választható értékeket a nyelvre, hanem írsz egy saját modult, ami az űrlapba piszkálva tünteti el a látogató elől azokat az eventeket amik nem az aktuális nyelven vannak, majd a beküldéskor a megjelölt node nidje alapján kikeresed melyik a fordítása és azt is megjelölöd miellőt mented a nodeot.

0
0

-
clear: both;

aboros képe

bár leginkább magunknak :)
az argumentum kezelő php kód:

if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  if ($node->type == 'event') {
    $translations = translation_node_get_translations($node->tnid);
    $args = array();
    foreach ($translations as $key => $value) {
      $args[] = $value->nid;
    }
    return implode(",", $args);
  }
}
0
0

-
clear: both;