Pregunta

Para añadir JavaScript, puede utilizar:

drupal_add_js

Y similar para CSS:

drupal_add_css

Pero lo que si sólo quiero añadir html al final de mi página. Es decir. Añadir un div con un texto en el que al final de la página?

¿Fue útil?

Solución

Una gran cantidad de sugerencias que aquí funciona si usted quiere que su alteración sea basada en el tema, pero si quieres que esto proviene de un módulo, utilizando una región de bloque, plantilla de página o una página prepocess no se corte, porque estás atado la modificación con el tema.

Desde un punto de vista modular, las siguientes opciones son las mejores:

hook_footer () - http: // api. drupal.org/api/function/hook_footer/6 :: my_module_footer () debería devolver una cadena de HTML, que puede ser incluso javascript. P.ej.

function my_module_footer(){

    return "<script type='text/javascript'>//your script</script>"

}

Puede utilizar Drupal $ _GET [ 'q'] para obtener el URL de la página y tienen que el retorno sea condicional para el URL de la página.

De lo contrario, a veces uso $ GLOBALS [ "_ add_my_footer"] como un valor booleano, y la pusieron en varios puntos en el módulo, a continuación, en hook_footer (), ver si es cierto.


drupal_add_js - api.drupal.org/api/drupal/includes--common.inc/function/drupal_add_js/6 :: Usted puede usar esto para añadir javascript para el pie de página mediante el establecimiento de la $ parámetro alcance a "pie" - por ejemplo,

function my_module_init(){

    $script = "your script "; // notice no <script> tags
    drupal_add_js($script, 'inline', 'footer');
    // you can also use this function to grab a .js file

}

Tenga en cuenta que puse que drupal_add_js en hook_init () -. Lo hice porque si no lo hace, el script podría perderse al utilizar la función de almacenamiento en caché agresivo de Drupal

Por desgracia, no hay ningún parámetro $ posibilidades de drupal_add_css

Otros consejos

Como hook_footer no sobrevivió a Drupal 6, aquí está la función equivalente y la forma de ponerla en práctica en Drupal 7:

/**
* Implements hook_page_alter().
*/
function example_page_alter(&$page) {
  if (variable_get('dev_query', 0)) {
    $page['page_bottom']['devel']= array(
      '#type' => 'markup',
      '#markup' => '<div style="clear:both;">' . devel_query_table() . '</div>',
    );
  }
}

( http://preprocess.me/drupal-hookfooter-in-drupal- 7 )

Puede añadir lo siguiente al archivo template.php de su tema:

  
function phptemplate_preprocess_page(&$vars) {
  $vars['closure'] .= 'Add markup here';
}
  

Drupal tiene un gancho que puede implementar y añadir en cualquier código que desea el pie de página de la página - hook_footer. Ver http://api.drupal.org/api/function/hook_footer/6

Se puede escribir un bloque de hacerlo y poner el bloque en el cierre.

... o, probablemente no es tan recomendable como las otras respuestas, pero más directa, se puede añadir el html directamente al archivo page.tpl.php.

Se han hecho ya BEED algunas buenas sugerencias:

  • Uso de un bloque
  • Edición de plantillas
  • Uso de la función de preproceso.

Lo más fácil sería añadir un bloque que se crea, donde usted puede poner su margen de beneficio personalizado. Incluso se puede crear una plantilla especial para él, por lo que no obtener su margen de beneficio bloque Drupal habitual, pero sólo lo que se escribe en el contenido del bloque.

Esto debería cubrir sus necesidades:

  • Usted tiene el control del 100% sobre el lugar donde se genera el marcado (Se puede definir la región en su ellos)
  • Usted tiene el control del 100% con respecto a lo que se genera marcado

Ahora bien, si usted no desea utilizar los bloques, ya que no desea que los administradores del sitio para saber sobre el bloque, el segundo mejor sería:

  1. Añadir una casilla para la configuración de tema.
  2. En la página de preproceso gancho, establecer una variable booleana si la casilla está marcada o no.
  3. En la plantilla de página, compruebe la variable, si es verdad que escribe su margen de beneficio donde lo desee.

Esto básicamente lo mismo que el anterior, sólo usted tiene la configuración de su tema, en lugar de añadir un bloque. Se requerirá más trabajo.

Puede hacer más o menos lo mismo en un módulo personalizado, pero no lo puedo hacer mucho sentido hacer esto en un módulo, ya que es puramente presentación y que dependen de su tema de todos modos.

aquí es un pequeño truco que funciona en Drupal 6 y 7

    $script = '//--><!]]></script><strong>this is bold html code</strong><script type="text/javascript"><!--//--><![CDATA[//><!--';
    drupal_add_js($script, 'inline', 'footer');

ya que es evidente que no desea modificar los archivos de plantilla o utilizar cualquiera de los otros métodos sugeridos anteriormente, esto debería funcionar para agregar a la página html al igual que lo hace para css js y

No me' recomendar el uso de bloques, ya que su excesiva para limitarse a añadir algunos elementos en el pie de página. Este es el gancho que puede utilizar para agregar el contenido antes de la etiqueta </body> para Drupal 7.

function hook_page_build(&$page) {
  $page['page_bottom']['YOUR_MODULE'] = array(
    '#markup' => '<div> I want to get inserted at the bootom of the page </div>',
  );
} 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top