it-swarm-eu.dev

Jak mohu přidat blok JavaScript pouze na domovskou stránku?

Mám blok JavaScriptu, který musím přidat na svou domovskou stránku (a pouze na svou domovskou stránku), abych umožnil protokolování kliknutí prostřednictvím služby mapování tepla, k níž jsem se přihlásil.

Určili kód, který je třeba umístit těsně před značku </body>, Ale domnívám se, že je bezpečné umístit jej kdekoli v rámci značky <body>.

Chtěl bych, aby se úryvek neobjevil na žádné jiné stránce. Jak to mohu dosáhnout?

Běží jsem Drupal 6).

8
PHLAK

Pokud domovskou stránkou máte na mysli přední stránku, můžete implementovat hook_preprocess_page() do vlastního modulu.

function mymodule_preprocess_page(&$variables) {
  if ($variables['is_front']) {
    drupal_add_js(drupal_get_path('module', 'mymodule') . '/mymodule.js');
    $variables['scripts'] = drupal_get_js();
  }
}

Stejný kód funguje na Drupal 7, protože $variables['is_front'] Je nastaveno v _ template_preprocess_default_variables () (vyvoláno z template_preprocess () ) pomocí následujícího kódu.

  // drupal_is_front_page() might throw an exception.
  try {
    $variables['is_front'] = drupal_is_front_page();
  }
  catch (Exception $e) {
    // If the database is not yet available, set default values for these
    // variables.
    $variables['is_front'] = FALSE;
    $variables['db_is_active'] = FALSE;
  }

Důvodem prvního volání funkce drupal_add_js() a poté funkce drupal_get_js() je to, že v případě, že by další modul, který bude spuštěn poté, co spustil následující kód, byl přidán soubor JavaScript.

function quite_a_different_module_preprocess_page(&$vars) {
  drupal_add_js(drupal_get_path('module', 'quite_a_different_mymodule') . '/quite_a_different_module.js');
  $vars['scripts'] = drupal_get_js();
}

Pomocí drupal_add_js() bude soubor přidán k výstupu vrácenému z drupal_get_js () .

15
kiamlaluno

Pokud se kód může dostat v hlavě, přidejte do vaší template.php následující funkci.

function MYTHEME_preprocess_page (&$vars) {
  if ($vars['is_front']) {
    $vars['scripts'] .= "// my JS for the home page";
  }
}

Následující kód můžete také přidat na příslušné místo stránky page.tpl.php.

<?php if ($is_front): ?>
  // JS goes here
<?php endif; ?>

Existují i ​​jiné způsoby, jak toho dosáhnout, ale to je pravděpodobně nejjednodušší.

6
mpdonadio