ক্ষেত্রগুলি দেখতে শৈলীর বৈশিষ্ট্য যুক্ত করুন


12

আমি আমার দৃষ্টিতে প্রতিটি শিরোনাম ক্ষেত্রে একটি শৈলীর বৈশিষ্ট্য যুক্ত করতে চাই। আমি একটি রঙের জন্য একটি ক্ষেত্র তৈরি করেছি। আমি ফলাফলটি আবার এভাবে লেখার চেষ্টা করেছি:

<h2 style="color: [field_color];">[title_1]</h2>

তবে শৈলীর বৈশিষ্ট্যটি সরানো হবে। আমি ড্রুপাল 7 ব্যবহার করছি।

কোন সাহায্য প্রশংসা।


কেন এটি অপসারণ করা হয়? আপনি কি এর পরিবর্তে কোনও বিশ্বব্যাপী পাঠ্য ক্ষেত্রটি ব্যবহার করার চেষ্টা করেছেন?
অ্যালেক্স গিল

আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ! বিশ্বব্যাপী পাঠ্য ক্ষেত্রটি বলতে কী বোঝ? আমার দৃষ্টিতে সেটিংস: ফর্ম্যাট: ফর্ম্যাট নয় তালিকা প্রদর্শন করুন: ক্ষেত্রগুলি
Ksn

আপনার কাছে একটি 'গ্লোবাল পাঠ্য' ক্ষেত্র যুক্ত করার বিকল্প রয়েছে। এই ক্ষেত্রটি অবশ্যই আপনার ইতিমধ্যে যুক্ত করা অন্য যে কোনও ক্ষেত্রের অনুসরণ করতে হবে। তারপরে আপনি এই কাস্টম ক্ষেত্রে টোকেনগুলি ব্যবহার করতে পারেন যা উপরে আপনি যা করেছেন তার অনুরূপ তৈরি করতে। তারপরে আপনি কাস্টম ক্ষেত্রে প্রদর্শিত ক্ষেত্রগুলি লুকিয়ে রাখতে পারেন।
অ্যালেক্স গিল

1
আপনার সেরা বিকল্পটি হ'ল সম্ভবত এই ক্ষেত্রটির জন্য একটি কাস্টম টেম্পলেট ফাইল তৈরি করা বা নীচে উল্লিখিত টোকেনের উপর ভিত্তি করে একটি ক্লাস ব্যবহার করা।
অ্যালেক্স গিল

1
আপনি যদি ডানদিকে 'অ্যাডভান্সড' এর নীচে সন্ধান করেন তবে থিম তথ্যগুলির জন্য একটি বিকল্প রয়েছে, এখানে এটি আপনাকে টেমপ্লেটগুলির জন্য কিছু পরামর্শ দেবে।
অ্যালেক্স গিল

উত্তর:


4

আপনি পর্দার নীচে প্রদর্শিত হিসাবে স্টাইল সেটিংস ব্যবহার করে শিরোনাম ক্ষেত্রে একটি শ্রেণি সেট করতে পারেন। শিরোনাম ক্ষেত্রে শ্রেণি সেট করতে আপনি স্টাইল সেটিংসে টোকেন প্রতিস্থাপন করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন

ছোট জাভাস্ক্রিপ্ট বা jquery ব্যবহার করে শিরোনাম ক্ষেত্রের শ্রেণি পড়ুন এবং CSS বৈশিষ্ট্য ব্যবহার করে বর্ণটিকে শ্রেণীর নামের মতো সেট করুন ।


2
হতে পারে আপনার সমাধানটি কাজ করে তবে জাভাস্ক্রিপ্ট ছাড়াই আমি কী সমাধান করব। সম্ভব কি?
Ksn

2
সুরক্ষা সম্পর্কিত সমস্যার কারণে আপনি সরাসরি শৈলীর সম্পত্তিতে ক্ষেত্রের মানটি ইনজেক্ট করতে পারবেন না .. সমস্যাটি এখানে দেখুন drupal.org/node/853880
অনিল সাগর

তারপর আপনি, প্রতিটি রঙ জন্য পৃথক CSS বর্গ লিখতে প্রয়োজন যাইহোক, এই সবচেয়ে খারাপ ক্ষেত্রে কারণ আপনি 16 মিলিয়ন বর্গ লিখতে প্রয়োজন হয়, :( জাভাস্ক্রিপ্ট বা jQuery ভাল
Mathankumar

2
অনিল, আমি আপনার সমাধানটি চেষ্টা করেছি কিন্তু দ্রুপাল # টি রঙ থেকে সরিয়েছে, তাই আমি jQuery এর সাথে আরও একটি সমাধান পেয়েছি। আমি ক্ষেত্রটিতে অ্যাট্রিবিউট ডেটা যুক্ত করেছি: <h2 ডেটা-রঙ = "[ক্ষেত্র_রঙ]"> [শিরোনাম_1] </h2> আমি টেমপ্লেটগুলি সহ অন্যান্য সমাধানগুলি তদন্ত করেছি, তবে এটি সমাধান করার সঠিক উপায় আমি খুঁজে পাইনি।
Ksn

1

আপনি এই ক্ষেত্রের জন্য একটি টিপিএল তৈরি করতে পারেন (উদাহরণস্বরূপ: ভিউ-ভিউ-ফিল্ড-এমওয়াই-ভিউ-NAME-পৃষ্ঠা.tpl.php), এই টিপিতে আপনি এই লেখার সাথে টোকন যুক্ত করতে পারেন:

<h2 style="color: <?php print $field->last_tokens['[field_color]'] ?>;"><?php print $field->last_tokens['[title_1]'] ?></h2>

1

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

  1. আগের পোস্টের চিত্রের মতোই সিএসএস ক্লাস টোকেন হিসাবে রঙের মান যুক্ত করুন।
  2. লেখা hook_preprocess_views_view_field () ভালো ফাংশন:

     function hook_preprocess_views_view_fields(&$vars) {
      $view = $vars['view'];
    
      // Loop through the fields for this view.
      $previous_inline = FALSE;
      $vars['fields'] = array(); // ensure it's at least an empty array.
      foreach ($view->field as $id => $field) {
    
        // render this even if set to exclude so it can be used elsewhere.
        $field_output = $view->style_plugin->get_field($view->row_index, $id);
        $empty = $field->is_value_empty($field_output, $field->options['empty_zero']);
        if (empty($field->options['exclude']) && (!$empty || (empty($field->options['hide_empty']) && empty($vars['options']['hide_empty'])))) {
          $object = new stdClass();
          $object->handler = & $view->field[$id];
          $object->inline = !empty($vars['options']['inline'][$id]);
    
          $object->element_type = $object->handler->element_type(TRUE, !$vars['options']['default_field_elements'], $object->inline);
          if ($object->element_type) {
            $class = '';
            if ($object->handler->options['element_default_classes']) {
              $class = 'field-content';
            }
    
            if ($classes = $object->handler->element_classes($view->row_index)) {
              if ($class) {
                $class .= ' ';
              }
              $class .= $classes;
            }
    
            $class_array = explode(' ', $class);
            foreach ($class_array as $cid => $candidate) {
              // Find the color hex code.
              if (preg_match('/([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?\b/', $candidate)) {
                $style = 'color:#' . $candidate . ';';
                unset($class_array[$cid]);
              }
            }
    
            $pre = '<' . $object->element_type;
            if ($class) {
              $pre .= ' class="' . implode(' ', $class_array) . '"';
            }
            if ($style) {
              $pre .= ' style="' . $style . '"';
            }
            $field_output = $pre . '>' . $field_output . '</' . $object->element_type . '>';
          }
    
          // Protect ourself somewhat for backward compatibility. This will prevent
          // old templates from producing invalid HTML when no element type is selected.
          if (empty($object->element_type)) {
            $object->element_type = 'span';
          }
    
          $object->content = $field_output;
          if (isset($view->field[$id]->field_alias) && isset($vars['row']->{$view->field[$id]->field_alias})) {
            $object->raw = $vars['row']->{$view->field[$id]->field_alias};
          }
          else {
            $object->raw = NULL; // make sure it exists to reduce NOTICE
          }
    
          if (!empty($vars['options']['separator']) && $previous_inline && $object->inline && $object->content) {
            $object->separator = filter_xss_admin($vars['options']['separator']);
          }
    
          $object->class = drupal_clean_css_identifier($id);
    
          $previous_inline = $object->inline;
          $object->inline_html = $object->handler->element_wrapper_type(TRUE, TRUE);
          if ($object->inline_html === '' && $vars['options']['default_field_elements']) {
            $object->inline_html = $object->inline ? 'span' : 'div';
          }
    
          // Set up the wrapper HTML.
          $object->wrapper_prefix = '';
          $object->wrapper_suffix = '';
    
          if ($object->inline_html) {
            $class = '';
            if ($object->handler->options['element_default_classes']) {
              $class = "views-field views-field-" . $object->class;
            }
    
            if ($classes = $object->handler->element_wrapper_classes($view->row_index)) {
              if ($class) {
                $class .= ' ';
              }
              $class .= $classes;
            }
    
            $object->wrapper_prefix = '<' . $object->inline_html;
            if ($class) {
              $object->wrapper_prefix .= ' class="' . $class . '"';
            }
            $object->wrapper_prefix .= '>';
            $object->wrapper_suffix = '</' . $object->inline_html . '>';
          }
    
          // Set up the label for the value and the HTML to make it easier
          // on the template.
          $object->label = check_plain($view->field[$id]->label());
          $object->label_html = '';
          if ($object->label) {
            $object->label_html .= $object->label;
            if ($object->handler->options['element_label_colon']) {
              $object->label_html .= ': ';
            }
    
            $object->element_label_type = $object->handler->element_label_type(TRUE, !$vars['options']['default_field_elements']);
            if ($object->element_label_type) {
              $class = '';
              if ($object->handler->options['element_default_classes']) {
                $class = 'views-label views-label-' . $object->class;
              }
    
              $element_label_class = $object->handler->element_label_classes($view->row_index);
              if ($element_label_class) {
                if ($class) {
                  $class .= ' ';
                }
    
                $class .= $element_label_class;
              }
    
              $pre = '<' . $object->element_label_type;
              if ($class) {
                $pre .= ' class="' . $class . '"';
              }
              $pre .= '>';
    
              $object->label_html = $pre . $object->label_html . '</' . $object->element_label_type . '>';
            }
          }
    
          $vars['fields'][$id] = $object;
        }
      }
    
    }

আপনি দেখতে পাচ্ছেন, আমি এই লাইনগুলি যুক্ত করেছি:

$style = '';
$class_array = explode(' ', $class);
foreach ($class_array as $cid => $candidate) {
  // Find the color hex code.
  if (preg_match('/([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?\b/', $candidate)) {
    $style = 'color:#' . $candidate . ';';
    unset($class_array[$cid]);
  }
}

এবং এর নীচে লাইনটি পরিবর্তন করুন:

$pre = '<' . $object->element_type;
if ($class) {
  $pre .= ' class="' . implode(' ', $class_array) . '"';
}
if ($style) {
  $pre .= ' style="' . $style . '"';
}

0

ফিল্ড আইনে একটি নাম যুক্ত করে পরামর্শ দিন তারপরে আপনার থিম ফোল্ডারে শৈলীতে CSS খুলুন এবং পছন্দসই CSS ফলাফল অনুসরণ করে ".my-css-name" টাইপ করুন:

.my-css-name {রঙ: লাল; পটভূমি: সবুজ; }


0

আমি ঠিক তেমন কিছু তৈরি করছি এবং আমি এখানে যা করেছি তা এখানে:

1- রঙ এবং শিরোনাম ক্ষেত্রগুলি দিয়ে একটি ভিউ তৈরি করুন।

2- সেই দৃশ্যের জন্য একটি কাস্টম "ভিউ-ভিউ-ফিল্ডস.টিপিএল" তৈরি করুন। (শুধুমাত্র রঙের ক্ষেত্রের জন্য একটি কাস্টম টেম্পলেট আমাকে ত্রুটি দেখিয়েছে)

3- field->contentলাইনে আপনার প্রয়োজন অনুসারে যুক্ত / প্রতিস্থাপন করুন ....<h2 style="color: #<?php print $field->content; ?>">

/ / / / এখন থেকে, আমি এটি পরীক্ষা করিনি, তবে এটি ঠিক / / / / ভাল কাজ করা উচিত

4- শিরোনাম ক্ষেত্রটি বাদ দিন এবং এটি শিরোনাম / গোষ্ঠীতে দেখান

5- এই দর্শনটির জন্য একটি কাস্টম "ভিউ-ভিউ-অপরিশোধিত.tpl" তৈরি করুন।

This- এই দৃশ্যে আমরা <?php print $title; ?></h2>পরে যুক্ত করব <?php print $row; ?>। (আমরা শিরোনামটি যুক্ত করি এবং প্রথম টেমপ্লেটে খোলা এইচ ট্যাগটি বন্ধ করি)


সর্বশেষ সম্পাদনা:

আপনার প্রয়োজনীয় সমস্ত জিনিস মুদ্রণের জন্য আপনি ভিউ পিএইচপি ব্যবহার করতে পারেন এবং শৈলী ফিল্টার করা হবে না।


0

আমার এই একই সমস্যা ছিল এবং নামটি টেমপ্লেট তৈরি করে এটি সমাধান করে

views-view-field--field_name_here.tpl.php

আমার ক্ষেত্রে, আমার প্রয়োজনীয় HTML তৈরি করতে যে কোডটি ব্যবহার করতাম তা হ'ল:

<?php

$bg_color = $variables["row"]->field_field_button_background_color[0]["raw"]["rgb"];
$link_title = $variables["row"]->field_field_slideshow_item_cta_link[0]["raw"]["title"];
$link_url = $variables["row"]->field_field_slideshow_item_cta_link[0]["raw"]["url"];

echo '<a style="background-color:'.$bg_color.'" href="'.$link_url.'">'.$link_title.'</a>';

ডিভেল মডিউল সক্ষম এবং ব্যবহার করছে

dpm($row);

টেমপ্লেট ফাইলটি খুব সহায়ক ছিল। এটি ছাড়া এটি খুঁজে পেতে পারে না।


0

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

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