Synology Un bug DSM ?

Feneck91

Maître Jedi
29 Octobre 2015
701
3
48
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 !