Joomla: recuperare l’identificativo di una voce di menu

Volendo recuperare l’identificativo di una voce di menu il codice di esempio qui sotto può essere di aiuto:

  1. $Itemid = '';
  2. $menu = &JSite::getMenu();
  3. if ( $items = $menu->getItems( 'link', 'index.php?option=com_agimm&view=elencoimmobili' ) )
  4.   foreach( $items as $menuItem )
  5.   {
  6.     if ( !$menuItem->published )
  7.      continue;
  8.  
  9.     $params = $menu->getParams( $menuItem->id );
  10.     if ( $params->get('tipo') == $immobili[0]->tipo and $params->get('id_categoria') == $immobili[0]->id_categoria )
  11.       $Itemid = $menuItem->id;
  12.   }
  • Alla linea 3 vengono recuperate le voci di menu in base al contenuto del link. Infatti il metodo getItems() di JMenu serve proprio a recuperare tutte le voci di menu corrispondenti ad un certo attributo. Il nome dell’attributo (ovvero il nome di un campo della tabella jos_menu) va indicato come primo parametro, mentre nel secondo va inserito il valore di pertinenza. Nel esempio vengono recuperate tutte le voci i cui link puntano alla view elencoimmobili del componente com_agimm.
  • Dalla linea 4 inizia il loop per ciclare le voci di menu recuperate
  • Alle linee 6 e 7 vengono saltate le voci di menu non pubblicate
  • Alle linee 9, 10 e 11  viene fatto un controllo sui parametri della voce di menu attuale e se corrisponde a quanto voluto viene preso l’id inserendolo nella variabile $Itemid

HTC Desire: liberare spazio saturo

Uno dei peggiori difetti che affligge l’Htc Desire è quello di avere poco spazio a disposizione per le applicazioni ed i propri dati.

Non avendo una rom rooted su cui installare un app2sd più efficiente di quella standard, ultimamente mi sono trovato a fare salti mortali per liberare spazio. Infatti nonostante abbia poche app aggiuntive installate ho dovuto fare i conti con l’esaurimento della memoria a disposizione.

Dopo avere disinstallato alcune app, spostato più app possibili su SD, tolto gli aggiornamenti a Flash e YouTube, ho iniziato a cancellare i dati delle app di sistema che non utilizzavo. Da qui ho scoperto che i dati di Facebook for HTC Sense occupavano la bellezza di 40MB. Li ho cancellati e lo spazio rom del Desire è tornato a nuova vita.

Per chi interessa la procedura da seguire è la seguente:

  • Andare suImpostazioni / Applicazioni / Gestisci applicazioni
  • Scegliere Tutte le applicazioni
  • Selezionare l’applicazione Facebook for Htc Sense
  • Fare un tap su Cancella dati

A quanto ho riscontrato i dati cancellati sono quelli relativi hai post facebook visualizzati su FriendStram. Non ritenetemi però responsabile se perderete altri dati 🙂

Giocare a Frets on Fire con controller Guitar Heroe 3 su Ubuntu 11.04

Alcuni appunti ripresi da HowTo: Frets on Fire with Wii Guitar – Ubuntu Forums e adattati a Ubunti 11.04 per configurare il controller Guitar Hero 3 e giorcare a Frets on Fire:

E’ necessario il seguente materiale:

  • Un Wiimote
  • Un controller Guitar Heroe III
  • Una interfaccia bluetooth da collegare al nostro pc

Di seguito i passi da seguire:

Installare i seguenti pacchetti:

sudo apt-get install libbluetooth3 bluez-utils original-awk bison flex libbluetooth-dev autoconf mouseemu

Installare i driver per il wiimote:

sudo apt-get install libcwiid1 libcwiid1-dev lswm wmgui wminput

Adesso lanciando il seguente comando il wiimote dovrebbe essere già pronto per funzionare come mouse:

sudo wminput

Adesso creiamo un profilo di configurazione per il controller Guitar Heroe creando il file gh3 con il seguente comando

sudo gedit /etc/cwiid/wminput/gh3

e inseriamo dentro il file le seguenti istruzioni

# Wii Guitar profile for Frets on Fire
Classic.Down=KEY_ENTER #Strum
Classic.Dpad.X = ABS_X
Classic.Dpad.Y = ABS_Y
Classic.LStick.X = ABS_HAT0X
Classic.LStick.Y = ABS_HAT0Y
Classic.RStick.X = ABS_HAT1X
Classic.RStick.Y = ABS_HAT1Y
Classic.A = KEY_F1 #First Fret starting at top of wiiguitar
Classic.B = KEY_F2 #Second Fret
Classic.X = KEY_F3 #Third Fret
Classic.Y = KEY_F4 #Forth Fret
Classic.Minus = BTN_SELECT
Classic.Plus = BTN_START
Classic.Home = BTN_MODE
Classic.L = BTN_TL
Classic.R = BTN_TR
Classic.ZL = KEY_F5 #Fifth Fret
Classic.ZR = BTN_TR2

A questo punto lanciare lanciamo questo comando con il wiimote collegato al controller Guitar Hero e premiamo i tasti 1+2 del wiimote quando richiesto:

sudo wminput -c /etc/cwiid/wminput/gh3

Ora possiamo avviare Frets on Fiere e se tutto è andato a buon fine dovremmo potere giocare con la nostra chitarra.

lftp: problema di timeout

Uso abitualmente lftp, come ho descritto in Backup di siti ftp con lftp, per eseguire il backup giornaliero di alcuni miei siti.

Recentemente mi è successo che lftp mi si connettesse normalmente ma andasse in timeout nel momento che doveva eseguire il download. Ho risolto il problema inserendo il seguente settaggio prima di impartire qualsiasi altro comando a lftp:

set ftp:ssl-allow no

Per maggiori informazioni a riguardo consultate lftp :- directory listing fails due to firewall. | SupportSages, dove ho trovato la soluzione al problema.

html2pop3: scaricare la posta utilizzando una connessione di un provider diverso da quello della posta elettronica

Alcuni provider impediscono di scaricare la posta tramite protocollo pop3 dalle mailbox che offrono per i propri utenti se non collegandosi esclusivamente con l’adsl del fornitore stesso. La posta rimane comunque consultabile via webmail.

Per risolvere il problema esistono alcune utility che funzionano da proxy  e si frappongono tra la webmail del provider e il protocollo pop3 utilizzato dal client di posta.

Uno di queste utility html2pop3 che ho sostituito al posto di FreePops in quanto quest’ultimo non funzionava utilizzandolo con un account su virgilio.it.

Per maggiori informazioni consultare il sito ufficiale: http://www.baccan.it/index.php?sezione=html2pop3

Mysql: replica circolare master-master

Alcuni appunti presi http://www.azns.it/2011/04/13/due-server-mysql-in-replica-circolare-master-master/ per configurare un mysql in replica circolare master-master in modo da scalare.

Configurazione server 1:

/etc/mysql/conf.d/replica.cnf
[mysqld]
bind-address			= 0.0.0.0
server-id                       = 10
auto_increment_increment        = 10
auto_increment_offset           = 1
master-host                     = server2.dominio.local
master-user                     = replicauser
master-password                 = replicapass
log_bin				= /var/log/mysql/mysql-bin.log
binlog_ignore_db		= mysql

Configurazione server 2:

/etc/mysql/conf.d/replica.cnf
[mysqld]
bind-address			= 0.0.0.0
server-id                       = 20
auto_increment_increment        = 10
auto_increment_offset           = 2
master-host                     = server1.dominio.local
master-user                     = replicauser
master-password                 = replicapass
log_bin				= /var/log/mysql/mysql-bin.log
binlog_ignore_db		= mysql

Riavviare mysql su entrambi i server e impartire il seguente comando da console:

CREATE USER 'replicauser'@'%.san.local' IDENTIFIED BY 'replicapass';
GRANT replication slave ON *.* TO 'replicauser'@'%.dominio.local';
START slave;
SHOW slave STATUS\G;