Apakah ada cara universal dan pasti untuk melakukan ini? Misalnya menggunakan beberapa variabel lingkungan yang disertakan Drupal.behaviours
?
Saya telah melakukan riset dan sepertinya tidak ada jawaban umum.
7
nodes
javascript
therobyouknow
sumber
sumber
drupal_add_js()
; nid tidak pernah digunakan pada sisi klien oleh inti sehingga tidak perlu ditambahkan sebagai pengaturan biasanyaJawaban:
Seperti disebutkan di atas, inti Drupal tidak menggunakan ID node di sisi klien sehingga tidak melewatinya. jika Anda ingin akses ke sana, Anda harus menambahkannya secara manual:
Kemudian di sisi klien Anda akan memiliki akses ke sana melalui
Drupal.settings
:sumber
class
atribut dari tema bootstrap. Pada akhirnya kami bertujuan menuju solusi independen tema.$setting = array('MYMODULE' => array('currentNid' => $node->nid));
yang=
adalah asing. Itu berhasil - menyematkan kode Anda ke fungsi ini yang sudah adapop_links
dan menambahkan javascript Anda dipop_links.js
.Seperti yang disebutkan oleh MPD dalam jawabannya, bekerja dengan css-class default yang dihasilkan Drupal untuk elemen adalah solusi mudah yang berfungsi tanpa kode PHP khusus.
Inilah implementasi kami:
sumber
var $body = $('body.path-node');
(diuji dengan zurb_foundation untuk 8.x-6.x)Default
template_preprocess_html()
memiliki sedikit kode ini diIni akan menempel pada kelas ke
<body>
garis elemenpage-node-123
. Jika Anda tidak ingin menggunakan kode Anda sendiri dalam modul khusus, Anda bisa mendapatkan kelas melalui jQuery , menemukan yang cocokpage-node-
, dan kemudian menguraikan nid.sumber
Apa yang berhasil bagi saya adalah menambahkan baris berikut ke
page.tpl.php
templat saya . Ini menambahkan ID simpulwindow.Drupal.settings.nid
yang dapat Anda gunakan sesuka hati dalam JavaScript.Seperti yang disarankan dalam komentar, inilah kode untuk menambahkan ID simpul dari
template.php
:sumber
template_preprocess_page
sebagai gantinya (jika Anda membutuhkannya di tingkat halaman). Untuk tidak mencampuradukkan dan menjaga template tetap bersih dan mudah dibaca. Templat harus digunakan untuk markup.settings
dansetting
?