Elxis CMS Forum

Ελληνικό Forum => Πρόσθετα => Topic started by: michalis1984 on October 02, 2015, 17:05:03

Title: Referer site
Post by: michalis1984 on October 02, 2015, 17:05:03
Παιδιά γειά σας πάλι. Προσπαθώ να προβάλω διαφημίσεις στους επισκέπτες μου ανάλογα με το που έρχεται ο κάθε ένας. Δηλαδή για παράδειγμα αν κάποιος έρχεται απο google (αναζήτηση, social κτλ) να του προβάλλει τον X κώδικά, ενώ αν έρχεται από facebook να του προβάλλει τον Ψ. Σε όλες τις άλλες περιπτώσεις να βλέπει τον Ζ.

Αυτό που έχω κάνει είναι το εξής. Έβαλα στο πάνω μέρος του template μου αυτό:

$referersite = trim(eFactory::getSession()->get('referersite'));

if ($referersite == '') {
$rf = $_SERVER['HTTP_REFERER'];
eFactory::getSession()->set('referersite', $rf);
}

.. με σκοπό στην πρώτη φόρτωση να παίρνει το http_referer και να το βάζει στο session του elxis.

Μετά έφτιαξα ένα απλό content plugin που με if else statements βγάζει τον ανάλογο κώδικα

$referersite = trim(eFactory::getSession()->get('referersite'));

// φίλτρα διαφημίσεων
if (strpos($referersite,'google.')!==false  {
      $html .= ...
      }
      elseif (strpos($referersite,'.facebook.')!==false) {
      $html .= ...
      }
      else {
      $html .=...
      }

Και φορτώνω αυτό το plugin στα ανάλογα άρθρα. Το ζήτημα όμως ποιό είναι; Ότι στο πρώτο hit που κάνει κάποιος επισκέπτης... πχ έρχεται απο google κατευθείαν σε ένα άρθρο, δεν του εμφανίζει τις σωστές διαφημίσεις. Του βγάζει τις default. Αν όμως κάνει κλικ και πάει σε άλλο άρθρο θα του βγάλει τις σωστές διαφημίσεις. Γιατί στο πρώτο hit δεν βρίσκει το referer? Μήπως επειδή το παίρνει απο το template και ετσι δεν μπορεί να βρει το variable την πρώτη φορά; Επειδή μάλλον τα Plugins αρχίζουν να δημιουργούνται πριν φτιακτεί το variable απο το template και αποθηκευτεί στο session; Αν είναι αυτός ο λόγος πως μπορώ να βάζω αυτό το variable πριν να φορτώσει οτιδήποτε άλλο;