Synology Un bug DSM ?

  • Vague de SPAM

    Suite à une vague de spam sur le forum, les inscriptions sont temporairement limitées.

    Après votre inscription, un membre de l'équipe devra valider votre compte avant qu'il ne soit activé. Nous sommes désolés pour la gêne occasionnée et vous remercions de votre patience.

Feneck91

Maître Jedi
Membre Confirmé
29 Octobre 2015
703
3
53
Bonjour,

Je viens de passer une heure pour corriger sans comprendre le problème d'erreur 500 lorsque l'on clic sur une image dans la galerie dun forum phpBB !
Je me demande s'il ne s'agit pas d'un bug du paquet php 5.6 !
Dans une classe, voilà la fonction buggée :
Code:
	/**
	* Displays the box where the user can rate the image.
	*/
	public function display_box()
	{
		global $template, $user;

		$template->assign_var('GALLERY_RATING', self::MODE_SELECT);//@todo: phpbb_gallery_config::get('rating_mode'));

		switch (self::MODE_SELECT)//@todo: phpbb_gallery_config::get('rating_mode'))
		{
			//@todo: self::MODE_THUMB:
			//@todo: self::MODE_STARS:
			case self::MODE_SELECT:
			default:
				if ($this->album_data('contest_id'))
				{
					if (time() < ($this->album_data('contest_start') + $this->album_data('contest_rating')))
					{
						$template->assign_var('GALLERY_NO_RATING_MESSAGE', $user->lang('CONTEST_RATING_STARTS', $user->format_date(($this->album_data('contest_start') + $this->album_data('contest_rating')), false, true)));
						return;
					}
					if (($this->album_data('contest_start') + $this->album_data('contest_end')) < time())
					{
						$template->assign_var('GALLERY_NO_RATING_MESSAGE', $user->lang('CONTEST_RATING_ENDED', $user->format_date(($this->album_data('contest_start') + $this->album_data('contest_end')), false, true)));
						return;
					}
				}

				for ($i = 1; $i <= phpbb_gallery_config::get('max_rating'); $i++)
				{
					$template->assign_block_vars('rate_scale', array(
						'RATE_POINT'	=> $i,
					));
				}
			break;
		}

		$this->rating_enabled = true;
	}

Remplacé par :
Code:
	/**
	* Displays the box where the user can rate the image.
	*/
	public function display_box()
	{
		global $template, $user;

		$template->assign_var('GALLERY_RATING', self::MODE_SELECT);//@todo: phpbb_gallery_config::get('rating_mode'));

		switch (self::MODE_SELECT)//@todo: phpbb_gallery_config::get('rating_mode'))
		{
			//@todo: self::MODE_THUMB:
			//@todo: self::MODE_STARS:
			case self::MODE_SELECT:
			default:
				if ($this->album_data('contest_id'))
				{
					if (time() < ($this->album_data('contest_start') + $this->album_data('contest_rating')))
					{
						$template->assign_var('GALLERY_NO_RATING_MESSAGE', $user->lang('CONTEST_RATING_STARTS', $user->format_date(($this->album_data('contest_start') + $this->album_data('contest_rating')), false, true)));
						return;
					}
					if (($this->album_data('contest_start') + $this->album_data('contest_end')) < time())
					{
						$template->assign_var('GALLERY_NO_RATING_MESSAGE', $user->lang('CONTEST_RATING_ENDED', $user->format_date(($this->album_data('contest_start') + $this->album_data('contest_end')), false, true)));
						return;
					}
				}

				/* Pourquoi ce code fait tout planter lorsque l'on ouvre en grand une image ?
				for ($i = 1; $i <= phpbb_gallery_config::get('max_rating'); $i++)
				{
					$template->assign_block_vars('rate_scale', array(
						'RATE_POINT'	=> $i,
					));
				}
				*/
			break;
		}
		// Comme le switch / case est toujours fait, je déplace le code qui fait planter et le place ici et là, magique : ça marche !
		// C'est du grand n'importe quoi !!!
		for ($i = 1; $i <= phpbb_gallery_config::get('max_rating'); $i++)
		{
			$template->assign_block_vars('rate_scale', array(
				'RATE_POINT'	=> $i,
			));
		}

		$this->rating_enabled = true;
	}

Même un simple for sans rien dedans fait planter la fonction à l'endroit où je l'ai mise en commentaire ! Et là je suis perplexe !
Un problème avec la mise à jour de ce paquet ? Bizarre bizarre !!!!!!!!
Le code fait exactement la même chose mais une fois sortie du switch / case ça fonctionne !