Web design, web development e seo
23 Mag
Per rispondere sul forum alla discussione ‘Creare php automatico‘ mi sono cimentato nella traduzione di Pseudo-cron.php - use cron jobs just with PHP!
In pratica per eseguire uno script in un determinato giorno, determinata ora ecc.. necessitiamo di questo script: pseudo-cron v1.3
Di solito i regular task come i backup dei database usano il cron jobs. Con esso puoi pianificare quando un comando sarà eseguito. Ma la maggior parte dei proprietari di siti web non possono creare un cron jobs sul loro web server - I fornitori di server chiedono un extra per averlo.
La sola cosa certa è che abbastanza spesso succede che i webmaster hanno bisogno del cron jobs. In pratica ecco cosa fa uno pseudo-cron: per ogni pagina aperta dall’utente controlla se un qualsiasi cron jobs dovrebbe essere richiamato prima di aprire la pagina stessa. Se esiste un qualsiasi cron jobs esso verrà richiamato.
Ogni pseudo-cron usa una sintassi molto simile a quella di Unix. Per una visione più vasta della sintassi usata puoi dare un’occhiata a UNIXGEEKS. La sintassi usata da un pseudo-cron è differente dalla sintassi della pagina precedentemente linkata per i seguenti punti:
* Non ci sono colonne
* I comandi eseguiti dovono essere un include()able file (il quale potrà contenere ulteriore codice PHP)
Tutta la definizione dei jobs sarà contenuta in un file di testo con un determinato nome (di solito crontab.txt). Ecco di seguito un esempio di un crontab file:
#comments start with ‘#’
#mi h d m dow job comment
0 5 * * Sun cronjobs/dump.inc.php # fa un db dump ogni domenica alle 5 del mattino
40 5 2 * * cronjobs/sendlog.inc.php # invia i log del server dell’ultimo mese
*/15 8-19 * * Mon-Fri cronjobs/refr_ext.inc.php # aggiorna le risorse esterne
L’ultima linea richiamerà cronjobs/refr_ext.inc.php ogni 15 minuti tra le 8 e le 19 dal Lunedi al Venerdi.
Features
Esegue qualsiasi script PHP
Esegue script periodici o a tempo controllato
Esegue i log di tutti i jobs eseguiti
Può funzionare in una pagina HTML tramite un tag IMG
Segue la sintassi del cron di Unix
Invia una email con i risultati
Uso
Modifica le variabili nella sezione config per peremttere di far girare lo script sul tuo server.
Scrivi uno script PHP che fa ciò che desideri in maniera regolare. Assicurati che ogni paths sia legato allo script del pseudo-cron con include()s.
Setta il tuo file crontab con il tuo script
Includi il file pseudo-cron.inc.php in tutte le pagine
Aspetta il prossimo schedule
Nota
Puoi registrare messaggi dal tuo job script nel file log dello pseudo-cron’s richiamando logMessage(”log a message”)
Per maggiori dettagli vieni sul forum ![]()
11 Apr
Per inserire un’immagine come sfondo è sufficiente utilizzare la seguente sintassi:
Per ora presupponiamo che l’immagine di sfondo si trovi nella stessa cartella della nostra pagina HTML, vedremo in seguito (quando parleremo delle immagini) come inserire immagini che si trovano in altre cartelle.
L’immagine di sfondo verrà ripetuta in orizzontale e in verticale.
È anche possibile combinare i due attributi, in modo che mentre l’immagine di sfondo viene caricata, venga comunque visualizzata una colorazione della pagina:
Ecco subito un esempio di pagina impostata con lo sfondo.
È importante assegnare sempre un colore alla pagina anche quando lo sfondo della pagina è bianco (al massimo assegnare bgcolor=”#FFFFFF”). Infatti, come impostazione predefinita, il browser assegna alla pagina il colore di sfondo che l’utente ha impostato nella finestra del sistema operativo: quindi se l’utente ha impostato uno sfondo nero e voi non avete assegnato nessun colore di sfondo alla pagina, la vostra pagina sarà nera.
Link del Forum
clicca qui per visuaizzare la lezione
Per qualsiasi domanda vai su Forum PW
11 Apr
Incominciamo col vedere come ottenere la nostra prima pagina HTML nel modo in cui desideriamo visualizzarla.
Se vogliamo impostare un colore di sfondo è necessario impostare il relativo attributo del tag body. Così:
bgcolor sta per “background color”, cioè “colore di sfondo”. Molti colori sono disponibili utilizzando le corrispondenti parole chiave in inglese.
Qui potete trovare un esempio della pagina con lo sfondo blu
Tuttavia non è consigliabile inserire la notazione del colore facendo riferimento a questo tipo di sintassi, dal momento che non possiamo sapere esattamente a quale tonalità di colore corrisponda il blu del computer dell’utente. È preferibile in molti casi utilizzare la corrispondente codifica esadecimale del colore, che ci permette – tra le altre cose – di scegliere anche tonalità di colore non standard. Con la notazione esadecimale il nostro esempio diventa:
Ecco una tabella con la notazione di alcuni colori (molti di essi sono disponibili anche nelle varianti “dark” e “light”, ad esempio: “darkblue”, “lightblue”):
colore
parola chiave
notazione esadecimale
arancione blu bianco giallo grigio marrone nero rosso verde viola
orange
#FFA500
blue
#0000FF
white
#FFFFFF
yellow
#FFFF00
gray
#808080
brown
#A52A2A
black
#000000
red
#FF0000
green
#008000
violet
#EE82EE
Il numero di colori che l’utente ha a disposizione dipende dalla scheda video. Oggi si va da una risoluzione minima di 256 colori a una risoluzione che prevede svariati milioni di colori.
Per capire di cosa stiamo parlando, provate a visualizzare questa pagina: cambiando il numero di colori visualizzati sul monitor. Per fare ciò, in Windows, andate in: Pannello di controllo > Schermo > Impostazioni e cambiate il numero dei colori, applicate i cambiameni e tornate a visualizzare la pagina. Come si vede la visualizzazione della tonalità di colore è sensibilmente diversa passando da 256 a 65.536 colori (16 bit).
Oggi, come l’esperienza vi saprà dire, i colori sono milioni, e spesso si utilizzeranno varie forme di colori magari con pattern sfumati o gradient.
Link del Forum
clicca qui per visuaizzare la lezione
Per qualsiasi domanda vai su Forum PW
13 Nov
Ho tradotto (con l’aiuto dello staff, spero al meglio
) il tutorial sulle API maps di Google presente su questo blog.
Eccolo
Prima di addentrarsi in questo complicato tutorial, si raccomanda di guardarde una Google Map già sviluppata.
Dopo aver risposto su una discussione nel forum Godbit, l’utente ha creato questa breve guida sulle Google Maps API.
Dopo aver letto questo tutorial sarai capace di:
Vedi un esempio prima di iniziare.
Puoi anche vedere qui, c’è la Google map Vance Auto Sales.
Nota Bene: Google ha aggiornato la propria API il 3 aprile 2006. L’autore della guida ha modificato questo codice prima di scrivere questo tutorial per l’utilizzo della nuova API, quindi tutte le caratteristiche della versione 2 dell’API dovrebbero essere disponibili se si vuole inserirle. Inoltre, Google non fornisce alcun tipo di algoritmo di routing nelle API, quindi, se un utente digita un indirizzo e chiede le indicazioni stradali per arrivarvi, si apre una nuova finestra di Google Maps (originale) con tali indicazioni.
Step 1 - Registra una key API
Prima di inserire una mappa sul tuo sito cerca di registrare una Google API key.
Per registrarti, dovrai inserire l’url del sito che sta usando questa key. La scelta migliore per tale URL è la cartella principale del tuo sito, in questo modo potrai utilizzare la mappa anche in tutte le sue sottocartelle (piuttosto che l’indirizzo assoluto della pagina che userà la mappa). Facendo in questo modo sarà possibile far girare su tutte le pagine del sito la mappa. Ad esempio inserisci http://www.mandladventures.com
Lascia la pagina contentente la key aperta, cosi tu puoi copiare ed incollare la key in più step.
Ricorda che se stai testando su un server localhost, quando upperai in un server online avrai bisogno di due separate key API.
Step 2 - individua le coordinate geografiche
Google attualmente non ha un “geocoding”. Quindi bisogna usare un alternativo.
Geocoder.us è quello consigliato.
Semplicemente inserisci l’indirizzo di cui cerchi le coordinate, e Geocoder.us ti restituisce la latitudine e la longitudine.
Geocoder.us però fornisce solo gli indirizzi degli Stati Uniti. Per cercare altri indirizzi cerca free geocoder su Google.
Step 3 - Creare un file XML
Questo file XML riporterà tutti i punti che marcherai nella mappa. Questo file prevede anche il testo che apparirà quando il marcatore è selezionato. Nel nostro esempio creeremo solo un marcatore. Se vuoi più di un marcatore nella mappa basta aggiungerne nel codice XML qui sotto.
<markers><marker lat="35.827818" lng="-86.072576" html="<b/>First Baptist Church</b/> <br /> 405 West Main Street, <br /> Woodbury, TN 37190" label="FBC"/></markers>
Sostituisci lat=”35.827818″ con la latitudine del tuo indirizzo
Sostituisci lng=”-86.072576″ con la longitudine del tuo indirizzo
Sostituisci “First Baptist Church” con il nome della tua città.
Cambia “405 West Main Street, <br /> Woodbury, TN 37190″ con il tuo indirizzo.
Cambia il label=”FBC” con quello che vuoi.
Salva il file con nome “map.xml” e uppalo nella stessa directory dove inserirai la pagina della mappa. Potresti inserirlo in un’altra directory, però poi dovresti cambiare tutti i riferimenti in “map.xml” allo step 7 del codice per farlo puntare alla tua directory.
Ricorda: il linguaggio XML richiede tutti caratteri “speciali” di HTML.
Si elenca una lista comune di caratteri “speciali”.
< = < ;
> = > ;/ = / ;
] = ] ;[ = [ ;
" = " ;
' = ' ;
Step 4 - Richiama l’API con la tua key
Inserisci il codice seguente nell’head della tua pagina web, ponendo la tua key API al posto di key=ABQIAAAAbTgUqmDVtw6KNosttYwutxR-kQiDMsqewHdPfI0JvuxAHQRqVhQsEF-filcfK_gQIlIUCIcFhtJH0Q”
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAbTgUqmDVtw6KNosttYwutxR-kQiDMsqewHdPfI0JvuxAHQRqVhQsEF-filcfK_gQIlIUCIcFhtJH0Q" mce_src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAbTgUqmDVtw6KNosttYwutxR-kQiDMsqewHdPfI0JvuxAHQRqVhQsEF-filcfK_gQIlIUCIcFhtJH0Q" type="text/javascript"></script>
Step 5 - Aggiungi un evento onunload nel tag body
<body onunload=”GUnload()”>
Step 6 - Posiziona il div contenente la mappa
<div id="map" style="width: 550px; height: 450px; border: 1px solid #000000;"></div><!Questo messaggio sarà visualizzato se JavaScript è disabilitato dal browser dell'utente-->
<noscript><strong>JavaScript deve essere abitiliato affinche lei possa usare le API Maps di Google.</strong><br />Sembra che JavaScript è disabilitato o non è supportato dal suo browser. <br />
Per visualizzare la Google Maps, abiliti JavaScript cambiando le opzioni del browser, e riprovi.<br /><br />
</noscript>
Inserisci questo div dove vuoi che la mappa compaia
Cambia lo stile per adattarlo a quello del tuo sito.
Step 7 - Inserisci la parte finale di codice
Inserisci questo codice prima dei tag di chiusura </body> e </html> della pagina in cui hai inserito la mappa
<script type="text/javascript">
//<![CDATA[//the original code had a GMapSidebar to pick the markers from, I eliminated the GMapSidebar,
//but deleting the code that referenced the bar corrupted the rest of the code
//so just ignore references to GMapSidebar, unless you're really with JavaScript
if (GBrowserIsCompatible()) {
// this variable will collect the html which will eventually be placed in the GMapSidebar
var GMapSidebar_html = "";// arrays to hold copies of the markers and html used by the GMapSidebar
// because the function closure trick doesnt work therevar gmarkers = [];
var htmls = [];
var i = 0;
// arrays to hold variants of the info window html with get direction forms open
var to_htmls = [];
var from_htmls = [];// A function to create the marker and set up the event window
function createMarker(point,name,html) {var marker = new GMarker(point);
// The info window version with the “to here” form open (The Directions Form part.)
to_htmls[i] = html + ‘<br>Directions: <b>To here</b> - <a href=”javascript:fromhere(’ + i + ‘)”>From here</a>’ +‘<br>Start address:<form action=”http://maps.google.com/maps” method=”get” target=”_blank”>’ +
‘<input type=”text” size=40 maxlength=40 name=”saddr” id=”saddr” value=”" /><br>’ +
‘<input value=”Get Directions” TYPE=”submit”>’ +‘<input type=”hidden” name=”daddr” value=”‘ + point.lat() + ‘,’ + point.lng() +
// “(” + name + “)” +
‘”/>’;
// The info window version with the “to here” form open
from_htmls[i] = html + ‘<br>Directions: <a href=”javascript:tohere(’ + i + ‘)”>To here</a> - <b>From here</b>’ +‘<br>End address:<form action=”http://maps.google.com/maps” method=”get”" target=”_blank”>’ +
‘<input type=”text” size=40 maxlength=40 name=”daddr” id=”daddr” value=”" /><br>’ +
‘<input value=”Get Directions” type=”SUBMIT”>’ +‘<input type=”hidden” name=”saddr” value=”‘ + point.lat() + ‘,’ + point.lng() +
// “(” + name + “)” +
‘”/>’;
// The inactive version of the direction info
html = html + ‘<br>Directions: <a href=”javascript:tohere(’+i+’)” mce_href=”javascript:tohere(’+i+’)”>To here</a> - <a href=”javascript:fromhere(’+i+’)” mce_href=”javascript:fromhere(’+i+’)”>From here</a>’;GEvent.addListener(marker, “click”, function() {
marker.openInfoWindowHtml(html);
});
// save the info we need to use later for the GMapSidebar
gmarkers[i] = marker;
htmls[i] = html;
// add a line to the GMapSidebar html
GMapSidebar_html += ‘<a href=”javascript:myclick(’ + i + ‘)”>’ + name + ‘</a><br>’;i++;
return marker;
}// This function picks up the click and opens the corresponding info window
function myclick(i) {
gmarkers[i].openInfoWindowHtml(htmls[i]);
}// functions that open the directions forms
function tohere(i) {
gmarkers[i].openInfoWindowHtml(to_htmls[i]);
}
function fromhere(i) {
gmarkers[i].openInfoWindowHtml(from_htmls[i]);
}//******************************************************
//Edit these options to CONFIGURE THE MAP
// create the map
var map = new GMap2(document.getElementById(”map”));
//GLargeMapControl adds large zoom and pan controls on the left,
//you can change it by picking from two of the options described below
//there is a GSmallMapControl for a smaller pan/zoom control
//also there is GSmallZoomControl - a small zoom control (no panning controls)
map.addControl(new GLargeMapControl());//this adds the Map, Satellite, and Hybrid buttons, delete line if you don’t want it
map.addControl(new GMapTypeControl());
//this adds a scale to the bottom left of the map, delete line if you don’t want it
map.addControl(new GScaleControl());//type in the Geo Coordinates and default zoom level below. (Latitude, Longitude), Zoom level);
//these Coordinates set the center of the map, they do not place the marker.
//that is done in the map.xml file. If you want a marker to be centered, type//the same coordinates here that are used for that marker in the map.xml file
//0 is zoomed all the way out.map.setCenter(new GLatLng(35.827818,-86.072576), 12);
//******************************************************// Read the data from map.xml
var request = GXmlHttp.create();
request.open(”GET”, “map.xml”, true);
request.onreadystatechange = function() {if (request.readyState == 4) {
var xmlDoc = request.responseXML;// obtain the array of markers and loop through it
var markers = xmlDoc.documentElement.getElementsByTagName(”marker”);for (var i = 0; i < markers.length; i++) {
// obtain the attribues of each marker
var lat = parseFloat(markers[i].getAttribute(”lat”));var lng = parseFloat(markers[i].getAttribute(”lng”));
var point = new GLatLng(lat,lng);var html = markers[i].getAttribute(”html”);
var label = markers[i].getAttribute(”label”);
// create the marker
var marker = createMarker(point,label,html);
map.addOverlay(marker);
}
// put the assembled GMapSidebar_html contents into the GMapSidebar divdocument.getElementById(”GMapSidebar”).innerHTML = GMapSidebar_html;
}}
request.send(null);
}else {
alert(”Sorry, the Google Maps API is not compatible with this browser”);
}// This Javascript is based on code provided by the
// Blackpool Community Church Javascript Team// http://www.commchurch.freeserve.co.uk/
// http://www.econym.demon.co.uk/googlemaps/
//slight modifications by Matt from http://www.mandladventures.com///]]>
</script>
Step 8 - Configura la mappa
Modifica il codice della sezione sottostante per configurare la mappa a tuo piacimento.
//******************************************************
//Edit these options to CONFIGURE THE MAP
// create the map
var map = new GMap2(document.getElementById(”map”));
//GLargeMapControl adds large zoom and pan controls on the left,//you can change it by picking to of the options described below
//there is a GSmallMapControl for a smaller pan/zoom control//also there is GSmallZoomControl - a small zoom control (no panning controls)
map.addControl(new GLargeMapControl());//this adds the Map, Satellite, and Hybrid buttons, delete line if you don’t want it
map.addControl(new GMapTypeControl());//this adds a scale to the bottom left of the map, delete line if you don’t want it
map.addControl(new GScaleControl());//type in the Geo Coordinates and default zoom level below. (Latitude, Longitude), Zoom level);
//these Coordinates set the center of the map, they do not place the marker.
//that is done in the map.xml file. If you want a marker to be centered, type
//the same coordinates here that are used for that marker in the map.xml file
//0 is zoomed all the way out.
map.setCenter(new GLatLng(35.827818,-86.072576), 12);
//******************************************************
Imposta un punto centrale della mappa, ed il livello di zoom.
Sostituisci 35.827818 con la tua latitudine
Sostituisci -86.072576 con la tua longitudine.
Sostituisci 12 con il tuo livello desiderato di zoom. 0 corrisponde alla più larga visuale disponibile( ovvero il territorio visibile è il maggiore possibile).
Per cancellare un controllo rimuovi la riga di codice corrispondente.
Inoltre puoi cambiare i tipi di controllo usati sulla mappa.
Ad esempio, alcuni controlli possono essere più grandi o più piccoli: regolarli può essere utile se hai una mappa piccola. Nel codice sono inseriti come commenti i nomi dei controlli alternativi. Prova, ad esempio, a sostituire GLargeMapControl con GSmallMapControl.
Step 9 - Tutorial Completo
Goditi il risultato!
Scarica il Sorgente usato dalla versione originale del tutorial.
Per saperne di più vedi anche le seguenti risorse:
Un ringraziemento speciale va a:
10 Nov
Ecco il mio primo post sul blog… niente di nuovo, questo tutorial sui gestori di evento in JavaScript era già apparso sul forum di Punto Web… ma ripubblicato sul blog splende di una nuova luce, non trovate? A proposito, mi scuso per eventuali errori di formattazione, ma devo ancora prendere MOLTA confidenza con l’editor di WordPress…
Finito il dovuto preambolo, iniziamo… per prima cosa cerchiamo di definire (cosa non proprio semplice) cos’è un evento: lo possiamo definire come un comportamento dell’utente monitorabile dal browser, come ad esempio il passaggio del mouse in una determinata area della pagina o la selezione di un elemento di un modulo. In JavaScript, quindi, un gestore di eventi è una modalità per intercettare questi eventi ed eseguire delle routine particolari in risposta ad essi.
Spiegata così, la cosa è molto generica, quindi sarà meglio illustrare il tutto con degli esempi qui di seguito.
Per iniziare: come specificare una risposta ad un evento
Per scrivere un gestore di evento, ci sono vari modi:
- il primo consiste nel dichiarare una funzione JavaScript e poi di assegnarla all’interno dello stesso script nel modo seguente:
function carica ()
{
…
}window.onload = carica;
è un metodo poco utilizzato perché non così immediato e perché supporta pochi tipi di evento, ma ha il vantaggio che, copiando il codice precedente in un file separato, è possibile includerlo uguale in varie pagine semplicemente collegando un file di script
- il secondo metodo usa un approccio opposto al precedente: si specifica ciò che deve essere fatto in risposta all’evento direttamente sull’elemento corrispondente, ad esempio:
<img src="..." alt="..." onclick="alert('Hello, World!')" />
- il terzo metodo è una via di mezzo tra i due precedenti ed è quello più utilizzato: si crea una funzione separata dal corpo della pagina (volendo, anche in un file JavaScript esterno) e poi si richiama questa funzione in risposta ad un evento. Ecco un esempio:
function trim_spaces (text)
{
…
return …
}…
<input type=”text” name=”…” onblur=”this.value=trim_spaces(this.value)” />
Nella seconda parte dell’articolo, passeremo in rassegna i principali gestori di evento e le rispettive funzioni.
Eventi di caricamento e distruzione
Iniziamo adesso a passare in rassegna i principali gestori di eventi:
Ecco, ad esempio, come potete realizzare una semplice accoppiata di saluti con gli alert di JavaScript (per inciso: di norma sono piuttosto fastidiosi. Quindi cercate di valutarne l’aspetto didattico piuttosto che trovarvi un’idea da copiare):
<body onload="alert('Benvenuto sul mio sito!')" onunload="alert('Torna presto a visitarmi!')">
…
</body>
Eventi riguardanti passaggio e clic del mouse
Con il mouse ci si può sbizzarrire, ci sono tante cose gestibili in questo senso soprattutto per quanto riguarda le immagini. Ecco le principali:
A titolo di esempio, il “classico” rollover di immagini con un qualcosa in più:
<a href="...">
<img src=”off.jpg” onmouseover=”this.src=’on.jpg’” onmouseout=”this.src=’off.jpg’” onmousedown=”this.src=’push.jpg’” onmouseup=”this.src=’off.jpg’” />
</a>
Eventi di puntamento ad oggetti di modulo
Avete mai pensato a come su certi siti sia possibile che JavaScript verifichi all’istante i valori dei campi di un modulo? Probabilmente attraverso uno di questi gestori di evento:
Un esempio con onblur è già stato illustrato sopra: immaginate che la funzione trim_spaces() sia un algoritmo che elimini gli spazi bianchi iniziali e finali di una stringa. Come in parte detto, però, con JavaScript potete anche verificare i dati un modulo prima di inviarlo al server, ecco come:
function check_form ()
{
if (…) // condizione non valida
return false
if (…) // altra condizione non validareturn false
// tutto a posto? allora convalida
return true
}…
<form name=”…” action=”…” method=”…” onsubmit=”return check_form()”>
…
</form>
Eventi relativi alla tastiera
Infine, due chicche che vi consentono di monitorare la pressione dei tasti della tastiera:
Volete realizzare un convertitore di valute in tempo reale? Niente di più semplice:
<input type="text" id="lire" onkeydown="document.getElementById('euro').value=parseFloat(this.value)/1936.27" />
<input type=”text” id=”euro” onkeydown=”document.getElementById(’lire’).value=parseFloat(this.value)*1936.27″ />
È tutto. Spero che questa mini guida possa risultarvi utile, in qualche modo. Per eventuali commenti o imprecazioni, i commenti del blog e il topic originale del forum sono a vostra disposizione.
Statemi bene…