Categoria ‘Sviluppo’


WordPress MU: ottenere l’ID del blog corrente

Ecco tre modi per recuperare l’ID del blog corrente.

Tramite la globale $blog_id

1
echo $blog_id;

Tramite l’oggetto globale $current_blog

1
echo $current_blog->blog_id;

Tramite l’oggetto globale $wpdbg

1
echo $wpdb->blogid;

Continua...

Personalizzare le sezioni in un UITableView Grouped

Quando utilizziamo una UITableView in stile Grouped potremmo aver necessità di personalizzare la grafica dei titoli delle sezioni, come California o New York dell’esempio qui sotto.

UITableView

Per farlo basta utilizzare il codice seguente, inserendolo nel delegato, cioè nella classe che risponde al protocollo UITableViewDelegate:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Restituisco una mia View personalizzata, in questo caso un oggetto
// di tipo UILabel
- (UIView *)tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)section {
 
    UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
    label.font = [UIFont boldSystemFontOfSize:20];
    label.textAlignment = UITextAlignmentCenter;
    label.shadowColor = [UIColor blackColor];
    label.shadowOffset = CGSizeMake(1, 1);
    label.text = @"Sezione"; // Sostituire con un array come al solito
    label.textColor = [UIColor whiteColor];
    label.backgroundColor = [UIColor clearColor];
    label.opaque = NO;
 
    return label;
}
// Bisogna supportare anche questo message altrimenti non funziona
- (CGFloat)tableView:(UITableView *)tableView
heightForHeaderInSection:(NSInteger)section {
   return 44;
}

È importante inserire anche heightForHeaderInSection, altrimenti non funziona.

Note interessanti

Nella creazione della nostra UILabel, che volendo potrebbe essere anche un oggetto più complesso come una UIView o UIImageView, ho utilizzato per inizializzare il frame CGRectZero che corrisponde a CGRectMake(0,0,0,0).

Continua...

Come ottenere Latitudine e Longitudine in Objective-C

Il MapKit framework fornisce moltissime funzionalità utili, tranne quella di restituire Longitudine e Latitudine a partire da un indirizzo. In Javascript, ad esempio, è possibile utilizzare il servizio di Geocoding fornito da Google e discusso in Google Maps: come ottenere Latitudine e Longitudine da un indirizzo. Su Apple iPhone, o iPad, è possibile tuttavia superare l’ostacolo utilizzando in modo diverso i servizi di Google. Nello specifico è possibile chiamare direttamente l’url:

1
http://maps.google.com/maps/geo?q=[indirizzo]&output=csv

Dove è [indirizzo] inserire la stringa con l’indirizzo che vogliamo trasformare in coordinate. L’output restituito è del tipo:

1
200,8,41.9128300,12.2241172

Il primo valore, 200, indica che tutto è andato bene (200 OK). Il secondo, 8, è il Google accuracy parameter (1-10). Gli ultimi due valori sono, finalmente, latitudine e longitudine. Vediamo adesso un possibile prototipo di un metodo da inserire nelle nostre applicazioni:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- (CLLocationCoordinate2D)getLocationFromAddress:(NSString*)address {
    NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv",
          [address stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
    NSString *locationString = [[[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]] autorelease];
    NSArray *listItems = [locationString componentsSeparatedByString:@","];
 
    //int zoom       = 0;
    double latitude  = 0.0;
    double longitude = 0.0;
 
    if([listItems count] >= 4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) {
        //zoom    = [[listItems objectAtIndex:1] intValue];
        latitude  = [[listItems objectAtIndex:2] doubleValue];
        longitude = [[listItems objectAtIndex:3] doubleValue];
    } else {
        // Errore
    }
    CLLocationCoordinate2D location;
    location.latitude  = latitude;
    location.longitude = longitude;
 
    return location; 
}

Note interessanti

La stringa restituita in locationString viene “splittata” tramite il metodo componentsSeparatedByString, alla stregua della funzione explode() del PHP per intenderci. Nell’esempio da me proposto ho inserito – ma commentato – il codice per recuperare anche il Google accuracy parameter, o fattore di scala di precisione, indicato con zoom.

Sorgente esempio

Per completezza ho realizzato un piccolo applicativo di esempio con il quale è possibile provare il metodo sopra proposto; inserite un qualsiasi indirizzo e iPhone lo mostrerà sulla mappa.


Scarica Sorgente

Ringrazio il team di devAPP per l’ispirazione di questo articolo.

Continua...

Come impostare in automatico le miniature su tutti i Post

La nuova funzionalità delle miniature di WordPress, introdotta con la versione 2.9 e discussa in WordPress 2.9+: la nuova funzione post thumbnails, può essere automatizzata tramite un semplice script in PHP. Questo può risultare comodo quando “ci si scorda” di inserire le miniature su ogni articolo o se si vuole aggiornare il pregresso.

Continua...

Very short trick: personalizzare la vista delle categorie

Non tutti sanno che è possibile personalizzare la visualizzazione delle categorie in modo rapidissimo sfruttando una proprietà del Category Templates. Normalmente siamo abituati a visualizzare le categorie sempre con il file archive.php.

Continua...

WordPress: aggiungere un pannello nella bacheca

Può essere utile, nello sviluppo di un Plugin e non solo, posizionare un pannello di informazioni, di riepilogo o quant’altro, direttamente nella Dashboard (Bacheca) di WordPress, come accade per i pannelli standard dello “Stato attuale”, “Commenti recenti” etc…
Wordpress permette di aggiungere nostri pannelli in modo semplice, sfruttando la funzione wp_add_dashboard_widget() :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Prima di tutto aggiungiamo un Hook tramite 'wp_dashboard_setup'
// per registrare la nostra funzione di creazione
add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );

// Questa aggiunge fisicamente il pannello alla Dashboard
function example_add_dashboard_widgets() {
    wp_add_dashboard_widget('example_dashboard_widget',
              'Example Dashboard Widget',
              'example_dashboard_widget_function');
}

// Disegna il contenuto del pannello
function example_dashboard_widget_function() {
   echo "Prova mio Widget sulla Bacheca";
}

La funzione wp_add_dashboard_widget() ha la seguente synopsis:

1
2
3
4
5
6
7
8
9
10
//
// $widget_id        - È un identificativo unico tipo slug.
//                     Verrà usato anche come classe nello stile css
// $widget_name      - Nome del Widget visualizzato nella barra
// $callback         - Nome della funzone che mostrerà il conntenuto
// $control_callback - (Opzionale) Nome della funzione usata per inviare
//                     parametri tramite form
//
wp_add_dashboard_widget($widget_id,
    $widget_name, $callback, $control_callback = null)

Continua...

WordPress: ottenere informazioni sulla cartella uploads

WordPress mette a disposizione un’utilissima funzione, wp_upload_dir() per ottenere molte informazioni sulla cartella uploads. Questa funzione restituisce un array così formato:

Continua...

WordPress 2.9+: la nuova funzione post thumbnails

Con le ultime release di WordPress, dalla 2.9+, è stata introdotta una nuova funzionalità molto utile per gestire i thumbnails, ovvero le miniature. Tale funzionalità, tuttavia, dev’essere attivata nel tema e, precisamente, agendo sul file functions.php. Questa nuova caratteristica è utile in molti contesti e fornisce una strumento comodo e semplice sia per chi sviluppa un sito web utilizzando WordPress sia al cliente finale che dovrà poi gestire i contenuti.
Nelle versioni di WordPress precedenti alla 2.9, infatti, molti sviluppatori utilizzavano i campi personalizzati (custom fields) per fornire al cliente la possibilità di aggiungere un’immagine – esterna – al post. Soluzione che se dal punto di vista dello sviluppatore non era particolarmente gravosa, rendeve comunque l’editing dei post abbastanza scomodo, soprattutto se consideriamo che spesso e volentieri è il cliente finale a curare i contenuti.

Continua...

Come applicare la tecnica del Chroma Key in Adobe Flash

La tecnica del Chroma Key, cioè la sostituzione di un determinato colore con un altro (o una diversa sorgente), è riesplosa nell’ultimo decennio con notevole prepotenza, grazie alla sempre più diffusa tecnologia presente nel cinema e nel trattamento di immagini digitali.

Continua...

Very short trick: rendere invisibili i commenti HTML

Commentare codice HTML è una prassi durante le prime fasi di sviluppo Web. Tuttavia il codice commentato rimane visibile all’interno della pagina, anche se viene ignorato dal browser. Selezionando “Visualizza Sorgente” o “Visualizza Codice” dal nostro browser, saremo sempre in grado di vederlo.

Continua...



Stop SOPA