मैं भाषा के आधार पर कर की शर्तों को कैसे फ़िल्टर कर सकता हूं?


9

मैंने भाषा द्वारा टैक्सोनॉमी शब्दों को फ़िल्टर करने का एक तरीका खोजा है (जैसा कि नोड्स के लिए किया गया है), लेकिन मुझे ऐसा करने का कोई तरीका नहीं मिला।

क्या दृश्य मॉड्यूल का समर्थन करता है जो टैक्सोनॉमी में भी फ़िल्टर करता है, या सिर्फ नोड्स में?
मैं भाषा के आधार पर कर की शर्तों को कैसे फ़िल्टर कर सकता हूं?


1. शब्दावली में 2 समूहों का उपयोग करें। उपयोगकर्ताओं को समूह घोषित करने के लिए
हुक_फॉर्म_ल्टर का

मुझे समझ में नहीं आता है कि उपयोगकर्ता को टैक्सोनॉमी के पिकअप समूह के साथ क्या करना है। यह साइट बहु भाषाओं में है। उदाहरण के लिए ए लैंग, बी लैंग, सी लैंग और जब उपयोगकर्ता बी लैंग में जाता है तो मैं यही चाहता हूं कि इस भाषा और अन्य भाषा के आधार पर प्रदर्शित टैक्सोनोमी। ऐसा नहीं है कि मैं प्रत्येक सक्षम भाषा के लिए कर शर्तों का अनुवाद करता हूं।
मोहमद सलमा

# क्या मैं दृश्य में क्वेरी स्ट्रिंग संपादित कर सकता हूं?! या इसके सिर्फ मुझे सूचित करने के लिए। अगर इसके संपादन के लिए जगह कहां है?
मौहम्मद सलामा

जवाबों:


11

मॉड्यूल अंतर्राष्ट्रीयकरण दृश्य को सक्षम करके, भाषा द्वारा वर्गीकरण शब्द को फ़िल्टर करने का विकल्प उपलब्ध है। ध्यान दें कि संस्करण वर्तमान में देव में है, लेकिन यह एक आकर्षण की तरह काम करता है।

स्क्रीनशॉट i18nviews स्थापित करने का प्रभाव दिखा रहा है


2
ध्यान दें कि यह फ़िल्टर तभी उपलब्ध होगा जब आपने मॉड्यूल को सक्षम किया हो i18n_taxonomy। यही है, यदि आप वर्गीकरण शब्दों के लिए नोड अनुवाद का उपयोग करते हैं।
तानीस

3

आप टैक्सोनॉमी शब्दों के लिए भाषा फ़िल्टर प्राप्त करने के लिए टैक्सोनॉमी ट्रांसलेशन मॉड्यूल (जो अंतर्राष्ट्रीयकरण का हिस्सा है ) के संयोजन में अंतर्राष्ट्रीयकरण दृश्य मॉड्यूल का उपयोग कर सकते हैं ।

अंतर्राष्ट्रीयकरण का उपयोग करते हुए विचारों का अनुवाद करें। यह एक कार्य प्रगति पर है और सभी दृश्य गुणों का अभी तक अनुवाद नहीं किया जा सका है। अंतर्राष्ट्रीयकरण 6.x-1.5 या नए की आवश्यकता है


2

यहाँ एक और उपाय है:

function mymodule_views_query_alter(&$view, &$query) {
  if ($view->name == 'yourviewmachinename') {
    $query->where[] = array(
      'conditions' => array(array(
        'field' => 'taxonomy_term_data.language',
        'value' => array('***CURRENT_LANGUAGE***'),
        'operator' => 'in',
      )),
      'args' => array(),
      'type' => 'AND',
    );
  }
}

स्रोत यहाँ


1

व्यू मॉड्यूल, इसके साथ जुड़ी भाषा द्वारा वर्गीकरण की शर्तों को फ़िल्टर करने की अनुमति नहीं देता है, क्योंकि ड्रुपल केवल भाषा को नोड्स के साथ जोड़ता है।

आप एक पूर्वनिर्धारित भाषा के साथ केवल नोड्स दिखाने के लिए दृश्य सेट कर सकते हैं, हालांकि।

  • "फ़िल्टर मानदंड" के तहत, "जोड़ें" चुनें
  • अगले रूप में, "सामग्री अनुवाद: भाषा" चुनें
  • अगला फ़ॉर्म आपको "सभी का चयन करें," "वर्तमान उपयोगकर्ता की भाषा," "डिफ़ॉल्ट साइट भाषा," "कोई भाषा नहीं" और साइट में सक्षम भाषाओं में से एक के बीच दृश्य सामग्री को फ़िल्टर करने के लिए किस भाषा का उपयोग करने की अनुमति देगा।

मैंने इस फ़िल्टर को टैक्सोनॉमी शब्द के दृश्य पर जोड़ा है जो कि दृश्य मॉड्यूल के साथ आता है, सामग्री को फ़िल्टर करने के लिए भाषा के रूप में अंग्रेजी का चयन करता है, और मैंने दो नोड बनाए: एक अंग्रेजी में, और एक लैटिन में। मैंने दोनों नोड्स को एक ही टैक्सोनॉमी टर्म, 22 के बराबर आईडी के साथ सौंपा।
जब मैंने http://example.com/taxonomy/term/22 का दौरा किया , तो दृश्य ने प्रभावी रूप से अंग्रेजी में केवल सामग्री दिखाई।


ड्रुपल 5 में वास्तव में अजीब है मैं आसानी से भाषा द्वारा टैक्सोनॉमी को फ़िल्टर कर सकता हूं। लेकिन किसी भी तरह से जवाब साझा करने के लिए धन्यवाद।
मौहम्मद सलामा

0

इकाई अनुवाद के लिए भाषा फ़िल्टरिंग। यदि आप नोड ट्रांसलेशन सिस्टम का उपयोग करते हैं तो दृश्य "फ़िल्टर मानदंड" खंड में एक भाषा फ़िल्टर आवश्यक है। यदि इसके बजाय आप Drupal 7 के लिए उपलब्ध अधिक आधुनिक इकाई अनुवाद प्रणाली का उपयोग करते हैं , तो बस "फ़ील्ड भाषा" सेटिंग को "अन्य" अनुभाग में देखें।

इसे करबद्ध शर्तों के लिए कैसे किया जाए। मैंने इसे टैक्सोनॉमी शर्तों के लिए आजमाया और यह काम करता है। बस यह सुनिश्चित करें कि आप हर अनुवाद योग्य क्षेत्र के लिए दो फ़ील्ड इंस्टेंस में से एक को सही जोड़ दें, अर्थात् "इन-टैक्सोनोमी-टर्म: योर-वोकैब-नेम" में एक विवरण। जानकारी के लिए, अंक # 1841434 पर देखें ।


0

अपने your_MODULE.module में जोड़ें

function YOUR_MODULE_views_data_alter(&$data) {
  $opts['title'] = 'Language';
  $opts['table'] = 'taxonomy_term_data';
  $opts['help'] = 'Taxonomy term language.';
  $opts['filter']['handler'] = 'YOUR_MODULE_handler_filter_language';
  $data['taxonomy_term_data']['language'] = $opts;
}

अपने your_MODULE.info में जोड़ें

files[] = views/handlers/filter/YOUR_MODULE_handler_filter_language.inc

अपने मॉड्यूल निर्देशिका के भीतर फ़ाइल "दृश्य / हैंडलर / फ़िल्टर / your_MODULE_handler_filter_language.inc" बनाएं और अगली सामग्री रखें:

/**
 * @file
 * Views handler to filter language by term.
 */

/**
 * Filter by submission status
 */
class YOUR_MODULE_handler_filter_language extends views_handler_filter_in_operator {
  function get_value_options() {
    $languages = array(
      '***CURRENT_LANGUAGE***' => t("Current user's language"),
      '***DEFAULT_LANGUAGE***' => t("Default site language"),
      LANGUAGE_NONE            => t('Language neutral'),
    );
    $this->value_title = t('Language');
    $options = array_merge($languages, locale_language_list());
    $this->value_options = $options;
  }

  // '0' won't work as a key for checkboxes.
  function value_form(&$form, &$form_state) {
    parent::value_form($form, $form_state);
    $form['value']['#type'] = 'select';
  }
}

स्पष्ट सभी कैश और नई कसौटी दिखाई देगी।

या मेरे मॉड्यूल अकुमा टैक्सोनॉमी का उपयोग करें


0

जैसा कि मैं अंतर्राष्ट्रीयकरण दृश्य मॉड्यूल के साथ कुछ अन्य मुद्दे रख रहा हूं, अर्थात् यह दृश्य (पेजर दिशाओं, शीर्ष लेख / पाद लेख आदि) से पहले से अनुवादित यूआई को बदलने के लिए लगता है, मैं एक अलग में भाषा फ़िल्टर बनाने के लिए संबंधित कोड को हटा देता हूं मापांक। अपने मॉड्यूल के नाम के साथ नीचे MYMODULE बदलें। मेरे लिए एक आकर्षण के रूप में काम करता है!

/**
 * Code below is lifted from the i18nviews module. Gives the possibility to filter for
 * language on term views
 *
 * Implementation of hook_views_data_alter().
 *
 * Registers views handlers with dependency to i18n_taxonomy.
 */
function MYMODULE_views_data_alter(&$data) {

  // Add i18n language field to taxonomy_term_data. No clash.
  $data['taxonomy_term_data']['language'] = array(
    'group' => t('Taxonomy term'),
    'title' => t('Language'),
    'help' => t('The language the term is in.'),
    'field' => array(
      'handler' => 'MYMODULE_handler_field_taxonomy_term_language',
      'click sortable' => TRUE,
    ),
    'filter' => array(
      'handler' => 'MYMODULE_handler_filter_taxonomy_term_language',
    ),
    'argument' => array(
      'handler' => 'MYMODULE_handler_argument_taxonomy_term_language',
    ),
  );
}

/**
 * Field handler to provide simple renderer that shows term language.
 */
class MYMODULE_handler_field_taxonomy_term_language extends views_handler_field_taxonomy {
  function render($values) {
    $languages = locale_language_list();
    $value = isset($languages[$values->{$this->field_alias}]) ? $languages[$values->{$this->field_alias}] : '';
    $value = $this->get_value($values);
    return $this->render_link($this->sanitize_value($value), $values);
  }
}

/**
 * Filter by language
 */
class MYMODULE_handler_filter_taxonomy_term_language extends views_handler_filter_in_operator {
  function get_value_options() {
    if (!isset($this->value_options)) {
      $this->value_title = t('Language');
      $languages = array(
        '***CURRENT_LANGUAGE***' => t("Current user's language"),
        '***DEFAULT_LANGUAGE***' => t("Default site language"),
        LANGUAGE_NONE => t('No language')
      );
      $languages = array_merge($languages, locale_language_list());
      $this->value_options = $languages;
    }
  }
}

/**
 * Argument handler to accept a language.
 */
class MYMODULE_handler_argument_taxonomy_term_language extends views_handler_argument {
  function construct() {
    parent::construct('language');
  }

  /**
   * Override the behavior of summary_name(). Get the user friendly version
   * of the language.
   */
  function summary_name($data) {
    return $this->term_language($data->{$this->name_alias});
  }

  /**
   * Override the behavior of title(). Get the user friendly version of the
   * node type.
   */
  function title() {
    return $this->term_language($this->argument);
  }

  function term_language($langcode) {
    $languages = locale_language_list();
    return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language');
  }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.