Tag: php

drupal 6, tagadelic cache clear

I’ve got some problem with the tagadelic module in Drupal 6.x to create tag clouds. Even having removed the “cache” from the site setting, when a new post was published, the clouds didn’t change, never!

At the end I’ve fount a little patch on the web and I’m trying here to explain it to new users, not familiar with patch.

  1. go into the module directory “sites/all/modules/tagadelic” and open the file tagadelic.module with your favourite editor
  2. goto line 215 (or around there) and change the line “
    $cache = cache_get($cache_name);" to $cache = cache_get($cache_name, 'cache_block');<br /></pre></li><li>goto line 228 and do the same: change<br /><pre>cache_set($cache_name, $tags); to <br />cache_set($cache_name, $tags, 'cache_block', CACHE_TEMPORARY);

upload the file and the problem will magically disappear.

Original source thanks to: http://drupal.org/node/231030

drupal 6, tagadelic cache clear

PHP convertire apostrofo in apice

Copiando un testo da MS Word in una form capita a volte di imbattersi negli apostrofi di tipo ” ’ ” che difficilmente vengono convertiti correttamente in UTF-8. Questo capita (leggendo un po’ di bug report di php) con alcune versioni di php.

Brutale mna efficace al scelta di convertire tutti questi apostrofi con il singolo apice ‘

  $patterns[0] = ‘/[\x82\x91\x92]/’;
  $replacements[0] = “‘”;
  $txt = preg_replace($patterns, $replacements, “Governatore d’Italia”);

che renderà “Governatore d’Italia”

PHP convertire apostrofo in apice

virtualbox: ubuntu server 8.04 su OSX 10.5 howto italian

ATTENZIONE: QUESTO ARTICOLO FA RIFERIMENTO ALLA VERSIONE 1.x di VIRTUALBOX, INSTALLANDO UNA UBUNTU SERVER 8.04
ADESSO HO AGGIORNATO ALLA VERSIONE 2.x E FATTO UPGRADEA UBUNTU SERVER 9.04:
Molte cose sono rimaste invariate, alcune invece hanno bisongo che ci rimetta le mani, quindi aggiorno questa guida via via che faccio cose specificando quali sono gli aggiornamenti per la 2.x – 9.04
La mia intenzione è quella di installare Ubuntu Server 8.04 su una virtalbox su un McBook Pro OSX Leopard.

Volgio usare ubuntu come webserver locale di sviluppo per LAMP e per le applicazioni RAILS.
Via via sto incontrando piccoli problemi che cerco di risolvere. Questo post crescerà di volta in volta!

Intallazione ubuntu

L’iinstallazione è andata liscia senza problemi. Però all’avvio della macchina virtuale, al sistema risulta non essere valida la CPU e quindi non parte.
E’ necessario andare nelle impostazioni della macchina virtuale nella sezione:

GENERALE -> AVANZATE

e mettere il check su “Abilita ACPI” e “Abilita PAE/NX”

e questo è risolto!

Folder sharing

ATTENZIONE AGGIORNAMENO 2.x – 9.04: dopo l’aggiornamento le cartelle condivise non funzionano più; ho seguito quanto scritto su http://ubuntrucchi.wordpress.com/2009/03/09/installare-le-guest-additions-di-virtualbox-2x/

La mia necessità primaria è quella di poter avere i file di sviluppo sul mio hard disk OSX in maniera che possa editare i miei file da OSX e che li possa vedere su webserver ubuntu via browser. Dato che le macchine sono in rete pensavo di far puntare apache ad un indirizzo di rete locale ma ho scoperto che questo non si può fare. Virtualbox mette a disposizione le cartelle condivise, ciò la possibilità di montare delle directory che stanno sul HD OSX direttamente su ubuntu. Questo è possibile poichè i sistemi stanno sullo stesso HD.
Per configurare questa opzioni sono necessari alcuni passi.

  1. Configurare le cartelle condivise dal pannello di configurazione della macchina virtuale nel pannello “dettagli->cartelle condivise”. Ne aggiungiamo una e gli diamo un nome (il mio caso è “websites” che punta alla directory /home/users/profilo/Sites)
  2. Andare nella cartella delle applicazioni, selezionare l’applicazione virtualbox e col tasto destro cliccare su “mostra contenuti pacchetto”. Dentro Contents -> MACOSX troverete un file “VBoxGuestAdditions.iso”, copiatelo sulla scrivania o su un qualunque percorso visibile. (Fare attenzione a copiare e non a spostare!!!)
  3. Nel pannello “Dettagli -> CD/DVD ROM” di configurazione della virtual machine, scegliete di moontare un’immagine iso come cd selezionando il file VBoxGuestAdditions.iso che vi siete copiati.
  4. Avviare Ubuntu server
  5. Una volta eseguito il login è necessario montare il cd con “sudo mount /cdrom”. Apparirà un messaggio tipo “block device /dev/scd0 is write protected”, non è importante. Adesso cercate dove è stato montato il cd che può essere (mi è capito su posti diversi) in “/media/cdrom” oppure in “/media/crdrom0″
  6. Dentro ci sarà una serei di eseguibili, va scelto quello che interessa, nel mio caso “VBoxLinuxAdditions-x86.run”
  7. Non è possibile lanciare questo script dubito perchè ci servono le librerie del compilatore per GNU Linux. Quindi installiamo via apt “sudo apt-get install build-essential”
  8. Ancora non basterà perchè servono gli header giusti… per sapere queli sono basta fare “uname -a” che rende una stringa tipo “Linux webserver 2.6.24-19-server #1 SMP Wed Aug 20 etc etc”; nel mio caso significa che devo installare “apt-get install linux-headers-server”
  9. A questo punto possiamo lanciare dalla directory del cd montato “sudo ./VBoxLinuxAdditions-x86.run”
  10. Nella mia home ho creato una directory “Sites” con mkdir
  11. A questo punto provo a montare la cartella condivisa: “sudo mount -t vboxsf Websites Sites/”
  12. Se voglio che questa operazione sia automatica ad ogni avvio sarà necessario aprire “sudo nano /etc/fstab” e inserire una riga in fondo al documento così  “Websites /home/[utente]/Sites vboxsf defaults,uid=1000,gid=1000,exec 0 0″

e questo è risolto!
Grazie a David Mugnai

Come modificare la risoluzione maggiore di 800×600?

Voglio mettere la risluzione dell scherm a 1024×768 per una migliore visualizzazione della shell.
sudo nano /boot/grub/menu.list
alla fine delle “DEFAULT OPTIONS” comincia la lista delle opzioni grub. La prima dovrebbe essere quella di Ubuntu Server 8.0.x; nel campo kernel si trova in fondo alle opzioni un default.
sostituire in maniera che diventi “ro vga=791″
La mia stringa è:
kernel /boot/vmlinuz-2.xx.xx rot=UIID=xxxxxx ro vga=791*

Questo è rislto!
(Grazie a Tommaso Ghiachi!)

Come abilitare il mouse per fare selezioni di testo?

Ho trovato una sola via per poter abilitare il mouse, per poter fare la selezione di testo per copia incolla. Sembra che l’unico modo sia (anche se non mi torna per niente) l’installazioen di un piccolo software “gpm”
sudo atp-get install gpm

Come arrivare via browser al webserver?

Sulla vostra macchina locale, aprire una shell con la virtualbox non avviata.
per ogni porta che si vuole aprire è necessario scrivere questa tripletta:

VBoxManage setextradata “Linux Guest” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol” TCP
VBoxManage setextradata “Linux Guest” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort” 80
VBoxManage setextradata “Linux Guest” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort” 8000

Al posto di “Linux Guest” si dovrà mettere il nome preciso della macchina virtuale.
Nella seconda riga la porta che vogliamo aprire (la 80 per apache).
Nella terza la porta locale che vogliamo mappare (ho scelto la 8000)

Avviare la macchina virtuale con relativo login.

Su browser mettere http://localhost:8000 e magicamente… it works! Però si vedrà la directory interna di apache mentre io voglio vedere la cartella condivisa.

Andare su “nano /etc/apache2/sites-anabled/000-default

e modificare le righe DocumentRoot con il percorso della directory condivisa.

riavviare apache

sudo /etc/init.d/apache2 restart

Per eliminare il warning al riavvio di apache (apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName):

sudo nano /etc/apache2/apache2.conf
inserire in fondo la seguente linea:
ServerName [unNomePerIlServer]
salvare il file con ctrl+o seguito da invio e ctrl+x per chiuderlo
(thanks to http://www.pianeta.com/map/index.php/idQ20623/tipoQ/shwDAQsi/ricercaQ14/shSCQ403/pidQ11)
E questo è risolto!
Grazie a David Mugnai

Apache non serve bene i CSS

Su questo sono impazzito per un bel po’ ma lla fine è risolto. I file Html, Php vengono letti correttamente sulla mia Vbox da apache ma i file css vengono letti la prima volta, e poi rimangono come congelati una specie di cache che mostra sempre il file come visualizzato la prima volta… ovviamente non era un problema di cache.

Il problema è che apache stronca i file css e txt come documentato su http://forums.virtualbox.org/viewtopic.php?t=1940&highlight=apache

Ho trovato la soluzione su http://httpd.apache.org/docs/2.0/mod/core.html#enablesendfile per cui è necessario editare il file

sudo nano /etc/apache2/apache2.conf

e aggiungere in un punto qualunque la stringa

      EnableSendfile Off
e tutto funzioneraà a meraviglia!

E questo è risolto!
Grazie a David Mugnai

Come modificare il layout di tastiera?

non ci sono ancora riuscito e il problema più grosso è quello di riuscire a fare i caratteri che solitamente usiamo con il tasto Alt sinistro (in Osx) o Alt destro (in Win/Linux) (per esempio per fare la @, # ecc)

Ho provato svariate cose sul layout di MacBokk pro con

dpkg-reconfigure console-setup

ma nessuna ha funzionato. Però, rimettendo una tastiera generica 101 tasti e configurandoil tasto “Logo right” mi è adesso possibile usare quei caratteri. Alcuni altri invece sono rimappati, da scoprire e imparare le posizioni, m aalmeno adesso sono tutti raggiungibili.

Ultimo aggiornamento: 22-10-2008

virtualbox: ubuntu server 8.04 su OSX 10.5 howto italian

A tutto YAML!

Ho da poco scoperto YAML. E devo dire che mi piace veramente un sacco!
Bene, cosa è Yaml? E’ la versione umanamente leggibile di un XML. Svolge la stessa funzione: organizzare dei dati in un file di testo.

Da wikipedia la definizione esatta è:

YAML is a recursive acronym for “YAML Ain’t Markup Language”. YAML is a data serialization language that takes concepts from languages such as XML, C, Python, and Perl, as well as the format for electronic mail as specified by RFC 2822. YAML was first proposed by Clark Evans, and implemented by himself, Brian Ingerson and Oren Ben-Kiki.

Beh, oggi ho avuto necessità, per semplificare la vita ad un cliente, di usare YAML in un piccolo progetto web fatto in php e ho trovato una libreria che mi risulta molto comoda e quindi perchè non segnalarla!

http://spyc.sourceforge.net/

Interpreta in una riga di definizione della classe, i nostri file YAML.

March 30, 2007
A tutto YAML!

PHP Notice

Scrivendo codice php può capitare di imbattersi in un messaggio di sistema che ci arriva direttamente dal php, del tipo:

Notice: Undefined index: action in [vostro url] on line 5

Solitamente si verificano quando si richiama una variabile che non esiste o una chiave di array che non c’è.
Sarebbe buona norma riuscire a fare codice “notice free” ma questo richiede molta cura e attenzione. Ci sono allora vari sistemi per disabilitare questi messaggi:

- controllando l’esistenza della chiave prima di accedervi (usando isset($variabile[$chiave]) o sistemi alternativi);

- richiamando la funzione error_reporting(E_ALL ^ E_NOTICE) (solitamente
all’inizio del proprio script);

- impostando error_reporting = E_ALL & ~E_NOTICE nel php.ini (occhio che
questa modifica influenza TUTTI i tuoi script);

Se proprio non posso evitare l’errore, piuttosto che modificare il php.ini preferisco inserire nella pagina dello script:

error_reporting(E_ALL ^ E_NOTICE);

November 2, 2005
PHP Notice