Creare un social network con Drupal

Erano anni che mi ripromettevo (rimandando in continuazione) di approfondire e di sviluppare qualcosa di un pochino complesso con il CMF in questione, finalmente l’occasione giusta è arrivata (grazie alla nostra piccola startup, Ideato e Mikamai) e solo grazie ad un lavoro di questa portata, siamo riusciti ad apprezzare in pieno, le potenzialità di un framework di sviluppo ben modellato come Drupal, che vanta più di ogni altro, una libreria pressochè immensa di moduli che permettono out-of-the-box di avere immediatamente un mare di funzionalità aggiuntive.

Anche se è da dire che il primo approccio con Drupal, è un esperienza disarmante e frustrante, putroppo la documentazione ufficiale è troppo lacunosa, vengono date per scontate sezioni fondamentali e non esiste un workflow logico da seguire per capire il complesso sistema di Hook e ovverride che il core di Drupal innesca ad ogni chiamata.

Comunque con qualche buon libro e una pagina sempre aperta sulle API (qui documentazione ottima), si riesce in brevtempo ad entrare con semplicità nei meccanismi (tante volte un pochino strani) ed essere subito produttivi.

Tornando al tema del post, come sviluppare un Social Network con Drupal ?

Prima sarebbe da chiederci quali sono le caratteristiche base che un Social network dovrebbe assolutamente avere ?

Ovviamente, senza menzionare i moduli “standard” che non fanno parte del core, ma sono assolutamente indispensabili:

Alcuni moduli, sono un pochino “scarni” di funzionalità, ad esempio Privatemsg, non permette di inviare il messaggio via mail, o selezionare i contatti dalla propria buddylist, per questo ho sviluppato un modulo di estensione:

http://drupal.org/node/293854

Ho avuto da pochi giorni l’accesso al CVS Drupal, appena ho qualche minuto libero, gli darò un posto più dignitoso :)

Che features aggiunge privatemsg-ng ?

  1. Integrazione con OG, Buddylist, User roles (core)
  2. File attachment (viene inviato all’utente insieme al messaggo un link da dove scaricare l’allegato, ovviamente sarà scaricabile solo da chi ha i permessi)
  3. Mailing out integrato con job_queue

Per ora è tutto, se ancora non avete provate Drupal, questo è il momento giusto ;)

Ciau

WiCD: Un network manager avanzato per Linux

Chi utilizza Debian/Ubuntu o più in generale GNU/Linux e Gnome, sicuramente si sarà trovato di fronte al blasonato Network Managaer progetto ufficiale di Gnome, il cui compito sarebbe quello di semplificare la vita agli utenti mobili nella connessioni a svariati tipi di rete, in effetti sulla carta le feature ci sono, ma in realtà il discorso è ben diverso, è un software molto lento e ha delle mancanze che il più delle volte fanno solamente venire il nervoso, come non poter collegarsi ad una rete Wireless con la nm-applet e utilizzare un IP statico, oppure collegarvi ad una rete dove ci sono più AP in WDS…praticamente un incubo..

Ed è qui che Wicd ci viene in aiuto, queste sono le feature principali:

  1. No Gnome dependencies (although it does require GTK), so it is easy to use in XFCE, Fluxbox, Openbox, Enlightenment, etc.
  2. Ability to connect to wired and wireless networks
  3. Profiles for each wireless network and wired network
  4. Many encryption schemes, some of which include WEP/WPA/WPA2
  5. Remains compatible with wireless-tools
  6. Tray icon showing network activity and signal strength

Per l’installazione su Ubuntu troviamo i pacchettini binari aggiungendo al repository APT il seguente URL:

deb http://apt.wicd.net [Dapper || Edgy || Feisty || Gutsy] extras

Read more

Symfony 1.1 in arrivo, ma senza più Ajax..

Anche se sembra essere stato il suo tassello vincente rispetto ad altri framework, ecco spuntare fuori direttamente dalle pagine wiki di Symfony, la lista degli Helper attualmente disponibili nella versione di sviluppo 1.1:

All helpers in JavascriptHelper are deprecated and they won’t have equivalent in symfony 1.1.

symfony 1.2 won’t have Prototype/script.aculo.us included as we want to give the user the choice of their JavaScript library. Also, we think that JavaScript have to be written in JavaScript, and as such, there won’t be any official port of these helpers in the future.

Concordo che Javascript deve essere scritto in JS per evitare qualsiasi tipo di problema, ma resta comunque il fatto che (almeno io) trovato gli helpers javascript veramente comodissimi, sopratutto quando nei task ripetitivi e anche per la gestione delle form (form_remote_tag, link_to_funcion, link_to_remote ecc..), tutti helper che non avremo più (almeno da quanto mi sembra di aver capito, nella nuova versione 1.1

Peccato!

Update: E’ stato appena creato il branch su svn della versione 1.1 che si avvicina definitivamente ad essere la prossima release stabile, mentre per il trunk ora sarà solo per la versione 1.2, che sarà sviluppata a partire da subito.

Wordpress Plugin: Wp-image-dropshadow (ombre sulle immagini)

web2.0-photoshop

 

Ho appena creato un prototipo di un plugin, al momento sono solo poche righe di codice (giusto delle inclusioni), che permette di aggiungere dinamicamente con css e Javascript le ombre sulle immagini (come questa che vedi nel post).

Non so se gia esiste un plugin che faccia questo lavoro, ma non l’ho trovato (non è che ci abbia perso molto tempo), quindi non ho perso tempo e ne ho creato uno.

Non ho avuto tempo di creare una piccola interfaccia di amministrazione, ma nei prossimi giorni lo farò senz’altro, per adesso il funzionamento è molto semplice, basta copiarlo nella dir dei plugin ed attivarlo.

Poi, bisogno modificare il file js/shadyhotness.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Behaviour.register({
 
  '.PostContent img' : function(element) {
 
    var wrap1 = document.createElement("div");
 
    wrap1.className = "wrap1";
 
    wrap1.setAttribute("class", "wrap1");
 
    var wrap2 = document.createElement("div");
 
    wrap2.className = "wrap2";
 
    wrap2.setAttribute("class", "wrap2");
 
    var wrap3 = document.createElement("div");
 
    wrap3.className = "wrap3";
 
    wrap3.setAttribute("class", "wrap3");    var outerNode = element.parentNode;
 
    outerNode.insertBefore(wrap1, element);
 
    wrap1.appendChild(wrap2);
 
    wrap2.appendChild(wrap3);
 
    outerNode.removeChild(element);
 
    wrap3.appendChild(element);
 
  }
 
});

La riga incriminata è la 2, esattamente “.Postcontent img”, cioè tutte le immagini che sono dentro la classe .PostContent (che rispecchia il mio CSS), quindi cambiare “.Postcontent” con la tua classe CSS che racchiude i post.

Vi prometto che farò un interfaccina di amministrazione al più presto.

Il codice è stato preso da: http://sporkmonger.com/2006/01/15/the-shady-hotness

Il plugin utilizza lo script Behaviour.js. dove potete trovare tutta la documentazione.

Potete scaricare il plugin qui: wp-image-dropshadow.tar.gz

Attendo vostri feedback

Next Page →

  • Cerca


  • About me

    Benvenuto nel mio Blog, un piccolo spazio virtuale in continua evoluzione che mi permette di condividere con voi tutto ciò che ritengo interessante. Sentiti libero di esplorare liberamente ogni contenuto di questo sito. Se vuoi altre informazioni su di me, puoi scaricare qui il mio curriculum aggiornato. Oppure scrivimi

  • Iscriviti ai feed

  • Archivi