Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Drupal »

Tips, faqs, piezas de codigo, para desarrolladores

Estas en el tema de Tips, faqs, piezas de codigo, para desarrolladores en el foro de Drupal en Foros del Web. Un listado de recursos o piezas de codigo muchas veces imprescindibles, o poco conocidos que ustedes tengan y que piensen que seria intersante compartirlo. El ...
  #1 (permalink)  
Antiguo 22/05/2011, 15:15
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Exclamación Tips, faqs, piezas de codigo, para desarrolladores

Un listado de recursos o piezas de codigo muchas veces imprescindibles, o poco conocidos que ustedes tengan y que piensen que seria intersante compartirlo.

El formato que vamos a utilizar seria como un FAQ. 1 pregunta una respuesta.

P: Como hacer que las url internamente sean absolutas para ayudar al seo de tu web.
R: Como se habran dado cuenta cuando usamos el modulo pathauto las url internas se crean partiendo de la raiz, asi si por ejemplo creamos un menu como ejemplo un node:

node/30 y este tiene como titulo "Lo que sea" nos va a crear la url del menu <a href="/lo-que-sea">Lo que sea</a> bien ahora si queremos que la url sea absoluta y a su vez dinamica solo tenemos que poner esto en nuetro settings.php (D6)

Código PHP:
Ver original
  1. function custom_url_rewrite_outbound(&$path, &$options, $original_path) {
  2.    
  3.     $options['absolute'] = true;
  4. }

Obviamente tenemos tambien que haber seteado nuestra url

Código PHP:
Ver original
  1. # $base_url = 'http://www.example.com';  // NO trailing slash!
  2. $base_url = 'http://miweb.com';

A partir de ahora cualquier link que creemos(siempre y cuando este gestionado por Drupal) tendra la ruta absoluta < a href="http://miweb.com/lo-que-sea">Lo que sea</a>
__________________
Drupal Argentina
  #2 (permalink)  
Antiguo 22/05/2011, 15:42
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Tips, faqs, piezas de codigo, para desarrolladores

P: Por que sitio en drupal es demasiado lento! :(
R: Pueden suceder varias causas. Recuerden que drupal es un CMS ALL IN ONE, por lo tanto no estamos exentos de una sobrecarga en consultas, request o loads como quieran llamarlo. La inclusión de demasiados modulos - Es una debilidad sobre todo a los noobs instalar modulos hasta para mostrar la hora, la herencia de sub-themes(recuerden que los themes pueden ser heredados a partir de un padre y tener muchos hijitos). No desabilitar módulos de desarrollo (devel, view UI, etc).

Que puede ayudar? Si no queda otro remedio que instalar excesivos modulos por que tu condición de programador no te permite crear uno en general para hacer las tareas mas simples.


a: Contrata un servidor mas potente

b. Desinstala los modulos de desarrollador y los que no vayas a utilizar(jamas del core) podes deshabilitar colors, comments, book, statistics, database logs, comment... etc. si no sabes cual deshabilitar intentalo sin miedo que no se rompe.

c. Ejecuta cron.php de vez en cuando - (ojo con esto, si tienes una web muy sobrecargada y tu servidor no aguanta lo puedes hacer caer)

d. Optimiza tu sitio usando el sistema de cache de Drupal(el propio sistema es bastante bueno) si buscas como poder optimizar tu web por el excesivo uso de request de tus módulos es de locos instalarle uno mas para optimizar el cache (Esto podría generar discusiones así que solo digo que yo no uso ningun modulo extra de manejo de cache).

P: Instale un modulo pero ocurrió un error al instalarlo, ahora me aparece solo una pantalla en blanco... :(
R: Trata de instalar modulo que no esten en desarrollo o en beta, si no queda mas remedio y lo hiciste y te paso eso. La solución es bastante simple.

a: Ingresa a tu bd con algún administrado (PHPmyadmin, adminer, etc) y VACIA las tablas de cache(todas las que tengan el prefijo cache_*, sin miedo que no pasa nada), si aun asi no pasa nada, busca el id del modulo(name) en la tabla system y deshabilitalo (status = 0)
Listo con eso deberías haberlo arreglado, y si aun no funciona, una vez deshabilitado el modulo de tu tabla, elimina la carpeta del modulo o cambiala de lugar. Y si aun asi no funciona, no es el modulo lo que esta jod..ndo, haz memoria y arreglalo.
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 14/11/2011, 12:35
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Tips, faqs, piezas de codigo, para desarrolladores

Como usar la ultima version de Jquery en Drupal sin que interfiera en los modulos contribuidos que usan la version del core.

Si sos un theme developer sabras que Drupal usa una version de Jquery para hacer funcional los modulos del core (Table drag, Ajax, upload).

1.2 Para la version 6.x
1.4.4 para la version 7.x

Recientemente en un proyecto tenia que integrar Twitter Bootstrap y Jquery mobile

El cual requiere la version mas reciente de Jquery > 1.6.4 haciendo totalmente imcompatible el funcionamiento de los componentes del core Drupal mencionados.

Aunque existe el modulo Jquery update, que no solo actualiza la version de Jquery si no tambien reemplaza los scripts del core para que funcionen de manera adecuada, pero esta solo hasta una version 1.3x para la version 6 de Drupal y la 1.5x para la version 7 y no es suficiente....

La solucion fue bastante simple, el uso de noConflict

Solo cargamos nuestra nueva version de Jquery(hay varias maneras de hacerlo) desde nuestro *.info, o llamandolo con la function drupal_add_js()

Al empezar nuestro script con la version nueva de Jquery

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. var $jq = jQuery.noConflict();
  3.  
  4. /* Listo, ahora podemos usar la funcionalidad de nuestra segunda version de Jquery.
  5. Por ejemplo aca hago uso de la function [URL="http://twitter.github.com/bootstrap/javascript.html"]modal de Twitter bootstrap[/URL]
  6. */
  7.  
  8. $jq('#login-user-link').click(function(){
  9.  
  10.   $jq("#modal-from-login").modal({
  11.         backdrop : true,
  12.         show : true
  13.     });
  14. });
  15.  
  16. </script>
Como inconveniente no olviden de que tenemos que cargar dos librerias Jquery a la vez(supone mas de 100k la primera vez) pero creo que vale la pena con las cosas maravillosas que se pueden lograr con Drupal Twitter bootstrap y Jquery.
__________________
Drupal Argentina
  #4 (permalink)  
Antiguo 19/12/2011, 17:01
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Como actualizar la version de jquery en tu Template Drupal 7

Con este snippet vamos a quitar algunos scripts y reemplazar por cualquier versión de Jquery, es para Drupal 7. Esto va en template.php


Código PHP:
Ver original
  1. function THEME_js_alter(&$scripts){
  2.     unset($scripts['misc/jquery.js']);
  3.     unset($scripts['misc/jquery.once.js']);
  4.     unset($scripts['misc/drupal.js']);
  5.     drupal_add_js('https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js', 'external' );
  6. }

Si lo queremos hacer con css

Código PHP:
Ver original
  1. function THEME_css_alter(&$css){
  2.    unset($css['modules/system/system.menus.css']);
  3.    .....
  4. }

Saludos.
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 22/05/2012, 19:52
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Tips, faqs, piezas de codigo, para desarrolladores

Mi pastebin ;) Algunos snippets útiles.
__________________
Drupal Argentina
  #6 (permalink)  
Antiguo 08/10/2013, 13:52
 
Fecha de Ingreso: octubre-2013
Mensajes: 2
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Tips, faqs, piezas de codigo, para desarrolladores

Hola necesito ayuda con algo .... Alguien me pudiera facilitar una lista de algunas aplicaciones desarrolladas con Drupal7 que utilicen el modulo Rules ?????

Etiquetas: code, tips
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 14:33.