Aquí intentarem explicar de zero com hem creat la primera versió de la web d'intercanvi utilitzant el drupal.
Hi ha molts llocs on explica com fer-ho:
#cd /var/www #wget http://ftp.drupal.org/files/projects/drupal-6.12.tar.gz #tar xzf drupal-6.12.tar.gz #mv drupal-6.12 fira #cd fira #mysqladmin -u sopa -p create fira #cp sites/default/default.settings.php /sites/default/settings.php #chmod a+w sites/default/settings.php $konqueror http://localhost/fira
I seguim els passos que ens demanen per instal·lar el drupal
Descarregar els següents mòduls a sites/all/modules (s'ha de crear el directori):
Views: Aquest mòdul serveix per crear llistes de les coses que vulguem
Captcha: Aquest mòdul serveix per evitar que es registrin ordinadors que volen injectar SPAM.
Taxonomy Menu: Aquest mòdul ens permet tenir un menú amb les categories que hem creat.
Notifications: Aquest mòdul ens permet enviar un correu electrònic a qui vulgui cada cop que algú afegeix un intercanvi a la web. Permet subscripcions per categoria.
Token: És necessari pel mòdul notifications.
Messaging Framework: És necessari pel mòdul notifications.
CCK: Aquest mòdul ens permet crear tipus de contingut
FileField: El necessita el ImageField
ImageAPI: Aquest mòdul ens permet gestionar les imatges
ImageCache: Aquest mòdul ens permet crear diferents mides de la imatge
ImageField: Aquest mòdul ens permet crear un camp de tipus imatge en un tipus de contingut
PathAuto: Aquest mòdul ens permet crear alias automàticament de forma que siguin més llegibles els enllaços
# wget http://ftp.drupal.org/files/projects/ca-6.x-1.5.tar.gz # tar xzf ca-6.x-1.5.tar.gz
Cliquem a Administer–> Modules —> Locales
Cliquem a Administer–> Languages–> Add Language –> Catalan
Cliquem el català com a llengua predeterminada i ja ho tenim.
Canviem el tipus pàgina per intercanvi. També canviem l'explicació. No cal crear un nou tipus de contingut CCK per fer el que volem fer. El que sí que haurem de fer un cop habilitat tots els mòduls referents a imatge que expliquem més endavant, serà afegir un camp del tipus File i Widget Image al CCK Intercanvi.
També podem canviar els títols dels camps que vénen per defecte, Title–> Títol i Body–> Explicació. Això ho fem al editar el tipus de contingut Intercanvi a l'apartat que està amagat que diu 'Configuració del formulari l'enviament de dades'.
A partir del taxonomy creem dos tipus de classificacions per els intercanvis.
Una classificació és per dir si és un oferiment, una demanda, una cessió o una donació. L'anomenarem ComIntercanvies. És un camp necessari, però no pot tenir camps múltiples.
I l'altre classificació es fa per tipus d'intercanvi: mobles, serveis, electrodomèstics, joguines, … L'anomenarem tipus, però aquest sí que pot tenir camps múltiples.
Habilitem Administer–> Modules –> Contact
I anem a Administer –> Contact Form –> Add Category
i afegim la resposta automàtica que rebrà algú que vol donar una suggerència al web.
Al habilitar aquest mòdul també afegeix una pestanya de contacte a cada usuari si cliquem a la seva web del compte personal, per exemple, a la de l'administrador seria 'user/1' o si és d'algun altre usuari només cal canviar el número 1 pel uid de l'usuari corresponent.
Finalment, ens cal crear un formulari de contacte. Anem a Adminstra–> Site building –> Contact form –> Add category. Aquí omplim segons volem.
Finalment afegirem a cada node l'enllaç per posar-se en contacte amb el que ha proposat l'intercanvi. Ho farem tocant el codi del tema minnelli que estem utilitzant.
Ens caldrà remenar dos fitxers, el node.tpl.php i el minnelli.css, el primer està en el directori
themes/garland/node.tpl.php
Entre el 'print $content' i el 'print $terms' afegim
<div class="laquevulgui">
<a href="../user/<?php print $node->uid; ?>/contact">Contactar amb la persona</a>
</div>
I el segon fitxer que hem de tocar és el dels estils. Éstà a
themes/garland/minnelli/minnelli.css
i ens cal afegir les següents línies a sota de tot del fitxer
.laquevulgui {
margin-bottom: 10px;
}
Això dels estils ho afegim perquè hi hagi un espai entre 'Contactar amb la persona' i 'Afegir Comentari'.
Si algun usuari vol afegir una foto d'allò que vol intercanviar té la possibilitat de fer-ho.
Habilitem els mòduls: Content, FileField, ImageField, ImageAPI, ImageAPIGD2, ImageCache i ImageCacheUI.
Primer de tot, anem a Administra–> ImageCache–> Add new preset
Preset Namespace: FixaAlcada
Cliquem a 'Add Scale' i posem com height 15 i com a width no posem res.
Afegim un altre preset. Li posarem com a
Preset Namespace: FixaAmplada
Cliquem a Add new preset.
Fem el mateix que abans però no posem res a height i com a width posem 150.
Ara afegim aquestes línies als css, per fer que la foto quedi a l'esquerra i el text a la dreta. Hi posem una separació de 10px entre la foto i el text. Ho afegim al fitxer '/themes/garland/minnelli/minnelli.css'.
.field-field-foto{
float: left;
margin-right: 10px;
}
Ara li hem de dir que quan pinti el node de tipus intercanvi ho faci amb la imatge amb el preset que hem escollit. Anem a Administra–> Tipus de Contingut–> Intercanvi–> Display Fields, i aquí posem que el label estigui en hidden, és a dir, que l'amaguem, i a full node (perquè el teaser en aquesta web no el fem servir) li posem FixaAmplada image linked to image. Així tindrem la imatge escalada a una amplada concreta, que a la vegada serà una enllaç a la imatge en mida total.
Primer de tot crearem una llista per veure segons la classificació donada pel taxonomy. És a dir, que si cliquem a l'apartat d'Eines de Què vols intercanviar, surti un llistat de totes les Eines que s'ofereixen o es demanen.
Cliquem a Administer–> Views–>Add
View name: LlistatTaxonomia
View description: Llistat d'intercanvis classificats per Taxonomia
View Type: Node
View Tag: LlistatTaxonomia
I ara canviem els següents paràmetres:
Cliquem a Títol:
Afegim: Llistat d'intercanvis classificats per %1
Style: Taula Use pager: Sí Items per page: 30
Cliquem al + d'Arguments: (serà l'argument que li passarem per fer la cerca)
Busquem a Groups per Taxonomia:Term ID. I ara, Actualitza.
Cliquem al + de Fields: (seran els camps que volem que ensenyi com a resultat)
Busquem a Groups per Node i cliquem a Node:títol.
Afegim també
Usuari: Nom
Node: Post date
Contingut: Foto FixaAlcada image linked to node
Esborrem els Labels. I ara, Actualitza
Ara cliquem al + de Sort Criteria: (Com volem que ens ordeni el llistat)
Busquem a
Taxonomia: Term asc
Node: Post date desc
Ara per configurar el camí (path) per veure aquest llistat cal que afegim un display (Add Display). Sortirà la mateixa configuració a tots els nodes i només canviarem l'apartat de Camí. Afegirem com a path: taxonomy/term/% on el % és l'argument que li passem al views. Què és el nid de Term. D'aquesta manera estem trepitjant la sortida dels llistats del taxonomy amb el nostre views.
Ara crearem una llista per veure els intercanvis que proposa un usuari. És a dir, que si cliques sobre l'usuari et sortirà el llistat de totes les coses que proposa intercanviar aquest usuari, tant el que demana, com el que ofereix, cedeix o dona.
Cliquem a Administer–> Views–>Add
View name: LlistatUsuari
View description: Llistat d'intercanvis classificats per Usuari
View Type: Node
View Tag: LlistatUsuari
I ara canviem els següents paràmetres:
Cliquem a Títol:
Afegim: Intercanvis que proposo, %1
Style: Taula
Use pager: Sí
Items per page: 30
Cliquem al + d'Arguments: (serà l'argument que li passarem per fer la cerca)
Busquem a Groups per Usuari: Uid. I ara, Actualitza.
Cliquem al + de Fields: (seran els camps que volem que ensenyi com a resultat)
Taxonomia: Term
Node: Títol
Node: Post date
Contingut: Foto FixaAlcada image linked to node .I ara, Actualitza
Ara cliquem al + de Sort Criteria: (Com volem que ens ordeni el llistat)
Busquem a
Taxonomia: Term ID asc
Node: Post date desc. I ara, Actualitza.
Finalment, cliquem al + de Filter:
Busquem a Taxonomia: Term or Demano, Ofereixo, …
Ara per configurar el camí (path) per veure aquest llistat cal que afegim un display (Add Display). Sortirà la mateixa configuració a tots els nodes i només canviarem l'apartat de Camí. Afegirem com a path: user/% on el % és l'argument que li passem al views. Què és el uid de l'usuari. D'aquesta manera estem trepitjant la sortida de la pàgina amb la configuració de l'usuari, i en comptes d'aquesta en sortirà el nostre views. Però la gràcia està en que al habilitar el mòdul Contact, surt el nostre views amb una pestanya Contacte. Tal i com ho volem.
Ara crearem una llista per veure els últims intercanvis que proposats. El farem servir de portada.
Cliquem a Administer–> Views–>Add
View name: UltimsIntercanvis
View description: Llistat dels últims intercanvis
View Type: Node
View Tag: UltimsIntercanvis
I ara canviem els següents paràmetres:
Cliquem a Títol:
Afegim: Últims intercanvis proposats
Style: Taula
Use pager: Sí
Peu: Filtered HTML (hi afegim un text)
Cliquem al + de Fields: (seran els camps que volem que ensenyi com a resultat)
Node: Títol
Usuari: Nom
Node: Post date
Taxonomia: Term
Contingut: Foto FixaAlcada image linked to node. I ara, Actualitza
Ara cliquem al + de Sort Criteria: (Com volem que ens ordeni el llistat)
Busquem a
Node: Post date desc. I ara, Actualitza.
Finalment, cliquem al + de Filter:
Busquem a Taxonomia: Term or Demano, Ofereixo, …
Ara per configurar el camí (path) per veure aquest llistat cal que afegim un display (Add Display). Sortirà la mateixa configuració a tots els nodes i només canviarem l'apartat de Camí. Afegirem com a path: node.
Primer habilitem els mòduls corresponents a taxonomy_menu.
Editem qualsevol dels dos vocabularis que hem creat a
Administer–> Taxonomia–> Edita el Vocabulari
i a baix s'han afegit les opcions del Taxonomy Menú.
Habilitem l'opció Navigation i hi posem les següents opcions:
Syncronise changes to this vocabulary
Display Number of Nodes
Item for Vocabulary
Auto Expand Menu Item
Un cop configura un Menú per una taxonomia, habilitem l'altra.
Ara anem a configurar els títols dels menús. Per això, cal anar a Administra–>Menús–>Navigation i editem el que posa ComIntercanvies, i canviem el títol per: Com vols intercanviar?
Canviem el que posa Tipus, i el canviem per: Què vols intercanviar?
Deshabilitem els menús de Create content i derivats.
Afegim un parell de menús.
Un menú que vagi directe a la creació d'un intercanvi creant un ítem que apunti a 'node/add/intercanvi'
I l'altre que apunti a 'contact' que serveixi per bústia de suggeriments.
Ara ens falta que els menús 'Com vols intercanviar?' i 'Què vols intercanviar?' apuntin a un enllaç en que surti el llistat de tot. Per això cal configurar la vista en l'apartat de Arguments. També cal habilitar el URL Aliases i així fer que els enllaços que donen estranys (per exemple, 'taxonomy/term/1 2 3 4') apuntin, per exemple, a 'taxonomy/term/tot'.
Habilitem els mòduls corresponents, en aquest cas, Token, Messaging, Simple Mail, Content Notifications, Notifications UI i Taxonomy Notifications.
Ara, anem a Adminstra–> Messaging & Notifications–> Notifications Settings–> User Interface
i configurem els tipus de continguts que permeten que els usuaris es subscriguin. En aquest cas, Etiquetes.
Ara ens cal anar a Adminstra–> Messaging & Notifications–> Notifications Settings–> Content subscriptions i escollir per quin vocabulari de la taxonomia permeten subscriure's. En aquest cas, Tipus.
Ara creem un ítem al menú que vagi directe a les subscripcions a etiquetes de la taxonomia. Per això, necessitem el mòdul 'me aliases', que ens permet saber qui sóc en tot moment a la hora de crear enllaços concrets. Per exemple, nosaltres farem que l'ítem del menú s'enllaci a 'user/me/notifications/taxonomy' i li posarem Subscripcions com a 'Títol'.
Ara ens falta configurar els missatges que volem que s'enviïn automàticament. Això ho farem des de Administra–> Message Templates. En aquest cas, només ens caldrà canviar Notifications event i Notifications for node creation.
Instal·lem el mòdul i habilitem el captcha només. El de les imatges no, només farem servir el que pregunta una operació matemàtica.
Anem a la pàgina de configurar el captcha i els habilitem tots menys el de user_login_block. Són gustos.
Finalment, habilitem el mòdul PathAuto i automàticament cada cop que creem un node ens crearà un enllaç 'llegible humanament' per gestionar els nodes.
Abans de configurar el color del tema, ens cal habilitar el mòdul Color que ja ve per defecte amb el nucli del drupal, però en canvi, no està habilitat per defecte.Per tant, anem a Administra–>Mòduls i busquem el mòdul Color i l'habilitem.
Després, anem a Administra–>Temes i escollim com a tema per defecte el minelli. Si ara cliquem a Configura al costat del tema Minelli, i podrem escollir el color que volem. En el nostre cas, hem escollit el Mediterrani. A la mateixa pàgina podem afegir el logo que nosaltres vulguem.
Si ara anem a Administra–>Site Configuration–> Site Information podem posar el que vulguem al missatge de Peu. En el nostre cas hem posat: “Compartim els recursos per ser el canvi que volem”.
Perquè els usuaris normals puguin accedir al que ens interessa haurem de configurar els permisos a Administra–>Permisos. Cal que habilitem els permisos dels usuaris autenticats i afegim que poden veure i gestionar les seves notificacions, poden crear i actualitzar els propis intercanvis que ha publicat, no pas el dels altres. També permetre l'accés als llistats de views. I crec que ja no hi ha res més.
Anem al fitxer /modules/system/system.module i busquem aquest tros de codi:
/**
* Format the Powered by Drupal text.
*
* @ingroup themeable
*/
function theme_system_powered_by($image_path) {
$image = theme('image', $image_path, t('Powered by Drupal, an open source content management system'), t('Powered by Drupal, an open source content management system'));
return l($image, 'http://drupal.org', array('html' => TRUE, 'absolute' => TRUE, 'external' => TRUE));
}
I el canviem per aquest codi:
/**
* Format the Powered by Drupal text.
*
* @ingroup themeable
*/
function theme_system_powered_by($image_path) {
$image = theme('image', $image_path, t('Powered by Drupal, an open source content management system'), t('Powered by Drupal, an open source content management system'));
$image2_path='misc/nomada.png';
$image2 = theme('image', $image2_path, t('Hacklab'), t('Hacklab'));
return l($image, 'http://drupal.org', array('html' => TRUE, 'absolute' => TRUE, 'external' => TRUE))."<br>".l($image2, 'http://musaik.net/hl', array('html' => TRUE, 'absolute' => TRUE, 'external'=> TRUE));
}
2. Realitzar un intercanvi. L'apartat “vull fer un intercanvi” no em queda clar. Sembla que sigui quan vols fer un intercanvi amb algú, però es per ficar els teus objectes. Potser soc jo.
3. Contacte amb l'intercanviador: En el correu es podria afegir per defecte l'adreça de quin objecte demana i l'adreça de l'usuari perquè el que rep el correu tingui tots els intercanvis de l'interesat.