0

I am not sure how to accomplish this...

I want to have a custom block that I have created and referenced via paragraphs to implement code in that block and push it into the header of the page. The idea is that we want to have single pages that run specific JS files and this is the way for the content author to place these files on the pages that they want. If there is a better way to do it, I am open to suggestions.

Here is where I am now:

I have a custom block that I am referencing via paragraphs in pages that will house the JS files. I believe I need a preprocessor script for this, but I am having a lot of issues with figuring out what kind of preprocessor I need.

Here is what I have but I think it is totally wrong and definitely incomplete:

if ( isset($vars['content']['#block_content']) ) { // check for custom content
    if ($vars['content']['#block_content']->type[0]->getValue()['target_id'] == 'js_file_block') { // only run on js_file_block types

      $vars['foobar'] = $js_files_page; // export var to twig
    }
  }

I need to be able to make more than one file load if added to the block, and I need it to attach to the header of the page that the block is referenced from. Can anyone point me in the right direction?

I am sure I need to add a $routematch and other things but I am not sure.

  • "I have a custom block that I am referencing via paragraphs in pages that will house the JS files." Could you please rephrase this? Bare in mind, we are not aware of the problem, so please spend some time to help us understand. – ssibal Jun 11 '18 at 14:16
0

In Drupal 8 drupal_add_js() as well as drupal_add_library() and drupal_add_css() were removed in favor of #attached. Means you now can use the #attached key in any render array or preprocess or build function to attach your library only where you need it. Please read the following articles on DO:

[Docs] Adding stylesheets (CSS) and JavaScript (JS) to a Drupal 8 theme

[Docs] Adding stylesheets (CSS) and JavaScript (JS) to a Drupal 8 module

[Forum] Adding js to the block through module Drupal 8

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.