THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Je viens d'installer, avec succès a priori la version 1.5.1 RC3 de Thélia, et j'ai un problème à la racine du répertoire /admin_[...]/, la page qui permet de se loguer en administrateur.

J'obtient l'erreur suivante :

Fatal error: Call to a member function get_permalink() on a non-object

L'erreur fait référence à la ligne  du fichier admin/index.php:

$link=$item->get_permalink();

Cette fonction est pourtant bien définie dans le page requise par la page d'index :

require_once("../lib/simplepie.inc");

Je ne comprends pas bien quel peut être le problème.

Pour info je suis sous Wamp 2.1, Version de Apache:2.2.17,  Version de PHP:5.3.5


Est-ce que quelqu'un a déjà vu ça ? Toutes les suggestions sont bienvenues smile

Cordialement,
Théo

Offline


Bonsoir,

Regarde si tu as les bons droits sur les répertoires et fichiers concernés, peut-être le fichier qui cherche cette fonction n'arrive pas à y accéder.

J'aurais aussi penché pour un mauvais upload mais comme c'est en local...voir aussi s'il y a pas autre chose dans le log d'apache qui pourrait informer d'une erreur de configuration...

Nicolas.


Linux-live-cd.org
Serveur Linux / Thélia 1.5.x.x / Thélia 2.x.x
PHP 5.4.x / Mysql 5.5.x
Compte Twitter

Offline


Bonjour,

Merci pour ta réponse.
En théorie, je dirais que les droits devraient être corrects, ils sont gérés par Windows, à moins que le serveur Wamp n'utilise pas les droits de ma session ?

Y'a-t'il un moyen de vérifier l'accès au fichier via Wamp ?  Je vais essayer de trouver une manip à faire sur le fichier à partir d'une nouvelle page PHP, voir si j'ai un message d'erreur plus explicite.

Théo

[edit]Et rien d'alarmant dans les logs Appache. J'ai atteind le timeout d'exécution de scrip lors de l'install, mais j'ai changé le timeout et relancé l'install, c'est passé.


[edit2]Je peux afficher le contenu du fichier simplepie avec un file_get_contents, donc à moins que je me plante, ce n'est pas un problème de droits. Je vais essayer sur une autre machine ce week-end.

Last edited by Theo (07-10-2011 10:56:18)

Offline


Bonjour,

Sans changer de machine avec easyPHP, ça peut marcher.

ça doit pas être grand chose mais du coup pas facile à trouver...

Tu as réussi d'autre install de CMS (drupal, spip..) sur ce serveur local.

La base de donnée s'est peut-être mal créer...


Nicolas.


Linux-live-cd.org
Serveur Linux / Thélia 1.5.x.x / Thélia 2.x.x
PHP 5.4.x / Mysql 5.5.x
Compte Twitter

Offline


Même chose avec Easy PHP 5.3.8.1, installé pour l'occasion.

Je n'avais jamais installé d'autre CMS sur ma machine pro, je vais retenter ma chance ce week-end sur ma machine perso.

Mais c'est étrange qu'en partant d'une version vierge d'Easy PHP et de Thélia personne n'ait jamais rencontré le même problème que moi :-/

Pour la base de données, elle semble bonne, en tout cas rien n'indique que sa création a été corrompue.

Théo

Offline


Idée : ta machine ne permet pas de lire le flux http://blog.thelia.net/rss.php?cat=General.

Du coup, une initialisation se passe mal, et comme le contrôle d'erreur est... absent, ça plante.

Voici une version de index.php qui fonctionnera. Je la commite dans le SVN, elle fera partie de la 1.5.1 finale :

<?php
	@ini_set('default_socket_timeout', 5);

	require_once("pre.php");
	require_once("../classes/Administrateur.class.php");

	session_start();

	header("Content-type: text/html; charset=utf-8");

	if(isset($action))
		if($action == "deconnexion") unset($_SESSION["util"]);

	require_once("../lib/simplepie.inc");

	function couperTexte($texte, $nbcar){

		if (strlen($texte) < $nbcar) return $texte;

        $res = "";

        $mots = explode(" ", $texte);

        foreach($mots as $mot) {

        	$tmp = "$res $mot";

        	if (strlen($tmp) > $nbcar) break;

        	$res = $tmp;
        }

        return $res . "...";
	}

	function lire_feed($url) {

		$feed = new SimplePie();
		$feed->set_feed_url($url);
		$feed->init();
		$feed->handle_content_type();

		$tab = $feed->get_items();

		return (count($tab) > 0) ? $tab[0] : false;
	}

	function afficher_feed($url, $picto) {

		$item = lire_feed($url);

		if ($item !== false) {

			$link = $item->get_permalink();

			$title = strip_tags($item->get_title());
			$author = strip_tags($item->get_author());
			$description = $item->get_description();
			$date = $item->get_date('d/m/Y');

			?>
			<div class="Bloc_news_index">

				<div class="picto"><img src="gfx/<?php echo $picto ?>" /></div>

				<ul class="texte">
					<li class="date"><?php echo($date); ?></li>
					<li class="titre"><a href="<?php echo($link); ?>" target="_blank"><?php echo $title; ?></a></li>
					<li><?php echo couperTexte($description, 150); ?></li>
				</ul>
			</div>
			<?php
		}
	}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<?php require_once("title.php");?>
</head>

<body>
	<div id="wrapper">
		<div id="subwrapper">
			<div id="entete">
				<div class="logo">
					<a href="accueil.php"><img src="gfx/thelia_logo.jpg" alt="THELIA solution e-commerce" /></a>
				</div>

				<div id="menuGeneral">
					<div id="formConnex">
				       		<form action="accueil.php" method="post" id="formulaire">
				       			Nom d'utilisateur :
				             	<input name="identifiant" type="text" class="form" size="19" />
				          		Mot de passe :
				             	<input name="motdepasse" type="password" class="form" size="19" />
				             	<input name="action" type="hidden" value="identifier" />
				         		<input type="submit" value="valider"/>
				         	</form>
				     </div>
				</div>

				<div id="contenu_int">
					<?php
					afficher_feed("http://blog.thelia.net/rss.php?cat=Formation", "picto-formation.gif");
					afficher_feed("http://blog.thelia.net/rss.php?cat=General"  , "picto-news.gif");
					afficher_feed("http://blog.thelia.net/rss.php?cat=Securite" , "picto-alertes.gif");
					?>
				</div>
			</div>

			<?php require_once("pied.php");?>
		</div>
	</div>
</body>
</html>

Last edited by roadster31 (09-10-2011 12:16:51)


OpenStudio Toulouse

Offline


Hello,

Ca m'avait traversé l'esprit effectivement, du coup j'avais essayé de lancer directement le flux sur mon browser, et j'avais pu l'afficher. Mais je ne sais pas si ce test était vraiment révélateur.

Pas encore eu l'occasion de tester sur ma machine perso, j’essaierai de le faire ce soir, et sinon je tenterai de remplacer mon index par le tiens demain.

Merci en tous cas,
Théo