如何不在Drupal 8中缓存段落?

时间:2019-04-24 14:39:58

标签: drupal-8

我们正尝试将LMS系统中的视频嵌入到我们的网站中,该视频对于经过身份验证的用户来说效果很好,因为未缓存api令牌(然后将其传递到段落小枝文件),但对于匿名用户,它在尝试5-6次,因为令牌不能多次重用。从我们的代码库开始,它每次生成一次,但是当该令牌变量传递到树枝文件时,它不会替换该令牌,而是使用段落的缓存版本。我们如何不能在drupal中缓存特定的段落?

我们已经在$variables['#cache']['max-age'] = 0;函数中添加了hook_preprocess_paragraph,但这并不是很清楚。

   * Implements hook_preprocess_paragraph().
   */
  function custom_module_preprocess_paragraph(&$variables) {
    if (!empty($variables['elements']['#paragraph'])) {
      /** @var \Drupal\paragraphs\Entity\Paragraph $paragraph */
      $paragraph = $variables['elements']['#paragraph'];
      $id = $paragraph->get('type')->getValue();
      if ($id[0]['target_id'] === 'block_video_id') {
        $vid = $paragraph->get('field_video')->value;
// This token is passed to the twig file inside the iframe.
        $variables['LoadUrl'] = get_token($vid);
// I don't this is clearing the cache at all.
$variables['#cache']['max-age'] = 0;
      }
    }
  }

树枝文件

    <div class="section-wrapper">
        <div class="content-wrapper">
            <div class="training-video-description">
                {% if(LoadUrl is not empty ) %}
                <iframe src="{{ LoadUrl }}" align="center"  frameborder="0"></iframe>
                {% endif %}
            </div>            
        </div>
    </div>
</section>

如何

0 个答案:

没有答案