ভিউগুলিতে একক কাস্টম ক্ষেত্রের মান কীভাবে পরিবর্তন করবেন?


11

গ্লোবাল: কাস্টম টেক্সট ক্ষেত্রের সাথে আমার একটি ভিউ রয়েছে যা লিঙ্ক হিসাবে পরিবর্তিত হয়েছে। অন্যান্য ক্ষেত্রের একটি মানের উপর নির্ভর করে এই লিঙ্কটি তৈরির জন্য প্রতিস্থাপন টোকেনগুলি পরিবর্তন করতে চাই।

হুক_ভিউ_প্রেম_রেেন্ডারে এটি সংশোধন করার চেষ্টা করা হয়েছে তবে আমি এটি করার কোনও উপায় খুঁজে পাচ্ছি না।

হুক_ভিউস_পোস্ট_রেন্ডারে দুটি অ্যারে রয়েছে:

$view->style_plugin->render_tokens
$view->style_plugin->row_tokens

যার প্রতিটি সারিটির জন্য উত্পন্ন লিঙ্ক রয়েছে তবে তারা প্রি-রেন্ডারে উপস্থিত নেই এবং পোস্ট_রেেন্ডারে এগুলি পরিবর্তন করে কাজ করে না।

আমি এটি টেমপ্লেট_প্রিপ্রসেস_ভিউ_ভিউ_ফিল্ডে করার চেষ্টা করেছি কিন্তু সেই নির্দিষ্ট দৃষ্টিভঙ্গির জন্য এই ফাংশনটি গুলি চালায় না (এটি অন্যান্য দর্শনগুলির জন্য হয়) এবং কেন জানি না।

উত্তর:


16
function hook_views_pre_render(&$view) {

  switch ($view->name) {
    case 'YOUR_VIEW_NAME':
      //  override the global custom text field value
      $view->field['nothing']->options['alter']['text'] = 'My custom text';
    break;
  }
}

আরও তথ্যের জন্য লিঙ্কটি পরীক্ষা করে দেখুন কীভাবে প্রোগ্রামের মাধ্যমে বিশ্বব্যাপী কাস্টম পাঠ্যের ক্ষেত্রে মান সন্নিবেশ করা যায়?

দেখার জন্য ক্ষেত্র হিসাবে এনআইডি যোগ করুন এবং শর্তের জন্য সেই ক্ষেত্রটি ব্যবহার করুন আপনি শর্তটি নিম্নরূপে যুক্ত করতে পারেন: if ($nid == '124') { $view->field['nothing']->options['alter']['text'] = $nid}

সরল উপায় হ'ল একটি নতুন ক্ষেত্র ফিল্ড_ওয়াগা তৈরি করা যাতে এতে ফিল্ড_ওয়াগা নতুন নাম হিসাবে উপস্থিত থাকে যদি আপনি ভিউটিতে যাচাই করেন এবং তারপরে আপনি লেবেলটি পরিবর্তন করতে পারেন এবং সেই ক্ষেত্রটিকে আপনার কাস্টম মান দিয়ে ওভাররাইড করতে পারেন

if($view->result[0]->field_waga[0]['raw']['value'] == '10') {
//here you can create the field to act as custom text field and enter the custom //value
$view->result[0]->field_waga_1[0]['#markup'] = 'alter';
}

এই সমাধানটি প্রতিটি ক্ষেত্রকে 'আমার কাস্টম পাঠ্যে' পরিবর্তিত করে, আমি কেবলমাত্র নির্বাচিত ক্ষেত্রগুলিকেই পরিবর্তন করতে এবং একটি লিঙ্ক (যদি ক্ষেত্রটি কোনও লিঙ্ক হিসাবে প্রদর্শন করার জন্য পরিবর্তিত হয়) এভাবে দেখতে পাই না। দুর্ভাগ্যক্রমে আমি একটি প্রিপ্রোসেস_ভিউ_ভিউ_ফিল্ডস () ফাংশনটি ব্যবহার করতে পারি না, যা আপনি সরবরাহ করেছেন সেই লিঙ্কে উল্লেখ করা হয়েছে, কারণ অজানা (আমার জন্য;) কারণে এই নির্দিষ্ট দর্শনটির জন্য এই ফাংশনটি বরখাস্ত করা হয়নি।
dmk.it

আপনি নিম্নরূপ শর্ত যুক্ত করতে পারেন: যদি (id nid == '124') {$ দর্শন-> ক্ষেত্র ['কিছুই না'] -> বিকল্পগুলি '' পরিবর্তন '] [' পাঠ্য '] = $ নিড}
হর্ষাল

আপডেট হওয়া উত্তরটি চেক করুন
হার্ডল

শর্তটি এইভাবে যুক্ত করা হয়েছে: যদি ($ দর্শন-> ফলাফল [0] -> ক্ষেত্র_ওয়াগা [0] ['কাঁচা'] ['মান'] == '10') $ $ দর্শন-> ক্ষেত্র ['কিছুই না'] - > বিকল্পগুলি ['alter'] ['text'] = 'ALTER'; Fields সকল ক্ষেত্রের তুলনায় প্রথম সারিতে যদি একটি মান '10' থাকে তবে 'কিছুই না' এর মান 'ALTER' থাকে। দুর্ভাগ্যক্রমে কেবল প্রথম নয়, সমস্ত সারিও। আমি মনে করি এটি একটি বিশ্বব্যাপী পরিবর্তনকারী এবং এটি নির্বাচিত সারিগুলিতে ব্যবহার করা যাবে না।
dmk.it

1
আপনি কেবল ইতিমধ্যে অ্যাড ফিল্ডটি ব্যবহার করেছেন এমন একটি ফিল্ড_ওয়াগা যুক্ত করবেন না এবং তারপরে আপনার কাস্টম মানগুলিকে ইনপুট করতে সেই ক্ষেত্রটিকে কাস্টম ফিল্ড হিসাবে ব্যবহার করুন
هارশাল

0

উপরের উত্তরের আপডেট হিসাবে, আমাকে এটির কাজ করার জন্য সত্যায় 'alter_text' সেট করতে হয়েছিল, যেমন:

function hook_views_pre_render(&$view) {

  switch ($view->name) {
    case 'YOUR_VIEW_NAME':
    //  override the global custom text field value
    $view->field['nothing']->options['alter']['text'] = 'My custom text';
    $view->field['nothing']->options['alter']['alter_text'] = TRUE;

    break;
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.