Aconsejaría contra el uso de hook_nodeapi
para eso. Agregar CSS y Javascript está relacionado con el diseño, así que hook_nodeapi
no es el lugar adecuado: use themeing. De esta manera, puede anular esos archivos cuando va a desarrollar un nuevo tema. Hacer eso con el enfoque nodeapi sería un poco más difícil (tendrías que buscar en la lista js/css los archivos, eliminarlos y reemplazarlos por los tuyos).
De todos modos: lo que necesita hacer es agregar una función de preproceso de nodo que agregue esos archivos por usted. Puede hacer esto en un módulo o en un tema personalizado. Para un módulo de esto sería:
function mymodule_preprocess_node(&$variables) {
$node = $variables['node'];
if (!empty($node) && $node->nid == $the_specific_node_id) {
drupal_add_js(drupal_get_path('module', 'mymodule') . "/file.js", "module");
drupal_add_css(drupal_get_path('module', 'mymodule') . "/file.css", "module");
}
}
o para un tema:
function mytheme_preprocess_node(&$variables) {
$node = $variables['node'];
if (!empty($node) && $node->nid == $the_specific_node_id) {
drupal_add_js(path_to_theme() . "/file.js", "theme");
drupal_add_css(path_to_theme(). "/file.css", "theme");
}
}
No se olvide de limpiar la caché, en primer lugar.
Estas funciones se invocan antes de que el nodo tenga un tema. Especificar el js/css allí permite un enfoque en cascada: puede tener los elementos genéricos/básicos en el módulo y proporcionar funcionalidad mejorada o específica en el tema.
He usado esta misma técnica una y otra vez en Drupal 5. Por ejemplo, el "Calendario del Club" en la página principal de este sitio se implementó de esta manera. http://www.chesmontastro.org/ –
Esta podría ser la solución más fácil, pero se vuelve rápidamente inmanejable, ya que es muy difícil depurar el código PHP en la base de datos, y el control de revisiones es casi imposible. La solución de Inferis anterior es un enfoque mucho más limpio. – jhedstrom