Συνάντησα σε πάρα πολλά blog ένα περίεργο τετραγωνάκι, σαν μύνημα, που καλοσωρίζει (δήθεν) τους επισκέπτες του εν λόγω blog.
Είναι ένα γκρίζο και άχαρο Pop-Up σαν αυτά τα ενοχλητικά των Windows, μόνο που πάνω σ' αυτό γράφει διαφορετικά μυνήματα, όπως "καλώς ήρθες στο Blog τάδε..".
Προσωπικά δεν μου άρεσε καθόλου, όπου κι αν το συνάντησα.
Αυτά τα κολπάκια, τα χρησιμοποιούσαμε θυμάμαι την εποχή του '90, και είμασταν τότε τρομερά ενθουσιασμένοι με τις εφευρέσεις αυτές, όπως και με την μουσική υπόκρουση μόλις φόρτωνε η σελίδα μας, η κάτι γραμματάκια να ακολουθούν το ποντίκι μας, κάτι που στα Ελληνικά blogs τα χρησιμοποιούν μανιωδώς πάρα πολλοί σήμερα, μετά απο 20 χρόνια, και που βασικά είναι παντελώς
Out!..

Σήμερα θα σας δείξω έναν άλλο τρόπο, με τον οποίο θα καλοσωρίζετε τους επισκ΄πτες σας με το όνομά τους, έναν τρόπο που βρήκα σε μια σελίδα με δωρεάν
JavaScripts, που μπορείτε να επισκευθείτε και όσοι σκαμπάζετε αρκετά, να πάρετε κάποια χρήσιμα scripts για το blog σας. Κι εγώ το τοποθέτησα μόλις πρίν λίγο στο blog μου ψηλά, κάτω απο το οριζόντιο μενού. (σίγουρα θα το είδατε όσοι με επισκευθήκατε σήμερα).
Την πρώτη φορά (απο την στιγμή που θα το εγκαταστήσουμε και μετά) που θα επισκευθεί κάποιος το blog, του ανοίγει ένα παραθυράκι, που του ζητάει να γράψει το όνομά του η το ψευδώνυμό του. Μόλις πατήσει ΟΚ, δεν ξαναεμφανίζεται το παραθυράκι αυτό. Εμφανίζεται όμως ένα μύνημα, που τον χαιρετάει με το όνομα που έγραψε, και κάθε φορά που θα μας επισκέπτεται, θα τον θυμάται, αλά και κατόπιν θα του λέει και πότε ξανάρθε τελευταία φορά, και πόσες φορές συνολικά (απο την πρώτη μέρα που γράφτηκε) κι έπειτα μας έχει επισκευθεί ξανά.
Σε μένα παράδειγμα δείχνει αυτό εδώ:
Γεια σου ΑΑΤΟΝ!
Καλώς ήρθες και πάλι! Η τελευταία σου επίσκεψη εδώ ήταν την Τετάρτη, 21 Απριλίου 2010, στις 12:41:15 PM
Απο τις 21 Απριλίου 2010, επισκέφθηκες το blog μου 14 φορές
Καταλάβατε λοιπόν τι κάνει;
Πιστεύω πως θα το βρίσκετε πολύ πιο όμορφο και πολύ πιο ενδιαφέρον απο τα κουτάκια που πετάγονται απλά και μόνο να μας πούν "καλώς ήρθες στο blog μου", κάτι που θα μπορούσε να κάνει ένα οποιοδήποτε banner η οποιοδήποτε απλό κείμενο.
Πάμε τώρα να δούμε πως γίνεται.
1. Πάμε "ΔΙΑΤΑΞΗ"
2. "Προσθήκη Gadget"
3. Επιλέγουμε "HTML/JavaScript"
4. Δεν γράφουμε τίποτε για τίτλο.
5. Αντιγράφουμε το παρακάτω Script και..
Script 1. Καλοσωρίζουμε τους επισκέπτες μας.
<center><script>
<!--
// Copyright (c) 1996-1997 Tomer Shiran. All rights reserved.
// Boolean variable specified if alert should be displayed if cookie exceeds 4KB
var caution = false
// name - name of the cookie
// value - value of the cookie
// [expires] - expiration date of the cookie (defaults to end of current session)
// [path] - path for which the cookie is valid (defaults to path of calling document)
// [domain] - domain for which the cookie is valid (defaults to domain of calling document)
// [secure] - Boolean value indicating if the cookie transmission requires a secure transmission
// * an argument defaults when it is assigned null as a placeholder
// * a null placeholder is not required for trailing omitted arguments
function setCookie(name, value, expires, path, domain, secure) {
var curCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "")
if (!caution || (name + "=" + escape(value)).length <= 4000)
document.cookie = curCookie
else
if (confirm("Cookie exceeds 4KB and will be cut!"))
document.cookie = curCookie
}
// name - name of the desired cookie
// * return string containing value of specified cookie or null if cookie does not exist
function getCookie(name) {
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
return null
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
if (cookieEndIndex == -1)
cookieEndIndex = document.cookie.length
return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}
// name - name of the cookie
// [path] - path of the cookie (must be same as path used to create cookie)
// [domain] - domain of the cookie (must be same as domain used to create cookie)
// * path and domain default if assigned null or omitted if no explicit argument proceeds
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT"
}
}
// date - any instance of the Date object
// * you should hand all instances of the Date object to this function for "repairs"
// * this function is taken from Chapter 14, "Time and Date in JavaScript", in "Learn Advanced JavaScript Programming"
function fixDate(date) {
var base = new Date(0)
var skew = base.getTime()
if (skew > 0)
date.setTime(date.getTime() - skew)
}
var now = new Date()
fixDate(now)
now.setTime(now.getTime() + 31 * 24 * 60 * 60 * 1000)
var name = getCookie("name")
if (!name)
name = prompt("Αν θέλεις σημείωσε το Nickname σου:", "Γράψε το ψευδώνυμο σου...")
setCookie("name", name, now)
document.write("Γεια σου " + name + "!")
//-->
</script></center>
6. Το επικολλάμε στο μεγάλο τετραγωνάκι απο κάτω
7. Το τοποθετούμε τραβώντας το με το ποντίκι μας. στο σημείο που θέλουμε να φαίνεται, και πατάμε "ΑΠΟΘΗΚΕΥΣΗ"
Το Script Νο. 1 που μόλις σας έδωσα, θα ζητάει την πρώτη φορά απο τον επισκέπτη μας, το όνομά του (ή ψευδώνυμό του, ότι θέλει βάζει) και κατόπιν, κάθε φορά που θα μας επισκέπτεται, θα τον καλοσωρίζει με το όνομά του.
Τίποτε άλλο.
Εάν θέλουμε να του λέει και πότε ήρθε ξανά, όπως σε μένα, τότε πρέπει να συμπληρώσουμε στο ίδιο παραθυράκι επεξεργασίας του προηγούμενου gadget, ξαναανοίγοντάς το, και ακριβώς απο κάτω απο τον κώδικα που μόλις πρίν τοποθετήσαμε, βάζοντας ακόμη έναν κώδικα, τον εξής:
Sript No. 2 Πότε μας επισκέφθηκε τελευταία φορά κάποιος.
<center><script type="text/javascript">
/***********************************************
* Display time of last visit script- by JavaScriptKit.com
* This notice MUST stay intact for use
* Visit JavaScript Kit at http://www.javascriptkit.com/ for this script and more
***********************************************/
var days = 730; // days until cookie expires = 2 years.
var lastvisit=new Object();
var firstvisitmsg="Καλώς ήρθες! Αυτή είναι η πρώτη σου επίσκεψη στην σελίδα μας...";
lastvisit.subsequentvisitmsg="Καλώς ήρθες και πάλι! Η τελευταία σου επίσκεψη εδώ ήταν την <b>[displaydate]</b>";
lastvisit.getCookie=function(Name){
var re=new RegExp(Name+"=[^;]+", "i");
if (document.cookie.match(re))
return document.cookie.match(re)[0].split("=")[1];
return'';
}
lastvisit.setCookie=function(name, value, days){
var expireDate = new Date();
var expstring=expireDate.setDate(expireDate.getDate()+parseInt(days));
document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/";
}
lastvisit.showmessage = function() {
var wh = new Date();
if (lastvisit.getCookie("visitc") == "") {
lastvisit.setCookie("visitc", wh, days);
document.write(firstvisitmsg);
}
else {
var lv = lastvisit.getCookie("visitc");
var lvp = Date.parse(lv);
var now = new Date();
now.setTime(lvp);
var day = new Array("Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σαββάτο");
var month = new Array ("Ιανουαρίου", "Φεβρουαρίου", "Μαρτίου", "Απριλίου", "Μαΐου", "Ιουνίου", "Ιουλίου", "Αυγούστου", "Σεπτεμβρίου", "Οκτωβρίου", "Νοεμβρίου", "Δεκεμβρίου");
var dd = now.getDate();
var dy = now.getDay();
dy = day[dy];
var mn = now.getMonth();
mn = month[mn];
yy = now.getFullYear();
var hh = now.getHours();
var ampm = "AM";
if (hh >= 12) {ampm = "PM"}
if (hh >12){hh = hh - 12};
if (hh == 0) {hh = 12}
if (hh < 10) {hh = "0" + hh};
var mins = now.getMinutes();
if (mins < 10) {mins = "0"+ mins}
var secs = now.getSeconds();
if (secs < 10) {secs = "0" + secs}
var dispDate = dy + ", " + dd + " " + mn + " " + yy + ", " + "στις" +" " + hh + ":" + mins + ":" + secs + " " + ampm
document.write(lastvisit.subsequentvisitmsg.replace("\[displaydate\]", dispDate))
}
lastvisit.setCookie("visitc", wh, days);
}
lastvisit.showmessage();
</script></center>
Σε μένα όμως, δείχνει ακόμη μια πληροφορία. Το πόσες φορές απο την ημέρα που το εγκατέστησα, έχει επισκευτεί ο φίλος η η φίλη μου το blog μου. Κάτι σαν προσωπικό του κοντέρ ας το πούμε.
Για να το βάλετε κι εσείς, συμπληρώστε κάτω απο το τέλος του δεύτερου κώδικα (του Script No. 2, που μόλις πρίν τοποθετήσατε κάτω απο το Script No 1) τον τρίτο κώδικα που ακολουθεί:
Script No. 3 Πόσες φορές συνολικά μας επισκέφθηκε κάποιος.
<center><script>
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var expDays = 30;
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function amt(){
var count = GetCookie('count')
if(count == null) {
SetCookie('count','1')
return 1
}
else {
var newcount = parseInt(count) + 1;
DeleteCookie('count')
SetCookie('count',newcount,exp)
return count
}
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
</script>
<script>
document.write("Έχεις επισκεφτεί την σελίδα μου <b>" + amt() + "</b> φορές.")
</script></center>
Όπως καταλάβατε, στην ουσία, φτιάξαμε
μόνο ένα gadget (widget για άλλους) που έχει τρείς κώδικες μέσα, τον έναν μετά τον άλλον.
Αυτό το Script, είναι ορατό "μόνο" απο τον εκάστοτε επισκέπτη μας, όχι απο εμάς τους ίδιους η απο κάποιον τρίτο. Σκοπός του είναι, να γίνει το blog μας πιο "προσωπικό" ή λιγώτερο "απρόσωπο", προσφωνώντας τον κάθε επισκέπτη μας με το όνομα που προτιμάει εκείνος.
ΠΡΟΣΟΧΗ: Σκευθείτε ποιό όνομα θα γράψετε, γιατί δεν θα μπορείτε μετά να το αλάξετε. Το blog θα σας αναγνωρίζει με το πρώτο σας όνομα. Και μην πατήσετε πάνω στο [Χ] να κλείσετε το παραθυράκι, θα σας θυμάται σαν ανώνυμο, και σε βάθος χρόνου δεν θα σας αρέσει που δεν θα βλέπετε το όνομά σας στο καλωσόρισμα.
Εννοείται πως μπορείτε να κάνετε χρήση όποιου κώδικα εσείς θέλετε, με όποια σειρά εσείς θέλετε, η και να μην κάνετε χρήση κάποιου απο τους τρείς. Οι υπόλοιποι θα λειτουργούν κανονικά.
"Γειά σου,
Εάν βρέθηκες για πρώτη φορά στο Blog μου, και εάν σε ενδιαφέρουν οι αναρτήσεις μου, μπορείς να εγγραφείς στο RSS feed του Blog. Μπορείς επίσης να κάνοντας εγγραφή στο Newsletter του blog μου, να λαβαίνεις απ ευθείας κάθε μου ανάρτηση στο email σου. Είσαι Twitter user; τότε μπορείς επίσης να με κάνεις Follow στο Twitter.
Σε ευχαριστώ που με διαβάζεις,"