Tutoriel: Afficher le top referrers (menu, index...)

Proposez ici vos templates, vos plugins ou demandez en un.
Tous les tutoriels disponibles pour Arfooo Annuaire sont disponible dans cette rubrique

Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede jalbalo » Lun 25 Jan 2010 17:52

"Il faudra bien entendu modifier le style du fichier style.css ou même créer un style.
Si vous avez du mal pour ça, poster à la suite de ce tutoriel et je vous aiderez et 'ajouterai cette aide à la suite de ce tutoriel.

Cordialement,
Arf."

Ca doit etre une partie de la réponse j'espère savoir faire ca, http://pages.keroinsite.com/ comment tu as fait stp ?
ca regarde personne
jalbalo
 
Messages: 235
Inscription: Sam 3 Oct 2009 18:56


Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede jalbalo » Mer 27 Jan 2010 18:10

Bonsoir les gens virtuel,
Alors une petite aide svp ?
ca regarde personne
jalbalo
 
Messages: 235
Inscription: Sam 3 Oct 2009 18:56

Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede jalbalo » Sam 13 Fév 2010 08:58

Slt, c'est bien les gens profite d'un script gratuit mais explique pas comment ils ont rajouter des choses comme le top référrer de http://pages.keroinsite.com/ j'ai fait un mail et ne ma pas répondus c'est un site d'échange et de partage svp jouer le jeux, possible un tuto sur comment faire ce top refferrer dans le css? merci.
ca regarde personne
jalbalo
 
Messages: 235
Inscription: Sam 3 Oct 2009 18:56

Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede Gargouille » Mar 16 Fév 2010 15:33

Je me permet de vous donner la petite modife pour ceux qui passent sur la version V2 et qui comptent utiliser ou réutiliser leur "Top referrer" sur l'index.

Niveau installe, exactement la même chose et même code qu'expliqué au début, le seul changement, pour avoir des urls "correctes" (sinon, pour ceux qui sont sous IE, vous allez avoir des %20 dans les urls ou des blanc sous FF, etc... Sans la correction, ça fonctionne aussi, mais autant avoir quelque chose de propre avec la sous-catégorie dans l'url

remplacer :
Code: Tout sélectionner
{if !empty($topReferrerSites)}
<div class="menuleft">
<ul>
        <li class="header">{'Top Referrers'|lang}</li>
        {foreach from=$topReferrerSites value=topReferrerSite}
        <li><a href="{"/site/details/$topReferrerSite.siteId/%s"|url:$topReferrerSite.siteTitle}" title="{$topReferrerSite.siteTitle}"><img alt="{$topReferrerSite.siteTitle}" width="120" height="90" src="{$topReferrerSite.imageSrc}"  /></a></li>
        {/foreach}
        <li class="text_last"></li>
</ul>
</div>
{/if}


par :

Code: Tout sélectionner
{if !empty($topReferrerSites)}
<div class="menuleft">
<ul>
        <li class="header">{'Top Referrers'|lang}</li>
        {foreach from=$topReferrerSites value=topReferrerSite}
        <li><a href="{$topReferrerSites|objurl:'siteDetails'}" title="{$topReferrerSites.siteTitle}"><img alt="{$topReferrerSites.siteTitle}" width="120" height="90" src="{$topReferrerSites.imageSrc}"  /></a></li>
        {/foreach}
        <li class="text_last"></li>
</ul>
</div>
{/if}


Sans oublier les "s" à la fin de "$topReferrerSites", car si ça passait sur la v1.0.9, ça plante direct sur la V2 !!!

Voilà, bon upgrade à tous !
Franck.
Gargouille
 
Messages: 56
Inscription: Dim 23 Aoû 2009 04:53
Localisation: Reims

Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede romain35 » Jeu 18 Fév 2010 11:58

Bonjour,

le tuto ne fonctionne pas avec la V2!

Edit: je voudrait afficher le top 3 des sites sur l'index avec avec l'images plus le titre et ça description !

Cordialement,
romain
Avatar de l’utilisateur
romain35
 
Messages: 104
Inscription: Lun 9 Juin 2008 20:58

Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede Gargouille » Sam 20 Fév 2010 20:22

Bonjour Romain,

Si, si, je te confirme que le tuto fonctionne sur la V2 !
Les Boutiques du Net (Top sites et Nouveautés sur index)

Je n'ai pas installé avec les thumbs comme tu veux le faire, mais sur que ça fonctionne !

Reprends bien tout le tuto debuit le début (si je puis me permettre), et applique la petite correction que j'ai donné plus haut.

Cordialement,
Franck.
Gargouille
 
Messages: 56
Inscription: Dim 23 Aoû 2009 04:53
Localisation: Reims

Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede jalbalo » Dim 21 Fév 2010 14:16

Bonjour j'ai un bloquage a l'étape 2 :cry: je touve pas dans mon sitemodel.php
Code: Tout sélectionner
function getValidatedTopReferrersSites()

le voici le voyez vous svp ?
Code: Tout sélectionner
<?php
/**
* Arfooo
*
* @package    Arfooo
* @copyright  Copyright (c) Arfooo Annuaire (fr) and Arfooo Directory (en)
*             by Guillaume Hocine (c) 2007 - 2010
*             http://www.arfooo.com/ (fr) and http://www.arfooo.net/ (en)
* @author     Guillaume Hocine & Adrian Galewski
* @license    http://creativecommons.org/licenses/by/2.0/fr/ Creative Commons
*/


class SiteModel extends Model
{
    protected $primaryKey = "siteId";
    protected $dbTable = "sites";
    protected $name = "site";

    function selectWithNewFlag(Criteria $c, $fields = "*")
    {
        $noveltyPeriod = intval(Config::get("siteNoveltyPeriod"));
        $sites = $this->findAll($c, $fields . ", categoryId, packageId, ADDDATE(creationDate, $noveltyPeriod) > NOW() as isNew", true);
        $packageIds = array();

        foreach ($sites as $site) {
            if ($site->packageId) {
                $packageIds[$site->packageId] = true;
            }
            $site->packageImageSrc = "";
            $site->packageName = "";
            $site->updateImageSrc();
        }

        if (!empty($packageIds)) {
            $pc = new Criteria();
            $pc->add("packageId", array_keys($packageIds), "IN");
            $packages = $this->package->getArray($pc, "name, imageSrc", null, true);

            foreach ($sites as $site) {
                if (isset($packages[$site->packageId])) {
                    $site->packageImageSrc = $packages[$site->packageId]['imageSrc'];
                    $site->packageName = $packages[$site->packageId]['name'];
                }
            }
        }

        if (Config::get("advancedUrlRewritingEnabled")) {
            $this->attachParents($sites);
        }

        return $sites;
    }

    function generateNewSelection()
    {
        $c = new Criteria();
        $c->add("status", "validated");
        $c->add($this->getForbiddenRule());
        $c->addOrder("RAND()");
        $c->setLimit(Config::get('selectionSitesCount'));

        $siteIds = $this->site->getArray($c, "siteId");
        $siteIds = array_keys($siteIds);

        $this->setting->set('selectionSiteIds', implode(",", $siteIds));

        $todayDate = date('Y-m-d');
        $this->setting->set('selectionGenerationDate', $todayDate);

        $cache = Cacher::getInstance();
        $cache->clean("tag", array("site", "setting"));

        return $siteIds;
    }

    function getForbiddenRule()
    {
        $prefix = Config::get("DB_PREFIX");
        return "EXISTS(SELECT * FROM " . $prefix . "categories WHERE " . $prefix . "categories.categoryId=" . $prefix . "sites.categoryId AND forbidden='0')";
    }

    function getSiteWithDetails($siteId)
    {
        $c = new Criteria();
        $c->add("siteId", $siteId);
        $sites = $this->selectWithNewFlag($c);
        return $sites ? $sites[0] : false;
    }

    function addDefaultSortingOrder($c)
    {
        $order = Config::get("sitesSortyBy");
        if (!in_array($order, array("creationDate", "referrerTimes", "siteTitle"))) {
            $order = "creationDate";
        }

        if ($order == "referrerTimes") {
            $order .= " DESC";
        }
        $c->addOrder($order);
    }

    function addPageCriteria($c, $page, $resultsPerPage)
    {
        if (empty($page) || $page < 1) {
            $page = 1;
        }
        $c->setLimit($resultsPerPage);
        $c->setOffset(($page - 1) * $resultsPerPage);
    }

    function update($data, Criteria $c)
    {
        if (isset($data['address']) || isset($data['city']) || isset($data['country'])) {
            $data['_lng'] = "NULL";
            $data['_lat'] = "NULL";
        }

        if (isset($data['priority'])) {
            $data['reversePriority'] = -$data['priority'];
        }

        parent::update($data, $c);

        if (Config::get("siteDetailsCacheEnabled")) {
            $condition = $c->getCondition("siteId");

            if ($condition && !is_array($condition['value'])) {
                Cacher::getInstance()->clean("tag", array("site" . $condition['value']));
            }
        }

        //if status changed must recalculate validated, refused counts
        if (isset($data['status']) || isset($data['categoryId'])) {
            $this->updateStats();
        }
    }

    function del(Criteria $c, $updateStats = true)
    {
        $condition = $c->getCondition("siteId");

        $nc = new Criteria();
        $nc->addCondition($condition);

        parent::del($c);

        Model::factoryInstance("keywordsOfSite")->del($nc);
        Model::factoryInstance("comment")->del($nc, false);
        Model::factoryInstance("hit")->del($nc);

        $nc = new Criteria();
        $condition['key'] = "itemId";
        $nc->addCondition($condition);

        Model::factoryInstance("extraFieldValue")->del($nc);

        $photos = Model::factoryInstance("photo")->findAll($nc, "*", true);

        foreach ($photos as $photo) {
            $photo->del(false);
        }

        if ($updateStats) {
            $this->updateStats();
        }
    }

    function insert($data)
    {
        if (isset($data['priority'])) {
            $data['reversePriority'] = -$data['priority'];
        }

        parent::insert($data);
        $this->updateStats();
    }

    function updateStats()
    {
        $this->category->updateValidatedSitesCount();
        Cacher::getInstance()->clean("tag", array("site", "category", "keyword"));
    }

    function attachPhotos(&$item)
    {
        $photos = array();

        if ($item->photosCount) {
            foreach ($this->photo->getItemPhotos($item->siteId) as $photo) {
                $photos[] = array("thumbSrc" => AppRouter::getResourceUrl("/uploads/images_thumbs/" . UploadedFile::fileNameToPath($photo['src']) . "s" . $photo['src']),
                                  "photoId"  => $photo['photoId'],
                                  "name"     => "");
            }
        }

        $item->photos = $photos;
    }

    function attachKeywordIds(&$item)
    {
        $item->keywordIds = $item->getKeywordIds();
    }

    function fillExtraFields(&$item)
    {
        $extraFields = $this->extraField->getItemExtraFields($item);
        $extraFieldValues = array();

        foreach ($extraFields as $fieldId => $extraField) {
            $fieldName = 'extraField[' . $fieldId . ']';
            if ($extraField['type'] == "checkbox") {
                $fieldName .= "[]";
            }
            $extraFieldValues[$fieldName] = $extraField['value'];
        }

        $item->fromArray($extraFieldValues);
    }

    function attachExtraFields(&$item)
    {
        $item->extraFields = $item->haveExtraFields ? $this->extraField->getItemExtraFields($item) : array();
    }

    function attachParents(&$object)
    {
        if (empty($object)) {
            return;
        }
        if ($object instanceof ModelRecord) {
            $items = array($object);
        } else {
            $items = & $object;
        }

        $categoryIds = array();

        foreach ($items as $item) {
            if (!empty($item['categoryParents'])) {
                continue;
            }
            $categoryIds[] = $item['categoryId'];
        }

        if (!empty($categoryIds)) {
            $categoryParents = $this->category->getParents($categoryIds);

            foreach ($items as &$item) {
                if (empty($categoryParents[$item['categoryId']])) {
                    continue;
                }

                $item['categoryParents'] = $categoryParents[$item['categoryId']];
            }
        }
    }
}

class SiteRecord extends ModelRecord
{
    function updateImageSrc($canBeOverwrittenByGalleryImage = true)
    {
        $this->imageSrc = $this->getThumbnailSrc($canBeOverwrittenByGalleryImage);
    }

    function getKeywordIds()
    {
        return $this->getKeywords(true);
    }

    function getSimilarSites()
    {
        $c = new Criteria();
        $c->add("categoryId", $this->categoryId);
        $c->add("siteId", $this->siteId, "!=");
        $c->add("status", "validated");

        if (Config::get("similarSiteKeywordMatch")) {
            if (empty($this->keywords)) {
                return array();
            }
            $keywordIds = implode(",", array_keys($this->keywords));
            $prefix = Config::get("DB_PREFIX");

            $c->add("EXISTS(SELECT * FROM " . $prefix . "keywordsofsites
                     WHERE " . $prefix . "keywordsofsites.siteId=" . $prefix . "sites.siteId AND keywordId IN ($keywordIds))");
        }

        $c->addOrder("RAND()");
        $c->setLimit(Config::get("randomSitesInDetailsCount"));
        $siteModel = Model::factoryInstance("site");
        $sites = $siteModel->findAll($c, "siteId, siteTitle, description, categoryId");

        if (Config::get("advancedUrlRewritingEnabled")) {
            $siteModel->attachParents($sites);
        }

        return $sites;
    }

    function getKeywords($onlyIds = false)
    {
        $values = array();

        if (!$this->haveKeywords) {
            return $values;
        }

        $c = new Criteria();
        $c->add("siteId", $this->siteId);

        if ($onlyIds) {
            $field = "keywordId";
        } else {
            $field = "keywords.keywordId, keyword";
            $c->addInnerJoin("keywords", "keywords.keywordId", "keywordsofsites.keywordId");
        }

        foreach (Model::factoryInstance("keywordsOfSite")->findAll($c, $field) as $keyword) {
            if ($onlyIds) {
                $values[] = $keyword['keywordId'];
            } else {
                $values[] = $keyword;
            }
        }

        return $values;
    }

    private function getThumbGeneratorSiteUrl()
    {
        $thumbsGeneratorUrl = Config::get("thumbsGeneratorUrl");

        if (stripos($thumbsGeneratorUrl, "[url]") !== false) {
            $url = str_ireplace("[url]", $this->url, $thumbsGeneratorUrl);
        } else {
            $url = $thumbsGeneratorUrl . $this->url;
        }

        return $url;
    }

    function downloadAndCacheThumb($forced = false)
    {
        $imageFileName = Config::get("SITES_THUMBS_PATH") . $this->siteId . ".jpg";

        if (!file_exists($imageFileName) || $forced) {
            if (!Config::get("thumbsGeneratorUrl")) {
                throw new Exception("thumbsGeneratorUrl not set");
            }

            $url = $this->getThumbGeneratorSiteUrl();
            $httpClient = new HttpClient();
            $thumbImage = $httpClient->getSiteContent($url, false, true, true);

            if ($thumbImage) {
                file_put_contents($imageFileName, $thumbImage);
            }
        }
    }

    function deleteImage()
    {
        $thumbsPath = Config::get("SITES_THUMBS_PATH");

        if (!empty($this->imageSrc)) {
            $oldFilePath = $thumbsPath . basename($this->imageSrc);

            if (file_exists($oldFilePath)) {
                unlink($oldFilePath);
            }

            $this->imageSrc = "";
        }
    }

    function updateAscreen()
    {
        $thumbsPath = Config::get("SITES_THUMBS_PATH");

        $im = @imagecreatefromjpeg(rtrim($this->url, "/") . "/ascreen.jpg");

        if (!empty($im) && @imagesx($im) <= 250 && @imagesy($im) <= 200) {
            do {
                // select new random name
                $imgSrc = rand(100000000000000000, 9999999999999999999) . ".jpg";
                $path = $thumbsPath . $imgSrc;
            } while (file_exists($path)); // while this name is already busy

            imagejpeg($im, $path, 90);

            $this->deleteImage();

            $this->imageSrc = $imgSrc;
            $this->ascreen = 1;
        }
    }

    function getDefaultImageSrc()
    {
        return AppRouter::getResourceUrl("/uploads/images_thumbs/default.jpg");
    }

    function getThumbnailSrc($canBeOverwrittenByGalleryImage = true)
    {
        if ($canBeOverwrittenByGalleryImage && (empty($this->url) || (Config::get("firstGalleryImageForThumbEnabled") && $this->firstGalleryImageSrc))) {
            if ($this->firstGalleryImageSrc) {
                return AppRouter::getResourceUrl("/uploads/images_thumbs/" . UploadedFile::fileNameToPath($this->firstGalleryImageSrc) . $this->firstGalleryImageSrc);
            } else {
                return $this->getDefaultImageSrc();
            }
        }

        $siteId = $this->siteId;

        if ($this->imageSrc) {
            return AppRouter::getResourceUrl("/uploads/images_thumbs/" . $this->imageSrc);
        } else {
            if (empty($this->url)) {
                return $this->getDefaultImageSrc();
            } else {
                if (Config::get('cacheSiteImagesEnabled') == 1) {
                    $fileName = $siteId . '.jpg';
                    $filePath = Config::get("SITES_THUMBS_PATH") . $fileName;

                    if (file_exists($filePath)) {
                        return AppRouter::getResourceUrl("/uploads/images_thumbs/" . $fileName);
                    } else {
                        return AppRouter::getRewrittedUrl("/site/getThumb/" . $siteId);
                    }
                } else {
                    if (Config::get("thumbsGeneratorUrl")) {
                        return $this->getThumbGeneratorSiteUrl();
                    } else {
                        return $this->getDefaultImageSrc();
                    }
                }
            }
        }
    }

    function updatePhotos()
    {
        $c = new Criteria();
        $c->add("itemId", $this->siteId);

        $imageSrc = "";
        $photosCount = Model::factoryInstance("photo")->getCount($c);

        if ($photosCount) {
            $c->addOrder("photoId");
            $c->setLimit(1);
            $imageSrc = Model::factoryInstance("photo")->get("src", $c);
        }

        $data = array("firstGalleryImageSrc" => $imageSrc,
                      "photosCount"          => $photosCount);

        Model::factoryInstance("site")->updateByPk($data, $this->siteId);
    }

    function getGoogleMap()
    {
        if (!Config::get("googleMapEnabled")
            || empty($this->address)
            || empty($this->city)
            || empty($this->country)
        ) {
            return false;
        }

        $googleMap = new GoogleMap();
        $googleMap->setAPIKey(Config::get("googleMapKey"));
        $googleMap->setZoomLevel(Config::get("googleMapZoom"));

        $longAddress = $this->address . ", " . $this->city . ", " . $this->country;

        if (!is_null($this->lat) && !is_null($this->lng)) {
            $googleMap->addGeoPoint($this->lat, $this->lng, $longAddress);
        } else {
            $point = $googleMap->addAddress($longAddress);

            if ($point !== false) {
                Model::factoryInstance("site")->updateByPk($point, $this->siteId);
            }
        }

        // No valid points for google map then search by zipCode City
        if (!$googleMap->validPointsExists()) {
            $googleMap->addAddress($this->zipCode . ", " . $this->city . ", " . $this->country);
        }

        // No valid points for google map then search by country
        if (!$googleMap->validPointsExists()) {
            $googleMap->addAddress($this->country);
            $googleMap->setZoomLevel(12);
        }

        // If any valid points for google map then display the map
        $map = $googleMap->getScriptCode();

        if ($googleMap->validPointsExists()) {
            $map .= $googleMap->getMapCode();
            return $map;
        }

        $googleMap->setZoomLevel(Config::get("googleMapZoom"));

        if ($googleMap->isServiceProblem()) {
            $map .= $googleMap->getUserSideMapCode($this->address . ", " . $this->city . ", " . $this->country);
            return $map;
        }

        return false;
    }
}

Je vais pas y arriver meme avec le v2 :cry: en faite j'aurais voulus placer le top référents entre le "ou, quoi" et les catégorie avec icones.
ca regarde personne
jalbalo
 
Messages: 235
Inscription: Sam 3 Oct 2009 18:56

Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede Gargouille » Dim 21 Fév 2010 17:50

Bonjour,

Oui, c'est vrai qu'il n'y est pas d'origine... !

pour aide, tu recherches le code qui commence par ça dans ton SiteModel :
Code: Tout sélectionner
function getForbiddenRule()
    {
        $prefix = Config::get("DB_PREFIX");


et tu places le code suivant juste avant (par exemple) :
Code: Tout sélectionner
   function getValidatedTopReferrersSites($limit = null)
    {
        $c = new Criteria();
        $c->add("referrerTimes", 0, ">");
        $c->add("status", "validated");
        $c->add($this->getForbiddenRule());
        $c->addOrder("referrerTimes DESC");
        $limit = (int)$limit;
if (0 >= $limit)
{
    $limit = Config::get('maxTopReferrersCount');
}
$c->setLimit($limit);
        return $this->selectWithNewFlag($c, "siteId, sites.url, imageSrc, siteTitle, description, referrerTimes, countryCode");
    }


Voilà pour ton SiteModel.

Franck.
Gargouille
 
Messages: 56
Inscription: Dim 23 Aoû 2009 04:53
Localisation: Reims

Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede jalbalo » Dim 21 Fév 2010 18:33

Merci de ton aide, bon j'ai fait comme tu ma dit et suivis le tuto mais quand je pose la ligne :
Code: Tout sélectionner
{"site/topReferrers/leftMenu/4"|action}
dans mon templates/arfooo/main/index.php mais je ne vois rien il n'est pas en index
ca regarde personne
jalbalo
 
Messages: 235
Inscription: Sam 3 Oct 2009 18:56

Re: Tutoriel: Afficher le top referrers (menu, index...)

Messagede Gargouille » Dim 21 Fév 2010 21:01

Je ne sais plus si c'est une installe toute neuve que tu as fait, mais au cas ou oui, pense à mettre quelques visiteurs envoyés dans quelques sites, sinon, rien ne s'affichera... et pense à vider le cache une fois fait (si tel n'était pas le cas !).

Franck
Gargouille
 
Messages: 56
Inscription: Dim 23 Aoû 2009 04:53
Localisation: Reims

PrécédenteSuivante

Retourner vers Templates, plugins et tutoriels

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

 
Copyright © arfooo.com  2007 - 2011  -  Tous droits réservés  -  Partenaires de confiance
Sites du groupe: petites annonces gratuites   voyance en direct - tirage tarot   Consultant en référencement
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group | phpBB SEO Traduction par: phpBB-fr.com
cron