Jump to content
Invision Board France
Sign in to follow this  
Zorro_X

4.5 Rendre compatible une appli 4.4 dans 4.5

Recommended Posts

Zorro_X

Bonjour à tous,

 

Je partage avec vous une petite astuce qui nous a été bien pratique et utile pour pouvoir passer en 4.5 depuis une 4.4 en ce qui concerne les applis tierces : malheureusement elles n'ont pas toutes été mises à jour par leurs créateurs. Elles sont cependant fonctionnelles dans la 4.5 mais si on essaie d'aller dans leur interface (après les avoir réactivées) on se retrouve face à un gros message d'erreur rouge qui fait peur vous disant que l'appli n'est pas compatible, honte à vous, vade rétro, allez donc payer pour la mise à jour dans la marketplace...

Je précise que cela a fonctionné pour nos applis, testées par d'autres utilisateurs, mais faire cela peut aussi être dangereux pour vos communautés si l'appli n'est vraiment plus compatible avec Invision 4.5. Donc à pratiquer à vos risques et périls. Pensez au moins à sauvegarder avant d'essayer...

 

Donc voilà, dans l'hébergement de votre communauté vous devez vous rendre dans le dossier "applications/<nom de votre appli>/modules/" :

. à partir de là il s'agit de parcourir tous les sous-dossiers et de modifier tous les fichiers .php que vous rencontrez ;

. vous devez ajouter le code suivant juste après la première déclaration d'une classe dans chacun de ces fichiers :

/**
 * @brief	Has been CSRF-protected
 */
public static $csrfProtected = TRUE;

 

Par exemple, vous ouvrez un fichier qui ressemble à ceci :

<?php


namespace IPS\swiperslider\modules\admin\swiper;

/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
	exit;
}

/**
 * settings
 */
class _settings extends \IPS\Dispatcher\Controller
{	
	/**
	 * Execute
	 *
	 * @return	void
	 */
	public function execute()
	{
		\IPS\Dispatcher::i()->checkAcpPermission( 'settings_manage' );
		parent::execute();
	}

Et donc vous ajoutez le code indiqué pour obtenir ceci :

<?php


namespace IPS\swiperslider\modules\admin\swiper;

/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
	exit;
}

/**
 * settings
 */
class _settings extends \IPS\Dispatcher\Controller
{
    /**
	 * @brief	Has been CSRF-protected
	 */
	public static $csrfProtected = TRUE;
	
	/**
	 * Execute
	 *
	 * @return	void
	 */
	public function execute()
	{
		\IPS\Dispatcher::i()->checkAcpPermission( 'settings_manage' );
		parent::execute();
	}

 

Voilà, vous faites ça dans tous les fichiers mentionnés, vous sauvegardez et puis lorsque vous revenez dans votre PCA : magie ! tout refonctionne ! (sous réserve d'incompatibilité un peu plus "profonde").

Cette astuce nous a été bien utile pour retrouver 2 applis qui nous sont très précieuses et dont une qui ne semble plus avoir de support de son créateur.

 

En espérant que ceci puisse vous être utile, je vous souhaite bonne chance et bonne continuation !

  • Thanks 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.