Table of Contents
Drupal 7
Contenedor, en una sola pagina, para todos los articulos que tienen que ver con drupal 7 (algunos articulos seguramente se refieren a drupal 6)
Idioma
Nos descargamos el idioma que queremos:
https://localize.drupal.org/translate/languages/
Lo ponemos en:
drupal-7.31/profiles/standard/translations
Por ejemplo castellano y catalán:
http://ftp.drupal.org/files/translations/7.x/drupal/drupal-7.29.es.po http://ftp.drupal.org/files/translations/7.x/drupal/drupal-7.29.ca.po
Calendar
http://drupaltherapy.com/date_d7
Estructura/tipos de contenido Añadir Nombre: Evento Grabar Configurar Campos: fecha / field_fecha / Date / Select list guardar
Vista
Habilitar views y views_ui Estructura / Views Añadir campo: contenido:fecha Añadir Filtro: Contenido:tipo=
Drush
Descargar sitio
* Una version determinada
sudo drush dl drupal-6 --destination=/var/www
Descargar modulos
Asumimos que la instalacion esta de drupal esta en '/var/www/drupal'
Si queremos elegir entre una lista de versiones, util cuando trabajamos (Feb/2013) todavia con Drupal 6:
cd /var/www/drupal; sudo drush dl storm --select
Y elegimos la que nos guste:
Choose one of the available releases: [0] : Cancel [1] : 6.x-2.x-dev - 2013-Feb-10 - Development [2] : 6.x-2.1 - 2012-Oct-15 - Supported, Recommended, Installed [3] : 6.x-1.x-dev - 2012-Jan-28 - Development [4] : 6.x-1.37 - 2012-Jan-03 - Supported [5] : 6.x-1.33 - 2010-May-19 - Security 2 Project storm (6.x-2.1) downloaded to [success] /var/www/drupal_6/sites/all/modules/storm. Project storm contains 11 modules: stormnote, stormteam, stormorganization, stormtask, stormproject, storminvoice, stormperson, stormtimetracking, stormexpense, stormticket, storm.
Descargar modulos (viejo)
Para instalar paquetes desde la linea de comandos
Descargar un módulo:
$ drush -r /var/www/drupal7 dl views
Project views (7.x-3.5) downloaded to /var/www/drupal7/sites/all/modules/views. [success] Project views contains 2 modules: views, views_ui.
A partir de un sitio construir un make. Desde el root del sitio drupal ejecutamos:
# drush make-generate sitio.make
Todavía no está implementado generar un profile a partir de una instalación:
# drush profile-generate
Definir alias para drush:
/etc/drush/aliases
Habilitar modulos
cd /var/www/drupal; sudo drush en storm
Deshabilitar modulos
cd /var/www/drupal; sudo drush dis storm
Idiomas
1. Habilitar modulo 'locale':
sudo drush en locale
2. Descargar y habilitar modulo 'drush_language'
sudo drush dl drush_language; sudo drush en drush_language
3. Anyadir el idioma, en este caso 'es':
sudo drush language-add es
Todavia no me funciona
Themes
* Deshabilitar
sudo drush pm-disable theme_name
* Habilitar:
sudo drush pm-enable theme_name
* Cambiar tema:
sudo drush vset theme_default theme_name
* Listar disponibles:
drush pm-list | grep Theme
Actualizar core
sudo drush vset --always-set maintenance_mode 1 sudo drush cache-clear all sudo drush up drupal sudo drush vset --always-set maintenance_mode 0 sudo drush cache-clear all
Actualizar modulo
sudo drush vset --always-set maintenance_mode 1 sudo drush cache-clear all sudo drush up
Vemos los modulos que requieren actualizar:
Name Installed version Proposed version Status AudioField (audiofield) 7.x-1.0-beta8 7.x-1.0-beta8 Up to date Drupal 7.31 7.31 Up to date Bundle copy (bundle_copy) 7.x-2.x-dev 7.x-2.x-dev Up to date Coder (coder) 7.x-2.2 7.x-2.2 Up to date Chaos tools (ctools) 7.x-1.4 7.x-1.4 Up to date Custom Formatters (custom_formatters) 7.x-2.2 7.x-2.2 Up to date Devel (devel) 7.x-1.5 7.x-1.5 Up to date Features (features) 7.x-2.0 7.x-2.2 Update available Media (media) 7.x-1.4 7.x-1.4 Up to date Fivestar (fivestar) 7.x-2.1 7.x-2.1 Up to date Flag (flag) 7.x-3.5 7.x-3.5 Up to date Form builder (form_builder) 7.x-1.5 7.x-1.5 Up to date getID3() (getid3) 7.x-1.0 7.x-1.0 Up to date Libraries (libraries) 7.x-2.2 7.x-2.2 Up to date Link (link) 7.x-1.2 7.x-1.2 Up to date MediaFront (mediafront) 7.x-2.2 7.x-2.2 Up to date Options element (options_element) 7.x-1.12 7.x-1.12 Up to date Remote stream wrapper (remote_stream_wrapper) 7.x-1.0-rc1 7.x-1.0-rc1 Up to date Token (token) 7.x-1.5 7.x-1.5 Up to date Views (views) 7.x-3.8 7.x-3.8 Up to date Views RSS (views_rss) 7.x-2.0-rc3 7.x-2.0-rc3 Up to date Views RSS: iTunes Elements (views_rss_itunes) 7.x-1.0-rc2 7.x-1.0-rc2 Up to date Voting API (votingapi) 7.x-2.11 7.x-2.12 Update available Webform (webform) 7.x-3.20 7.x-3.21 Update available Premium Responsive (responsive) 7.x-1.7 7.x-1.7 Up to date
Actualizamos el modulo Features:
sudo drush pm-update features votingapi webform y
Comprobamos de nuevo:
sudo drush up
Terminamos:
sudo drush vset --always-set maintenance_mode 0 sudo drush cache-clear all
Ver configuración de drush
Útil para por ejemplo saber qué php.ini está usando:
drush status
exec() has been disabled for security reasons bootstrap.inc:636 [warning] The following restricted PHP modes have non-empty values: [error] disable_functions. This configuration is incompatible with drush. Please check your configuration settings in /etc/php5/cli/php.ini or in your drush.ini file; see examples/example.drush.ini for details. exec() has been disabled for security reasons bootstrap.inc:441 [warning] exec() has been disabled for security reasons bootstrap.inc:636 [warning] exec() has been disabled for security reasons bootstrap.inc:636 [warning] exec() has been disabled for security reasons bootstrap.inc:636 [warning] Drupal version : 7.34 Site URI : http://default Database driver : mysql Database hostname : localhost Database username : test_directa_cat Database name : test_directa_cat Database : Connected Drupal bootstrap : Successful Drupal user : Anònim Default theme : directa Administration theme : seven PHP configuration : /etc/php5/cli/php.ini Drush version : 5.4 Drush configuration : Drupal root : /home/virtualmin/test.directa.cat/public_html Site path : sites/default File directory path : sites/default/files Private file directory path : sites/default/files/private temp : /tmp
Jquery
http://drupal.org/node/1078080
Descargar: http://jquery-ui.googlecode.com/files/jquery-ui-1.7.3.zip
Instalar módulo jquery: http://ftp.drupal.org/files/projects/jquery_ui-6.x-1.x-dev.tar.gz
Lentitud
www.acquia.com web del creador de Drupal, buscar blog
Drupal penaliza con usuarios autenticados, permisos y roles
Menús o bloques renderizados pero no mostrados, por ejemplo los borra un template
Módulo estadísticas o logs apache para mirar lo que tarda una página
Herramientas
- newrelic.com analizador de webs
- google analytics
- Profiles: Xhprof y Xhprofcli. Extensión php
- Módulo devel
- funciones: timer_start() y timer_read() para ver cuanto tardan bloques, etc… en ser renderizados.
Valores “normales” de una página. Empezamos a mirar las páginas mas sencillas, como por ejemplo un 404:
- 1-1.5 sec
- 40-60 mb
- 100-300 queries
paginador views_large_pager así views no tiene que hacer un count(*)
Lo mejor de caché: Caché de blocks
Panels tiene un execelente sistema de cahcé aunque digan que va lento.
Migracion entornos
Módulo uid → guarda identificador único de contenidos
Módulo deploy → para migrar contenido entre entornos.
Multisite
Crear BBDD # mysql -u root -p
mysql> create database if not exists <base_de_dades> character set=“UTF8”;
mysql> grant usage on *.* to '<usuari>'@'%' identified by '<contrasenya>';
mysql> GRANT ALL PRIVILEGES ON <base_de_dades> . * TO '<usuari>'@'%' WITH GRANT OPTION ;
Crear carpeta en /sites/eloin.org
Copiar fitxer configuració: drupal/sites/default$ cp default.settings.php ../eloin.org/settings.php
@code array( 'driver' => 'mysql', 'database' => '<base_de_dades>', 'username' => '<usuari>', 'password' => '<contrasenya>', 'host' => 'localhost', 'port' => 3306, 'prefix' => 'd7_', 'collation' => 'utf8_general_ci', ); @endcode
Openlayers
Instalar:
- openlayers
- ctools
- cck
- views
Crear tipo contenido con dos campos float * longitud * latitud
Añadimos nodos como puntos del mapa con coordenadas
Creamos vista de tipo nodo
Seleccionamos “open data layers” y pulsamos “add display”
En style seleccionamos “open layers data”
Seleccionamos los campos “content: latitu” y “content: longitut”
Falta:
Add a meaningful title to the new display as it will show up in the map preset information in the next step.
Ahora creamos preset
En admin/site building/openlayer/preset/add
Templates
Widgets
Para añadir un timeline de twitter, creamos el código desde la web de twitter desde:
https://dev.twitter.com/docs/embedded-timelines
Y lo pegamos en un bloque. Vamos a
Themes
Infuse
Crear Menú:
Administer > Site Building > Menus
En primary links creamos los ítems y los ponemos como queramos.
El path es del tipo:
node/1
Añadir Stories (banner rotatorio con imagenes)
http://www.rockettheme.com/tutorial-files/drupal6/drokstories.php
Como tengo un multisite, la ruta de las imagenes la puesto en:
../../files/stories/demo/rokstories/
Y entonces queda:
drupal6/sites/misitio.com/files/stories/demo/rokstories
Hay que ponerlo en el block feature o showcase o scroller para que quede bien
Cambiar “Read the Full Story” del icono Cambiamos el texto del fichero:
rt_infuse_d6/drokstories.tpl.php
La línea donde pone “Read the Full Story”:
<div class="clr"></div> <div class="readon-wrap1"> <div class="readon1-l"></div> <a href="<?php echo $fullpath2; ?>" title="<?php echo $anode->title; ?>" class="readon-main"> <span class="readon1-m">
<span class="readon1-r">Read the Full Story</span>
</span></a></div><div class="clr"></div>
rokscroller
Modulos interesantes
Mogul
Content types etc… para podcasts
Enlace interesante:
http://www.cmsquickstart.com/blog/build-podcast-archive-drupal-7
Bundle copy
En su version 7.x-2.x-dev permite clonar content types
Errores
Congelado en la pantalla de base de datos durante la instalacion
Sintoma:
1. No hay forma de proseguir de la pagina:
install.php?profile=standard&locale=en&op=start&id=1
2. Solo ha creado 32 tablas
mysql -u root -p -e "use drupal; show tables;"
3. Error drush
Solucion:
1. Editar php.ini
sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak sudo vim /etc/php5/apache2/php.ini
2. Ajustar
session.cookies_secure=0
3. Reiniciar apache
sudo service apache2 restart
4. Borrar cache de navegador
5. Repetir el proceso de instalacion desde 0 (filesystem borrado/creado y lo mismo con la base de datos)