Easy-Design.Net forum




Aide générale [Réglé] [PBTV5] Problème d'url avec Upload & news invisibles

m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 20/02/2016 à 09h29
Bonjour.

J'ai posté ce message sur le site off, mais n'ayant pas de réponses, je me retourne ici, sans savoir si quelqu'un pourra m'aider..

Je galère un peu à trouver une solution .. Je voulais refaire une installation, mais je préfère tout de même rapporter un problème, et j'espère, trouver enfin une solution.

En effet, voici mes deux problèmes majeur.

- Lorsque je met une image sur le site via le support upload, aucune images apparaissent (L'url n'est pas valide, et me met /upload/image.jpg au lieu de xx/upload/image.jpg) .. Pourtant dans la configuration avancée du site, j'ai bien mon domaine, et le répertoire annoncé.

Lorsque je regarde les photos depuis l'upload, je peux les voir. Mais si j'insère dans le forum, news, il me manque le répertoire précédent (le répertoire ou se trouve le site).

Que faire?

- Autre problème concernant le module news .. Lorsque je suis en visiteur, aucune news apparaissent, et cela m'indique :

Code TEXT :
Le contenu de cette page est protégé. Veuillez vous inscrire ou vous connecter sur le site pour y accéder.


Pourtant dans la configuration du module, j'ai bien la lecture pour visiteur, les catégories aussi ect .. (On ne peut plus régler les permissions des modules via la gestion des modules a priori !)

Je ne sais pas quoi faire pour les faire apparaitre. Aucun problème avec le forum, et autres.

Lien (site pour une association, ce n'est pas l'url définitive, je travail juste sur mon espace web) : http://planet-truck.fr/arc

Merci par avance.

:top
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 20/02/2016 à 09h49
Bonjour,

pour la V5 je ne peu que t'encourager à rester sur le forum officiel pour ce genre de problème (hors design), surtout que tu as posté hier à 21h31, donc normale qu'il n'y est pas encore de réponse vu que perso j'ai pas encore eu le temps de tester.

Cordialement, janus57
   
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 20/02/2016 à 10h01
C'est en parti pour ça que j'ai écris en premier. Mais bon, j'ai vu e problème hier en présence du président du club, ça fous mal mdr ..
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 20/02/2016 à 10h06
Bonjour,

malheureusement des bug cela arrive tout le temps et visiblement personne n'avais testé cette partie ou dans cette configuration donc tu as le premier à tomber dessus ou au minimum à le remonter.

Au passage je viens de faire des tests et donc tu as la réponse sur le site officiel.

Cordialement, janus57
   
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 20/02/2016 à 13h26
J'ai vu, merci bien :top
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 20/02/2016 à 22h51
Je tiens informé l'avancement des problèmes ..

Janus57 à trouvé le défaut des actus dû à php5.3 au lieu de php5.4 sur le serveur. Chose rétablie.
Concernant l'upload, c'est un bug encore non résolu .. Si je site se trouve à la racine, pas de problème, mais s'il se trouve dans un autre répertoire (../site/upload), le lien une fois sur une actu / forum, ne suivra pas au delà de la racine du serveur.

Janus à remonté le bug.

A suivre et merci à lui pour son intérêt :top Edité par m-ickael Le 21/02/2016 à 09h28
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 20/02/2016 à 23h54
Bonjour,

PHP 5.3 et non PHP3 ou PHP4 (qui existe encore sur certains serveurs), et sinon pour le moment c'est une hypothèse car une autre personne a rencontré les même problème en PHP5.3 et ont disparus en PHP 5.6 mais là c'était sur une V4.1 (mais la V5 est pareil niveau gestion des autorisations il me semble).

Sinon pour le problème de lien suffit de rajouter le chemin du site à la main (chiant mais possible en attendant la correction).

Cordialement, janus57
   
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 21/02/2016 à 09h27
Salut.

Non pour l'upload, il retransforme le lien automatiquement après validation en /racine/upload/fichier.rar

J'ai déjà essayé :)
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 21/02/2016 à 13h43
m-ickael:
Salut.

Non pour l'upload, il retransforme le lien automatiquement après validation en /racine/upload/fichier.rar

J'ai déjà essayé :)

Bonjour,

pas de chance je viens d'essayer et le lien n'est pas modifié ;)

Cordialement, janus57
   
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 21/02/2016 à 14h03
Ah effectivement, j'avais oublié de mettre " / " devant " arc " :D Merci du tuyau ! Edité par m-ickael Le 21/02/2016 à 14h04
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 22/02/2016 à 09h38
Salut.

Pour l'upload c'est réparé :)

Pour les personnes en V5, voici la démarche à suivre :

Modifier le fichier :

/kernel/framework/content/formatting/parser/ContentSecondParser.class.php

par :

Code PHP :
<?php
/*##################################################
 *                       ContentSecondParser.class.php
 *                            -------------------
 *   begin                : August 10, 2008
 *   copyright            : (C) 2008 Benoit Sautel
 *   email                : [email protected]
 *
 *
 ###################################################
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
 ###################################################*/
 
/**
 * @package {@package}
 * @desc This class ensures the real time processing of the content. The major part of the processing is saved in the database to minimize as much as possible the treatment
 * when the content is displayed. However, some tags cannot be cached, because we cannot have return to the original code. It's for instance the case of the code tag
 * which replaces the code by a lot of html code which formats the code.
 * This kind of tag is treated in real time by this class.
 * The content you put in that parser must come from a ContentFormattingParser class (BBCodeParser or TinyMCEParser) (it can have been saved in a database between the first parsing and the real time parsing).
 * @author Benoît Sautel <[email protected]>
 */
class ContentSecondParser extends AbstractParser
{
    /**
     * Maximal number of characters that can be inserted in the [code] tag. After that, GeSHi has many difficulties to highligth and has the PHP execution stop (error 500).
     */
    const MAX_CODE_LENGTH = 40000;
    /**
     * @desc Builds a ContentSecondParser object
     */
    public function __construct()
    {
        parent::__construct();
    }
 
    /**
     * @desc Parses the content of the parser. The result will be ready to be displayed.
     */
    public function parse()
    {
        //Relative url parsing
        $this->content = preg_replace_callback('`(src|href)="/([A-Za-z0-9-_./]+)"`sU', array($this, 'callbackrelative_url'), $this->content);
 
        //Balise code
        if (strpos($this->content, '[[CODE') !== false)
        {
            $this->content = preg_replace_callback('`[[CODE(?:=([A-Za-z0-9#+-]+))?(?:,(0|1)(?:,(0|1))?)?]](.+)
`sU', array($this, 'callbackhighlight_code'), $this->content); } //Media if (strpos($this->content, '[[MEDIA]]') !== false) { $this->process_media_insertion(); } //Balise latex. if (strpos($this->content, '') !== false)
        {
            $server_config = new ServerConfiguration();
            if ($server_config->has_gd_library())
            {
                require_once PATH_TO_ROOT . '/kernel/lib/php/mathpublisher/mathpublisher.php';
                $this->content = preg_replace_callback('`[[MATH]](.+)`sU', array($this, 'math_code'), $this->content); } } $this->parse_feed_tag(); } /** * @desc Transforms a PHPBoost HTML content to make it exportable and usable every where in the web. * @param string $html Content to transform * @return string The exportable content */ public static function export_html_text($html_content) { //Balise vidéo $html_content = preg_replace('` `isU', ' ', $html_content); return Url::html_convert_root_relative2absolute($html_content); } /** * @desc Highlights a content in a supported language using the appropriate syntax highlighter. * The highlighted languages are numerous: actionscript, asm, asp, bash, c, cpp, csharp, css, d, delphi, fortran, html, * java, javascript, latex, lua, matlab, mysql, pascal, perl, php, python, rails, ruby, sql, text, vb, xml, * PHPBoost templates and PHPBoost BBCode. * @param string $contents Content to highlight * @param string $language Language name * @param bool $line_number Indicate whether or not the line number must be added to the code. * @param bool $inline_code Indicate if the code is multi line. */ private static function highlight_code($contents, $language, $line_number, $inline_code) { $contents = TextHelper::htmlspecialchars_decode($contents); //BBCode PHPBoost if (strtolower($language) == 'bbcode') { $bbcode_highlighter = new BBCodeHighlighter(); $bbcode_highlighter->set_content($contents); $bbcode_highlighter->parse($inline_code); $contents = $bbcode_highlighter->get_content(); } //Templates PHPBoost elseif (strtolower($language) == 'tpl' || strtolower($language) == 'template') { require_once(PATH_TO_ROOT . '/kernel/lib/php/geshi/geshi.php'); $template_highlighter = new TemplateHighlighter(); $template_highlighter->set_content($contents); $template_highlighter->parse($line_number ? GESHI_NORMAL_LINE_NUMBERS : GESHI_NO_LINE_NUMBERS, $inline_code); $contents = $template_highlighter->get_content(); } elseif ( strtolower($language) == 'plain') { $plain_code_highlighter = new PlainCodeHighlighter(); $plain_code_highlighter->set_content($contents); $plain_code_highlighter->parse(); $contents = $plain_code_highlighter->get_content(); } elseif ($language != '') { require_once(PATH_TO_ROOT . '/kernel/lib/php/geshi/geshi.php'); $Geshi = new GeSHi($contents, $language); if ($line_number) //Affichage des numéros de lignes. { $Geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); } //No container if we are in an inline tag if ($inline_code) { $Geshi->set_header_type(GESHI_HEADER_NONE); } $contents = '
' . $Geshi->parse_code() . '
'; } else { $highlight = highlight_string($contents, true); $font_replace = str_replace(array(''), array(''), $highlight); $contents = preg_replace('`color="(.*?)"`', 'style="color:$1"', $font_replace); } return $contents; } /** * @static * @desc Displays the url correctly when PHPBoost is installed in a sub-folder * @return string the relative url */ private function callbackrelative_url($matches) { return $matches[1] . '="' . Url::to_rel('/' . $matches[2]) . '"'; } /** * @static * @desc Handler which highlights a string matched by the preg_replace_callback function. * @param string[] $matches The matched contents: 0 => the whole string, 1 => the language, 2 => number count?, * 3 => multi line?, 4 => the code to highlight. * @return string the colored content */ private function callbackhighlight_code($matches) { $line_number = !empty($matches[2]); $inline_code = !empty($matches[3]); $content_to_highlight = $matches[4]; if (strlen($content_to_highlight) > self::MAX_CODE_LENGTH) { return '
' . LangLoader::get_message('code_too_long_error', 'editor-common') . '
'; } $contents = $this->highlight_code($content_to_highlight, $matches[1], $line_number, $inline_code); if (!$inline_code && !empty($matches[1])) { $contents = '' . sprintf(LangLoader::get_message('code_langage', 'main'), strtoupper($matches[1])) . '
' . $contents .'
'; } else if (!$inline_code && empty($matches[1])) { $contents = '' . LangLoader::get_message('code_tag', 'main') . '
' . $contents . '
'; } return $contents; } /** * @static * @desc Parses the latex code and replaces it by an image containing the mathematic formula. * @param string[] $matches 0 => the whole tag, 1 => the latex code to parse. * @return string The code of the image containing the formula. */ private function math_code($matches) { $matches[1] = str_replace(' ', '', $matches[1]); $code = mathimage($matches[1], 12, '/images/maths/'); return $code; } /** * Processes the media insertion it replaces the [[MEDIA]]tag[[/MEDIA]] by the Javascript API correspondig calls. */ private function process_media_insertion() { //Swf $this->content = preg_replace_callback('`[[MEDIA]]insertSwfPlayer('([^']+)', ([0-9]+), ([0-9]+));[[/MEDIA]]`isU', array('ContentSecondParser', 'process_swf_tag'), $this->content); //Movie $this->content = preg_replace_callback('`[[MEDIA]]insertMoviePlayer('([^']+)', ([0-9]+), ([0-9]+));[[/MEDIA]]`isU', array('ContentSecondParser', 'process_movie_tag'), $this->content); //Sound $this->content = preg_replace_callback('`[[MEDIA]]insertSoundPlayer('([^']+)');[[/MEDIA]]`isU', array('ContentSecondParser', 'process_sound_tag'), $this->content); //Youtube $this->content = preg_replace_callback('`[[MEDIA]]insertYoutubePlayer('([^']+)', ([0-9]+), ([0-9]+));[[/MEDIA]]`isU', array('ContentSecondParser', 'process_youtube_tag'), $this->content); } /** * Inserts the javascript calls for the swf tag. * @param $matches The matched elements * @return The movie insertion code containing javascrpt calls */ private static function process_swf_tag($matches) { return "" . "" . "" . "" . "" . "" . "" . "" . "" . ""; } /** * Inserts the javascript calls for the movie tag. * @param $matches The matched elements * @return The movie insertion code containing javascrpt calls */ private static function process_movie_tag($matches) { $id = 'movie_' . AppContext::get_uid(); return ' ' . ''; } /** * Inserts the javascript calls for the sound tag. * @param $matches The matched elements * @return The movie insertion code containing javascrpt calls */ private static function process_sound_tag($matches) { //Balise son return ''; } private static function process_youtube_tag($matches) { $matches[1] = str_replace(array('/watch?v=', '/embed/'), '/v/', $matches[1]); return self::process_swf_tag($matches); } private function parse_feed_tag() { $this->content = preg_replace_callback('`[[FEED((?: [a-z]+="[^"]+")*)]]([a-z]+)[[/FEED]]`U', array(__CLASS__, 'inject_feed'), $this->content); } private static function inject_feed(array $matches) { $module = $matches[2]; $args = self::parse_feed_tag_args($matches[1]); $name = !empty($args['name']) ? $args['name'] : Feed::DEFAULT_FEED_NAME; $cat = !empty($args['cat']) ? $args['cat'] : 0; $tpl = false; $number = !empty($args['number']) ? $args['number'] : 10; $result = ''; try { $result = Feed::get_parsed($module, $name, $cat, $tpl, $number); } catch (Exception $e) { } if (!empty($result)) { return $result; } else { $error = StringVars::replace_vars(LangLoader::get_message('feed_tag_error', 'editor-common'), array('module' => $module)); return '
' . $error . '
'; } } private static function parse_feed_tag_args($matches) { $args = explode(' ', trim($matches)); $result = array(); foreach ($args as $arg) { $param = array(); if (!preg_match('`([a-z]+)="([^"]+)"`U', $arg, $param)) { break; } $name = $param[1]; $value = $param[2]; if (in_array($name, array('name', 'cat', 'number'))) { $result[$name] = $value; } } return $result; } } ?>[[/CODE]]

Solution résolu par : j1.seth Administrateur du site off.

En rappel, concernant les news, il y a des problèmes en dessous de php5.4 .. Résolu par Janus57. Edité par m-ickael Le 22/02/2016 à 09h38
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 22/02/2016 à 12h16
Bonjour,

Le probleme est peut etre pas que du a php et ne touche pas que le module news.

On va voir pour trouver la cause avec l'equipe phpboost.

EDIT :
La correction sera incluse dans la V5.0.1, donc pas besoin de s'amuser à modifier le fichier car à l'heure ou j'écris ce message le patch sera disponible dans 72H normalement.

Cordialement, janus57 Edité par janus57 Le 22/02/2016 à 12h35
   
Swan Membre non connecté

Administrateur

Rang

Avatar

Inscrit le : 01/08/2009 à 22h53

Messages: 8431

Le 22/02/2016 à 12h39
Merci pour avoir mis la résolution du problème.^^


swan_signature

Site web    
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 22/02/2016 à 20h27
ça ne coûte rien de mettre la solution. Pour le moment, le patch n'est pas là, donc ..

Concernant l'interdiction des news aux visiteurs ça viendrait de quoi si c'est pas du PHP?
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 22/02/2016 à 20h43
Bonjour,

Citation:
ça ne coûte rien de mettre la solution. Pour le moment, le patch n'est pas là, donc ..

si cela peu entrainer une régression si le fichier subit d'autre modifications entre temps à cause de la correction d'un autre bug donc si une personne met ce fichier à la place de celui du patch ou met ce fichier par dessus une autre version il va avoir une régression au niveau des fonctions qui sont dans ce fichier.

Citation:
Concernant l'interdiction des news aux visiteurs ça viendrait de quoi si c'est pas du PHP?

on va regarder, car j'ai aussi eu le problème chez FREE en PHP 5.6, mais j'ai beaucoup de problèmes chez Free et leur infrastructure doit y être pour quelque chose car j'ai des comportements bizarre et @j1.seth aussi donc, va y avoir un max de tests (chez d'autre hébergeur voir sur des dédiés).

Cordialement, janus57
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie