Configurar Backup and Migrate en Drupal 8

Un dels mòduls més útils en drupal és Backup and Migrate, que et permet fer còpies de seguretat de la base de dades i també dels arxius sense dependre d’un client de base de dades.

En la versió 8, m’he trobat una curiositat, i és que per defecte costa definir on vols que desi les còpies de seguretat. O sigui, per defecte les pots descarregar, però pot resultar d’interès programar una tasca i que les desi en el servidor.  O bé, pujar nosaltres una còpia concreta i fer una importació sense problemes de tamanys d’arxiu.

Si anem al mòdul de backup and migrate (admin/config/development/backup_migrate/settings/destination) podrem veure que es poden definir diferents destinacions (públiques i privades).   Podrem aquí­ definir una nova destinació vigilant així­ò sí­ d’introduí­¯r el path fí­sic del servidor correcte per quí­ després poguem realitzar un backup en aquesta carpeta.  En el meu lloc de test local per exemple he establert:

sites/default/files/BM 201611_b6m

URLs automàtiques amb drupal

Per tenir URLs automàtiques amb drupal hi ha un mòdul molt conegut que es diu pathauto. Té moltes funcionalitats lligades sobre tot amb Token, per tal que pots lligar o vincular la URL d’un node o tipus de contingut a la seva ubicació, la data de creació, etc..

En moltes ocasions, necessites crear un seguit de contingut estàtic, jeràrquic i és fàcil o bé que t’oblidis de quina jerarquia té, o que estiguis pensant en blocs i submenús que apareguin en moments concrets… amb el que és genial que drupal et gestioni automàticament el camí­ de cada pàgina estàtica.

Per fer això, configurarem amb pathauto que la construcció de les URLs sigui:  [node:menu-link:parents:join-path]/[node:title]

D’aquesta manera una pàgina on tinguem per exemple el contingut Organització\Membres\Equip1.htm  ens gestionarà automàticament la construcció d’aquesta URL en funció del menú o ubicació de la pàgina estàtica.

Si això ho lligo amb el mòdul menu_block podem aconseguir que només aparegui un menú secondari en les pàgines que continguin la URL Organització\* facilitant així­ la navegació i funcionalitat.

 

Drush en ubuntu 14.04

Farà ja alguns mesos que vaig anotar les instruccions aquí­ per actualitzar o instal·lar drush en un macOSX.  Aquesta setmana m’he trobat amb la necessitat de fer el mateix però en un servidor ubuntu 14.04 en producció.  No tenia clar el procediment i per evitar sustos he preferit instal·lar una màquina test abans de tenir problemes… i sorpresa la meva és super fàcil i super estable. Només cal:

sudo apt-get install drush

I amb això ja el tens instal·lat i funcionant.   No ha calgut ni fer el chmod u+x /usr/bin/drush ni crear els enllaços o accesos directes com en anteriors ocasions. Fantàstic.

Recuperar contrasenya en drupal

Pot resultar més habitual del que voldrí­em oblidar la nostre clau d’accès d’administrador de drupal 7. Amb la versió 6 m’havia trobat algunes vegades i el mètdo que feia servir era accedir a la base de dades i canviar -la des de la taula d’usuaris. Amb la versió 7 això hi ha diferents maneres de recuperar-la ràpidament:

  • Generant un enllaç per que et demani una nova clau d’accés:
    Accedint mitjançant ssh al nostre servidor executarem: drush uli    i ens donarà una URL que podrem enviar per correu electrònic o accedir i ens demanarà la nova clau d’accès.
  • Forçant la contrasenya que nosaltres volguem a l’usuari que estigui afectat per l’oblit:
    Accedim de nou mitjançant ssh al nostre servidor i executarem: drush upwd –password=”novaclau” admin

Per últim, si hem insistit moltes vegades podria donar-se també el cas que tinguem el compte bloquejat, la manera més ràpida de desbloquejar l’usuari sense haver d’esperar-nos una estona és eliminar el contingut de la taula flood:

  • via mysql: delete from flood;
  • via ssh: drush php-eval “˜db_query(“DELETE FROM flood”);’

 

 

 

 

simplytest.me

Avui han publicat un enllaç al twitter de drupal que val la pena no perdre.  Una web a on pots testejar durant 30 minuts qualsevol mòdul o profiles de drupal.  Ja no hi ha excusa per no testejar qualsevol mòdul de drupal.

La URL és ben fàcil: http://simplytest.me

Actualitzant drush a 5.3

Feia temps que tenia pendent actualitzar drush, seguia amb la versió 4 que vaig instal·lar l’any 2011 en local (http://can.nandes.cat/instal·lar-drush-a-un-mac), i m’estava donants uns problemes així­ que m’he decidit i he actualitzat a la versió 5.3.

Seguint la mateixa guia que l’any passat (http://drupal.org/node/508450), per mi el major problema ha sigut fer un “unlink” o trencar l’enllaç virtual per poder eliminar la carpeta drush i tornar-la a crear.

Un cop superada aquesta fase, m’he trobat amb un error al terminal alhora de poder fer updates de tot un site:

Wilhelm-2:carpeta nasinandes$ drush up –uri http://carpeta.local
PDO::__construct(): [2002] No such file or directory (trying to [warning]
connect via unix:///var/mysql/mysql.sock) environment.inc:517

Total, que no pot arribar a fer l’enllaç amb la base de dades.  Cercant com sempre trobes amb una solució (http://drupal.stackexchange.com/questions/32111/get-an-error-if-i-run-the-pml-drush-command-line) però m’ha semblat una mica lleig deixar una carpeta /var/mysql penjada.  Coneixent-me segur que demà ja no recordo per què està això.  Així­ que he seguit buscant i aquí­: http://drupal.org/node/726970#comment-5037210 he trobat una solució que crec que és més neta.

sudo ln -f /Applications/MAMP/bin/php/php5.2.17/bin/php /usr/bin/php

En el meu cas he fet

sudo ln -f /Applications/MAMP/bin/php/php5.3.6/bin/php /usr/bin/php ja que estic ja treballant amb php5.3 en el servidor en producció  i  ja he pogut actualitzar sense problemes els meus sites locals.

 

 

 

Error al actualitzar calendar_plugin_style

Al actualitzar a l’última versió del mòdul calendar (de drupal), a la versió 3.4 m’he trobat de sobte amb problemes amb diferents vistes (views) creades per visualitzar bé siguin calendaris o bé relacions de dates o esdeveniments.

Suor freda! sort que és diumenge.  La solució, l’he trobada a http://drupal.org/node/1593882#comment-6030474 bàsicament ha consistit en:

– exportar la vista que tenia objectes de calendari
– afegir una petí­ta lí­nea de codi:
$handler->display->display_options['row_plugin'] = 'calendar_entity';
 – i tornar a importar sobre-escribint la vista.

Genial la comunitat drupal. Però quins sustos que fan sempre les actualitzacions del calendar.

Evitant que el camp tí­tol sigui obligatori a drupal

Pot donar-se el cas que estiguis creant un tipus de contingut amb drupal, i que no vulguis que el camp tí­tol sigui obligatori.  I pot donar-se el cas també que a més, vulguis que et crei un camp autonuméric com a “tí­tol” o camp clau… el que vindria siguent un ID autonumèric en el sempre amic MSACCESS.

Per solventar-ho, com sempre dos mòduls que et fan part de la feina: serial field i auto node title… imprescindible tenir també el mòdul rules.

El procediment és ben fàcil: activar tots dos mòduls esmentats, afegir un camp serial al teu node i configurar en el tipus de contingut que el tí­tol sigui opcional o que sigui amagat i per tant que canvii el contingut per els patrons que ofereix token.  Fins aquí­ lo fàcil.  Veurem que podem guardar el node sense indicar un tí­tol, però al no tenir registrat encara el valor en la base de dades, l’objetiu no serà del tot el que esperavem ja eu apareixerà la definció literal del token i no el valor autonumèric.

Per resoldre això, haurem de crear una petita acció a token nostre que validi cada cop que gravem un node sense tí­tol per què faci ell automàticament un segon “guardar” agafant llavors els valors correctes des de la base de dades.

Hi ha una guia super aclaratòria a: http://drupal.org/node/615410

0. Obviously you have to have the Serial Field module installed. You will also need to add a field for your content type that is of the type serial. Furthermore, you will need to install the Rules module.

1. On the list of content types, click Edit next to the content type in question. In the section Automatic title generation, write the pattern for your title. To get the serial field value, look at the Replacement patterns help box for a section called CCK serial tokens for a token with the help text “Serial field value (unique per node type)”. Save the settings.

2. Go to admin/rules and create a rule with the following details:
– Event type: After saving new content
– Add Condition: Created content is SelectYourContentType
– Add Action: Execute custom PHP code (the PHP Filter module must be activated or else you won’t see this option) and enter the following code in the text area:
auto_nodetitle_operations_update(array($node->nid));
Basically, the node will run Automatic Nodetitles’ method auto_nodetitle_operations_update which updated the title of a certain node.

That should be it. Now, each time you create a new node of the type SelectYourContentType, the rule you just added will make sure that the Automatic Nodetitles module will update the title for the node so that your serial is actually added to the title.

NOTE. If you create a new node that has a serial field and get a warning that the table doesn’t exist (which won’t output the serial in the title, obviously), just re-install the Serial Field module. Make sure you first inactivate it, then the uninstall it and finally remove the serial directory on the server. Then install the module again.

escollir entre taxonomia o un nou cck

Porto uns dies amb un projecte amb drupal intentant decidir-me entre fer servir taxonomies o crear diferents cck per crear una estructura de classificació de contingut. No tinc l’aigua clara, però he trobat un artí­cle que ho deixa força clar: http://www.juliakm.com/how-decide-between-using-taxonomy-terms-and-cck-field-classify-content-drupal-site  en cas de dubte taxonomi està dins del core i garantirà la seva continuitat en versions superiors de drupal,  tot i això  jo encara no ho tinc clar.

Error webform_last_download després actualitzar de D6 a D7

Si actualitzes de Drupal 6 a Drupal 7, i tens actiu el mòdul webform, potser que et doni problemes alhora d’acabar de realitzar els scripts d’actualització ja que vol crear una taula que ja existeix.

El missatge no és del tot comprensible:

O sigui  DatabaseSchemaObjectExistsException: ja existeix un objecte a la base de dades. L’error el dona al fer un createTable() webform_last_download.

Per solventar-ho, només cal anar al teu phpmysql o gestor de base de dades, eliminar la taula webform_last_download a “maneta” i tornar a executar l’script d’actualització.

Taula que eliminarem

modul filter, imprescindible per drupal

Normalment quan demanes una llista dels mòduls imprescindibles per drupal, sempre es parla de views, de cck (si és versió 6), de admin_menu, de panels… doncs no coneixia jo el mòdul “modul filter“, i crec que és imprescindible.  Sobre tot si estàs testejant i provant molts mòduls, ja que et permet filtrar ràpidament quins mòduls tens, quins tens deshabilitats, quins tenen dependències… vaja, una petita meravella!

Provant Zemanta

screenshot of TurnKey Linux Drupal appliance
Image via Wikipedia

Avui m’han parlat de Zemanta, un plugin per drupal, que a més s’intengra en navegadors com firefox, i que permet adaptar-se a editors wiwsiwig afegint enllaços o termes de referència directament al contingut.

A més, funciona amb drupal 7 via drush, o bé independentment al teu navegador web (plugin per firefox).

 

Enhanced by Zemanta

Editar estils css amb drupal

Si el css no és el teu fort i necessites tocar coses concretes d’un tema desenvolupat amb drupal, t’hauràs trobat amb la sensació que estàs més estona intentant trobar quin div, quina zona o quin element és el que vols tocar que modificcant-lo en sí­.

Personalment, tinc una còpia local del lloc que vull editar, i amb el firebug, cssedit i alguna altre eina més acostumo a ensortirme’n.   Avui però he trobat una utilitat que pot facilitar encara més aquest procès.

Es tracta del mòdul sweaver (http://drupal.org/project/sweaver), el qual d’una manera visual permet editar paràmetres i aspectes css del teu lloc “en calent”, o sigui sense haver de pujar/baixar els fitxers css afectats per els teus retocs.

A més, a la web del projecte faciliten un parell de videotutorials per tenir més visió del que es pot fer:

http://www.vimeo.com/15106873 integració drush i sweaver

http://www.vimeo.com/13281932 dissenya el teu theme per drupal en 10 minuts.

Instal·lar drush a un mac

No diré res que no es trobi en el fil http://drupal.org/node/508450 però així­ ho tinc referenciat per aquí­ i no ho perdo.

Per instal·lar drush a un mac os 10.6.7:

descarregar drush (en aquest moment 4.4 que serveix per drupal 6 i 7)

$ tar -zxf drush.tar.gz  (descomprimim)
$ sudo mv drush /usr/lib/   (el posem a la carpeta lib )
$ chmod u+x /usr/lib/drush   (li donem permissos d’execució)
$ sudo ln -s /usr/lib/drush/drush /usr/bin/drush  (crem un enllaç / accès directe.)

Amb això podrem tenir un drush local i executar determinades accions des de el nostre mac sense necessitar shell al servidor web en producció.

per últim:  drush status

i ens mostrarà si el procòes ha acabat correctament la versió de drush que tenim:

$ drush status
PHP configuration     :
Drush version         :  4.4
Drush configuration   :
Drush alias files     :