A volte può tornare utile includere in una pagina il contenuto di un’altra. Ad esempio se avete creato una pagina di registrazione e volote mostrare in un riquadro l’informativa della privacy, sarebbe comodo poter caricare questo contenuto da una pagina esistente. Questo ha il vantaggio:
- Il cliente può modificare il contenuto della pagina senza “tocccare” la pagina originale che lo contiene
- La pagina funziona anche da sola, quindi è possibile inserire nel footer del sito un link a “privacy” ad esempio
Il modo migliore per includere il contenuto di una o più pagine è il seguente:
1 2 3
| $postID = get_page_by_title("Privacy")->ID;
$post = get_post(&$postID);
echo apply_filters("the_content",$post->post_content); |
L’ID del Post (della pagina nell’esempio di sopra) è ottenuto tramite il suo titolo sia per chiarezza che per compatibilità con export o reindicizzazioni involontarie.
Continua...
Ecco tre modi per recuperare l’ID del blog corrente.
Tramite la globale $blog_id
Tramite l’oggetto globale $current_blog
1
| echo $current_blog->blog_id; |
Tramite l’oggetto globale $wpdbg
Continua...
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.

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...
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...
Ultimi Commenti
roberto: ho rispsoto con piacere alle vostre domande. L’idea è davvero ottima. Sto cercando una soluzione per...
Sting: @Dario – puoi vedere un esempio qui: http://www.fight4fun.it/ cliccando sulla voce: MAPS Spero di...
vik: Giustappunto sto lavorando ad un progetto e il cliente mi ha chiesto di mostrare tutte le news (che sono CPT) in...
Giovambattista Fazioli: @paso: assolutamente si. Basta che identifichi il campo [cci]input[/cci] che vuoi far...
paso: Ciao vorrei chiedere una info, è possibile usare il datepicker con cform7, mi spiegp meglio posso implementare...