প্রোগ্রামে উদ্ভাসিত ফিল্টারগুলি কীভাবে দেখা যায় তা দেখুন views


10

উন্মুক্ত ফিল্টার সহ আমার একটি পৃষ্ঠা ভিউ রয়েছে। ফিল্টারগুলির মধ্যে একটি শব্দ শব্দভাণ্ডার এবং এটি ড্রপডাউন তালিকা, ব্যবহারকারী কেবল একটি বিভাগ (শব্দ) নির্বাচন করতে পারেন।

আমি যখন নির্দিষ্ট ইউআরএল থেকে এসেছি তখন আমি ড্রপডাউন তালিকা থেকে প্রোগ্রামগতভাবে একটি পদ সেট করতে চাই। আমি চেষ্টা করেছি views_query_alterযেখানে $categoryআছে tid

 $set_exposed_input  = array();
 $set_exposed_input['field_category_tid'] = $category;

 if ($set_exposed_input) {
    $view->set_exposed_input($set_exposed_input);
 }


উত্তর:


14

ড্রুপাল 7 এর জন্য আপনি ব্যবহার করতে পারেন

$view->exposed_input[$key] = $value;

এই

$view->exposed_input['title'] = 'My title is a cat';

একটি সম্পূর্ণ উদাহরণের জন্য আপনি এটি চেষ্টা করতে পারেন:

$name = 'name_of_view';
$display = 'page_1';
$alter = array('exposed' =>array('title' => 'title_value'));

$view = views_get_view($name);
$view->init_display($display);
$view->preview=TRUE;
$view->is_cacheable = FALSE;


if(isset($alter['exposed'])){
  foreach($alter['exposed'] as $key => $valor){

     $view->exposed_input[$key] = $valor;

  }
}

$view->pre_execute();
$output = $view->display_handler->preview();
$view->post_execute();

print_r($view->result);

অন্য উপায়ে ভিউ সেট_পশন ফাংশনটি ব্যবহার করা হচ্ছে

$filters = $view->display_handler->get_option('filters');

foreach($alter['exposed'] as $key => $valor){
   $filters[$key]['value'] = $valor;
   $view->display_handler->set_option('filters', $filters);
}

1
প্রাক নির্বাহ বা এমন কিছুর দৃষ্টিতে আপনি কোথায় এটি রাখেন?
মিকা এ।

টিপিএল ভিউগুলিতে! এবং পুরো উদাহরণ, যেখানেই এটির একটি লোড ভিউ ফাংশন রয়েছে
rafinskipg

1
আপনি এটিকে হুক_ভিউ_প্রেম_ভিউতেও যুক্ত করতে পারেন
কোয়ান্টিন ক্যাম্পবেল ২ '

5
টিপিএল ফাইলটি ব্যবসায়ের লজিক সেট করার জন্য নয়, রেন্ডারযুক্ত সামগ্রী প্রদর্শন করতে ব্যবহার করা উচিত। অনুগ্রহ করে অন্যান্য অগণিত ভিউ হুকগুলির মধ্যে একটি ব্যবহার করে দেখুন: api.drupal.org/api/views/views.api.php/7
aaronbauman

অ এক্সপোজড ফিল্টার সম্পর্কে কী? আমার খুব বিরল ব্যবহারের কেস রয়েছে এবং কাস্টম কোড অনুসারে আমার ফিল্টার মান সেট করতে হবে।
কোডিয়াম


1

ড্রুপাল 7.54 এর সাথে যখন আপনি প্রোগ্রামের মাধ্যমে এক্সপোজড ফিল্টারটি প্রক্রিয়া করতে চান, যখন আপনি একাধিক মূল্যবান ক্ষেত্র রাখেন তখন আপনি এটি করেন। এক্সপোজড ফিল্টার কীভাবে পাস করবেন তা দেখার সমাধানটি ইউআরএল কীভাবে তৈরি করা যায় তা অনুসরণ করা।

এখানে: ভিউ_নাম? ওরফে [1] = 1

$view = views_get_view('view_name');
$view->init_display('display_id');

$filters = array('alias' => array('1'));
$view->set_exposed_input($filters);

$view->execute();

আপনি যেখানেই চান এখান থেকে এটি কার্যকর করতে পারেন। সাধারণত মডিউল ফাইল থেকে।

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