Bienvenus à tous dans le forum SEO de la famille de liens internes, la convivialité est le maître mot de ce forum, partage, bons plans, aides et conseils sur tout ce qui touche le référencement, l'édition et le développement sont de mises sur ce forum.
Le forum liens internes est axé sur le référencement naturel SEO et dans l’aide apporté à la création de sites et des métiers du web
Chacun à sa place dans la famille, du débutant au professionnel averti, alors venez partager et discuter avec les membres de la grande famille des professionnels du web




Utilisation et information sur Wordpress, Phpbb, etc.

Tout comprendre et connaitre sur les nombreux templates que vous pouvez connaitre, vous avez des conseils à donnez, des questions à poser, des astuces un coup de main, alors soyez prêt à plonger et à relever vos manches, venez faire un petit tour par ici.
3 messages • Page 1 sur 1

Re: Débugger Arfooo

Messagepar zetop » Dim 19 Jan 2014 10:50

Salut Fredo,

Dans le fichier j'ai la même ligne que toi alors est-ce que le problème vient vraiment de cette ligne ... ?
chez moi ca a l'air de fonctionner les commentaires ...

le fichier en entier :

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 SiteController extends AppController
{
    /**
     * Get random sites on index page
     */
    function newSitesAction()
    {
        //set adPage for ads
        Display::set("adPage", "news");
        $this->set("newSites", $this->siteList->getNewValidatedSitesIndex());
    }

    function randomListAction()
    {
        $cache = Cacher::getInstance();

        //get last time generated
        $generationDate = Config::get('selectionGenerationDate');

        $period = Config::get('selectionPeriod');
        $todayDate = date("Y-m-d");

        //if doesn't exists last refresh or is overtime
        $refreshNeeded = (!preg_match('#^[0-9]{4}-[0-9]{2}-[0-9]{2}$#', $generationDate) || strtotime($generationDate . "+" . $period . " days") <= strtotime($todayDate));

        $cacheItemName = "indexRandomSites" . Config::get("language") . "Template" . Config::get("templateName");

        //if force refresh or cache donesn't exists
        if ($refreshNeeded || ($indexRandomSitesHtml = $cache->load($cacheItemName, false)) === null) {
            $data = $this->siteList->getIndexRandomList($refreshNeeded);
            $this->set("randomSites", $data);
            $indexRandomSitesHtml = $this->render();
            $cache->save($indexRandomSitesHtml, $cacheItemName, false, array("site", "setting"));
        }

        return $indexRandomSitesHtml;
    }

    /**
     * Display news sites
     */
    function newsAction()
    {
        if (!Config::get("newsEnabled")) {
            $this->return404();
        }
        //set adPage for ads
        Display::set("adPage", "news");
        $this->set("newSites", $this->siteList->getNewValidatedSites());
    }

    /**
     * Display sites inside this specified category
     */
    function categoryAction($categoryId, $urlName, $page = 1)
    {
        $page = intval($page);
        $c = new Criteria();

        if (Config::get("advancedUrlRewritingEnabled") && empty($categoryId)) {
            if (empty($urlName)) {
                $this->return404();
            }

            $c->add("urlName", $urlName);
        } else {
            if (empty($categoryId)) {
                $this->return404();
            }

            $c->add("categoryId", $categoryId);
        }

        $category = $this->category->find($c);

        if (empty($category)) {

            if (Config::get("advancedUrlRewritingEnabled")) {
                $rewrite = $this->rewrite->findByPk($urlName);

                if ($rewrite) {
                    $this->redirect(AppRouter::getRewrittedUrl('/' . $rewrite->rewrittedUrl . '/'), 301);
                }
            }

            $this->return404();
        }

        if ($categoryId && Config::get("advancedUrlRewritingEnabled")) {
            $category->page = $page;
            $this->redirect(AppRouter::getObjectUrl($category, "category"), 301);
        }

        $categoryId = $category->categoryId;

        //set adPage for ads
        Display::set("adPage", "category" . $categoryId);

        //set current category for included menus, categories listings
        Display::set("currentCategoryId", $categoryId);
        Display::set("categoryRssHref", AppRouter::getRewrittedUrl("/rss/category/$categoryId"));

        if (!Config::get("advancedUrlRewritingEnabled")
            && NameTool::strToAscii($category->name) != $urlName
        ) {
            $category->page = $page;
            $this->redirect(AppRouter::getObjectUrl($category, "category"), 301);
        }

        //set cookie for future use during site submistion to select last category
        setcookie('lastVisitedCategoryId', $categoryId);

        //get validated sites in this category
        $sites = $this->siteList->getValidatedSitesInCategory($categoryId, $page);

        $this->set("category", $category);
        $this->set("categoryParentsData", $this->category->getParents($categoryId));
        $this->set("siteCategoryLink", $this->moduleLink("category/"));
        $this->set("sitesInCategory", $sites);

        //prepare pagination data
        $c = new Criteria();
        $c->add("categoryId", $categoryId);
        $c->add("status", "validated");

        $totalPages = ceil($this->site->getCount($c) / Config::get("sitesPerPageInCategory"));

        $urlName = Config::get("advancedUrlRewritingEnabled") ? $category->urlName : NameTool::strToAscii($category->name);

        $this->set("pageNavigation", array("baseLink" => "/site/category/$categoryId/$urlName/",
                                           "totalPages" => $totalPages,
                                           "currentPage" => $page,
                                           "title" => $category->name));
    }

    /**
     * Display sites which have specified keyword
     */
    function keywordAction($keywordId, $name, $page)
    {
        //if this action is disabled
        if (!Config::get('keywordsEnabled')) {
            return $this->return404();
        }

        //set adPage for ads
        Display::set("adPage", "keyword" . $keywordId);

        //get keyword data
        $keyword = $this->keyword->findByPk($keywordId);
        $this->set("keyword", $keyword);

        if (empty($keyword)) {
            return $this->return404();
        }

        if (NameTool::strToAscii($keyword->keyword) != $name) {
            $keyword->page = $page;
            $this->redirect(AppRouter::getObjectUrl($keyword, "keyword"), 301);
        }

        //get sites which containt this keyword
        $keywordSites = $this->siteList->getSitesThatOwnAKeyword($keywordId, $page);
        $this->set("keywordSites", $keywordSites);

        //prepare pagination data
        $c = new Criteria();
        $c->add("status", "validated");
        $c->addInnerJoin("keywordsofsites", "keywordsofsites.siteId", "sites.siteId");
        $c->add("keywordsofsites.keywordId", $keywordId);

        $totalPages = ceil($this->site->getCount($c) / Config::get("sitesPerPageInKeywords"));

        $this->set("pageNavigation", array("baseLink" => "/site/keyword/$keywordId/$name/",
                                           "totalPages" => $totalPages,
                                           "currentPage" => $page,
                                           "title" => $keyword->keyword));
    }

    /**
     * Display Top hits sites
     */
    function topHitsAction()
    {
        //if this action is disabled
        if (!Config::get("hitsEnabled")) {
            return $this->return404();
        }

        //set adPage for ads
        Display::set("adPage", "topHits");

        //will display hitsCount on included /site/item.tpl
        Display::set("hitsCountInListItem", true);

        $this->set("topHitSites", $this->siteList->getValidatedTopVisitedSites());
    }

    /**
     * Display Top notes sites
     */
    function topNotesAction()
    {
        //if this action is disabled
        if (!Config::get("notationsEnabled")) {
            return $this->return404();
        }

        //set adPage for ads
        Display::set("adPage", "topNotes");

        //will display notesCount on included /site/item.tpl
        Display::set("notesCountInListItem", true);

        //retrieve validated top notes sites
        $this->set("topNoteSites", $this->siteList->getValidatedTopElectedSites());
    }

    /**
     * Display Top rank sites
     */
    function topRankAction($pageRank = false)
    {
        //if this action is disabled
        if (!Config::get("topRankEnabled")) {
            return $this->return404();
        }

        //check correct pageRank range
        if ($pageRank && ((int) $pageRank < 1 || (int) $pageRank > 10)) {
            return $this->return404();
        }

        //set adPage for ads
        Display::set("adPage", "topRank");

        //will display pageRankImg on included /site/item.tpl
        Display::set("pageRankImgInListItem", true);
        $this->set("pageRank", $pageRank);

        //get validated top rank sites
        $this->set("topRankSites", $this->siteList->getValidatedTopRankSites($pageRank));
    }

    /**
     * Display Top referrers sites
     */
    function topReferrersAction()
    {
        //if this action is disabled
        if (!Config::get("topReferrersEnabled")) {
            return $this->return404();
        }

        //set adPage for ads
        Display::set("adPage", "topReferrers");

        //will display referrersCount on included /site/item.tpl
        Display::set("referrersCountInListItem", true);

        $this->otherReferrerSite->checkReset();
        //get validated topReferrers
        $this->set("topReferrerSites", $this->siteList->getValidatedTopReferrersSites());
    }

    /**
     * Display site details page
     */
    function detailsAction($siteId, $niceUrl)
    {
        //set adPage for ads
        Display::set("adPage", "site" . $siteId);

        $cache = Cacher::getInstance();
        $cacheLifeTime = Config::get("siteDetailsCacheLifeTime");

        if (!Config::get("siteDetailsCacheEnabled")
            || ($site = $cache->load("siteDetails$siteId", true, $cacheLifeTime)) === null
        ) {
            //get site data
            $site = $this->site->getSiteWithDetails($siteId);
            if (empty($site) || $site->status != "validated") {
                return $this->return404();
            }

            $this->site->attachParents($site);

            //check passed siteTitle is url is correct
            $siteDetailsUrl = AppRouter::getObjectUrl($site, "siteDetails");
            if ($siteDetailsUrl != $_SERVER['REQUEST_URI']) {
                $this->redirect($siteDetailsUrl, 301);
            }

            $this->site->attachExtraFields($site);
            $site->photos = $this->photo->getItemPhotos($siteId);

            //get site keywords
            $site->keywords = $site->getKeywords();

            //get google details
            $googleStats = new GoogleStats();
            $results = $googleStats->getGoogleDetailsOfSiteIfCached($site->url);

            //if results exists pass them to template
            if ($results) {
                $site->pageRank = $results['pageRank'];
                $site->backlinksCount = $results['backlinksCount'];
                $site->indexedPagesCount = $results['indexedPagesCount'];
            } else {
                //if no use ajax to reduce site generation time
                $this->set("ajaxGoogleDetails", true);
            }

            if (Config::get("showRandomSitesInDetails")) {
                $site->randomSites = $site->getSimilarSites();
            }

            $site->comments = $this->comment->getSiteValidatedComments($siteId);

            if (Config::get("siteDetailsCacheEnabled")) {
                $cache->save($site, null, null, array("site", "site" . $siteId));
            }
        } else {
            //check passed siteTitle is url is correct
            $siteDetailsUrl = AppRouter::getObjectUrl($site, "siteDetails");
            if ($siteDetailsUrl != $_SERVER['REQUEST_URI']) {
                $this->redirect($siteDetailsUrl, 301);
            }
        }

        //set category id where site is placed to retrieve predefinitions in ads module
        Display::set("adSiteCategoryId", $site->categoryId);

        //set site rss href
        Display::set("siteRssHref", AppRouter::getRewrittedUrl("/rss/site/".$site->siteId));

        //set META keywords in HEAD section
        $this->set("metaKeywords", implode(", ", array_map(create_function('$a', 'return $a["keyword"];'), $site->keywords)));

        //set META description in HEAD section
        $this->set("metaDescription", utf8_substr(preg_replace("#\r?\n#", "", strip_tags($site->description)), 0, 200));

        //check passed siteTitle is url is correct
        $siteDetailsUrl = AppRouter::getObjectUrl($site, "siteDetails");
        if ($siteDetailsUrl != $_SERVER['REQUEST_URI']) {
            $this->redirect($siteDetailsUrl, 301);
        }

        $this->siteHtml->configureSiteHtmlDisplay($site);

        //set site data
        $this->set("site", $site);

        if (Config::get("googleMapEnabled")) {
            $this->set("googleMap", $site->getGoogleMap());
        }

        if (Config::get("remoteRssParsingEnabled") && !empty($site['rssFeedOfSite'])) {
            define("MAGPIE_OUTPUT_ENCODING", "UTF-8");
            define("MAGPIE_DETECT_ENCODING", true);

            // Define cache's maximum age
            define('MAGPIE_CACHE_AGE', 60 * 60 * 24 * intval(Config::get('magpieRssCacheMaxAgeDays')));

            require_once (CODE_ROOT_DIR . 'components/magpierss/rss_fetch.php');
            $rss = @fetch_rss($site['rssFeedOfSite']);

            if (!empty($rss)) {

                $remoteRss = array("items" => array(), "channel" => $rss->channel);

                $items = array_slice($rss->items, 0, Config::get("numberOfItemsForRssParsing"));

                foreach ($items as $item) {
                    if (isset($item['description'])) {
                        // Strip tags from each item's description
                        $item['description'] = strip_tags(html_entity_decode($item['description'], ENT_COMPAT, 'UTF-8'));
                    }

                    if (!isset($item['link']) && isset($item['link_'])) {
                        $item['link'] = $item['link_'];
                    }

                    if (!empty($item['link']) && !empty($item['title'])) {
                        $remoteRss['items'][] = $item;
                    }
                }

                $this->set("remoteRss", $remoteRss);
            }
        }
    }

    /**
     * Retrieve google details and return result to ajaax query
     */
    function getGoogleDetailsAction()
    {
        $site = $this->site->findByPk($this->request->siteId, "url");
        if (empty($site)) {
            return $this->return404();
        }

        $googleStats = new GoogleStats();
        $results = $googleStats->getGoogleDetailsOfSite($site->url);

        $this->set($results);
        $this->viewClass = "JsonView";
    }

    /**
     * Display sites which contain tag
     */
    function tagAction($tagId, $tag, $page = 1)
    {
        $searchTag = $this->searchTag->findByPk($tagId);

        if (empty($searchTag)
            || NameTool::strToAscii($searchTag->tag) != $tag
            || $searchTag->banned
        ) {
            return $this->return404();
        }

        //set adPage for ads
        Display::set("adPage", "tag" . $tagId);
        $searchedSites = array();

        //get sites which containt searched phrase   
        $searchedSites = $this->siteSearcher->searchValidated(array("phrase" => $searchTag->tag), $page);

        //prepare data for pagination
        $totalPages = ceil($this->siteSearcher->getFoundRowsCount() / Config::get("sitesPerPageInSearch"));

        //set founded sites and paginations data
        $this->set("searchTag", $searchTag);
        $this->set("searchedSites", $searchedSites);
        $this->set("pageNavigation", array("baseLink" => "/site/tag/$tagId/" . NameTool::strToAscii($tag) . "/",
                                           "totalPages" => $totalPages,
                                           "currentPage" => $page,
                                           "title" => $tag));

    }

    /**
     * Display sites which containt searched phrase
     */
    function searchAction($searchQuery = "")
    {
        //set adPage for ads
        Display::set("adPage", "search");
        Display::set("searchPanel", true);

        $searchedItems = array();
        $this->request->fromArray($_GET);

        $searchValues = $this->request->toArray();
        $this->set("searchValuesJson", JsonView::php2js($searchValues));

        $page = !empty($this->request->page) ? $this->request->page : 1;
        $resultsCount = 0;

        //if something was searched
        if (!empty($searchValues)) {
            //get sites which containt searched phrase
            $searchedItems = $this->siteSearcher->searchValidated($searchValues, $page);
            $resultsCount = $this->siteSearcher->getFoundRowsCount();

            //if this phrase have matched sites save tag
            if (!empty($searchedItems) && !empty($this->request->phrase)) {
                $this->searchTag->addSearchTag($this->request->phrase, $searchedItems[0]);
            }

            $this->set('searchValues', $searchValues);
            //prepare data for pagination
            $totalPages = empty($searchedItems) ? 0 : ceil($resultsCount / Config::get("sitesPerPageInSearch"));
        } else {
            //nothing was searched
            $searchedItems = array();
            $totalPages = 0;
            $page = 1;
        }

        $this->set("resultsCount", $resultsCount);
        $this->set("searchedSites", $searchedItems);

        $searchArray = array();

        foreach (explode("&", ltrim($searchQuery, "?")) as $searchPair) {
            if (strpos($searchPair, "=") === false) {
                continue;
            }

            list ($key, $value) = explode("=", $searchPair);
            if (!$value || in_array($key, array("page", "search"))) {
                continue;
            }

            $searchArray[urldecode($key)] = urldecode($value);
        }

        $paginationBaseLink = "/site/search/?" . str_replace("%", "%%", http_build_query($searchArray)) . "&page=";

        $this->set("pageNavigation", array("baseLink" => $paginationBaseLink,
                                           "totalPages" => $totalPages,
                                           "currentPage" => $page));
    }

    /**
     * Action executed when user click on image, site link before he is redirected to it
     */
    function visitAction()
    {
        $this->autoRender = false;
        if (empty($this->request->siteId)) {
            return;
        }

        $siteId = $this->request->siteId;
        $currentDate = date('d.m.Y');
        $cookieName = md5('site' . $siteId);

        //if can count this vote
        $ip = $this->request->getIp();
        $type = "vis";

        if ((!isset($_COOKIE[$cookieName])
            || $_COOKIE[$cookieName] != $currentDate)
            && !$this->visit->exists($ip, $type, $siteId, 24)
        ) {
            $visit = new VisitRecord();
            $visit->ip = $ip;
            $visit->type = $type;
            $visit->id = $siteId;
            $visit->save();

            //set cookie to next midnight
            setcookie($cookieName, $currentDate, mktime(0, 0, 0, date('n'), date('j'), date('Y')) + 60 * 60 * 24);

            //save vote
            $this->hit->insertHit($ip, $siteId);
        }
    }

    /**
     * Action executed when donesn't exists cached site image and caching is ON
     * Retrieve image from external source and store it
     */
    function getThumbAction($siteId)
    {
        $site = $this->site->findByPk($siteId, "siteId, url, imageSrc");

        if (empty($site)) {
            $this->return404();
        }

        try {
            //download image and sotre it to cache
            $site->downloadAndCacheThumb();
            //get web path to that
            $site->updateImageSrc(false);
            $imageLocation = $site->imageSrc;
        } catch (Exception $e) {
            //if something goes wrong, generator timouts, wrong image display default
            $imageLocation = $site->getDefaultImageSrc();
        }

        //redirect to image location
        $this->redirect($imageLocation);
    }
   
   function topSitesAction()
    {
        //set adPage for ads
        Display::set("adPage", "top");
        $this->set("topSites", $this->siteList->getValidatedTopVisitedSitesIndex());
    }
}
Avatar de l’utilisateur
zetop
 
Messages: 1309
Inscription: Ven 14 Juin 2013 11:02


annuaire et annonce santé

Re: Débugger Arfooo

Messagepar webrefs » Dim 19 Jan 2014 12:04

Salut fredo,

Avec si peu d'informations sur l'erreur ça va être difficile de trouver une solution.
Tu n'a pas une ligne d'erreur quelque part ?

Auquel cas il faudrait déjà commencer par la.

Vérifie que tu as bien l'affichage des erreurs activé dans ton core.php
Code: Tout sélectionner
ini_set("display_errors", 1);
error_reporting(E_ALL);


Afficher les erreurs PHP dans un fichier log :
Code: Tout sélectionner
<?php
// Afficher les erreurs
ini_set('display_errors', 1);
// Activer les logs d'erreur
ini_set('log_errors', 1);
// Ecrire les erreurs dans un fichier (créer le fichier et vérifier les droits d'écriture)
ini_set('error_log', dirname(__file__) . '/log_error_arfoo.txt');
// Afficher les erreurs et les avertissements
error_reporting(E_ALL);
?>


Inspecte également la page avec firebug ou chrome dans la console ou dans network/réseau, pour voir si il y a d'autres indices
Avatar de l’utilisateur
webrefs
 
Messages: 81
Inscription: Mer 26 Juin 2013 10:30

Re: Débugger Arfooo

Messagepar Yoda admin » Lun 20 Jan 2014 11:50

Aussi si tu as un outil pour vérifier et comparer ton arfooo avec un arfooo de base peut te permettre de voir si tu as une différence dans tes fichiers.
Avatar de l’utilisateur
Yoda admin
Administrateur du site
 
Messages: 720
Inscription: Jeu 13 Juin 2013 23:04


3 messages • Page 1 sur 1

Retourner vers Wordpress, Arfoo, phpBB3...

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

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

annuaire et annonce santé

cron