1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"

Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.

Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.

Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.


Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Liaison WordPress/Mybb (Fatal error: Cannot redeclare)
Mots-clés » liaison, wordpressmybb, fatal, error, cannot, redeclare
08-08-2012, 13:18, (Modification du message : 08-08-2012, 13:46 par John79.)
#1
Liaison WordPress/Mybb (Fatal error: Cannot redeclare)
Bonjour à tous !

J'ai fait une recherche avant de poster et je n'ai rien trouvé de concluant.

Rentrons tout de suite dans le vif du sujet : Je possède un site WordPress et un forum Mybb. J'ai voulu créer une page nécessitant les sessions de MyBB mais utilisant le design de WordPress.
Sur ma page, il y a donc ces deux codes :

Code :
require('../wp-load.php');
include('/public_html/wp-content/themes/leetpress/header.php');

Code :
define("IN_MYBB", 1);
define('THIS_SCRIPT', 'avantages.php');
require_once "../forum/global.php";

Le problème est le suivant : Une erreur se crée :

Citation :Fatal error: Cannot redeclare get_attachment_icon() (previously declared in /public_html/wp-includes/deprecated.php:1966) in /public_html/forum/inc/functions.php on line 3111

J'ai donc bien compris que WordPress et Mybb avaient des fonctions utilisant le même nom, mais malheureusement, je ne suis pas un expert en php... J'ai donc fait quelques recherches, puis j'ai fini par trouvé quelque chose qui me paraissait bon sur le forum mybb italien, disant de faire ceci :
Code :
if(!function_exists('get_attachment_icon'))
{
  function get_attachment_icon($ext)
   {
      tutto il bla bla bla
   }
}

Voici donc mon code actuel :

Code :
if(!function_exists('get_attachment_icon'))
{
function get_attachment_icon( $id = 0, $fullsize = false, $max_dims = false ) {
    _deprecated_function( __FUNCTION__, '2.5', 'wp_get_attachment_image()' );
    $id = (int) $id;
    if ( !$post = & get_post($id) )
        return false;

    if ( !$src = get_attachment_icon_src( $post->ID, $fullsize ) )
        return false;

    list($src, $src_file) = $src;

    // Do we need to constrain the image?
    if ( ($max_dims = apply_filters('attachment_max_dims', $max_dims)) && file_exists($src_file) ) {

        $imagesize = getimagesize($src_file);

        if (($imagesize[0] > $max_dims[0]) || $imagesize[1] > $max_dims[1] ) {
            $actual_aspect = $imagesize[0] / $imagesize[1];
            $desired_aspect = $max_dims[0] / $max_dims[1];

            if ( $actual_aspect >= $desired_aspect ) {
                $height = $actual_aspect * $max_dims[0];
                $constraint = "width='{$max_dims[0]}' ";
                $post->iconsize = array($max_dims[0], $height);
            } else {
                $width = $max_dims[1] / $actual_aspect;
                $constraint = "height='{$max_dims[1]}' ";
                $post->iconsize = array($width, $max_dims[1]);
            }
        } else {
            $post->iconsize = array($imagesize[0], $imagesize[1]);
            $constraint = '';
        }
    } else {
        $constraint = '';
    }

    $post_title = esc_attr($post->post_title);

    $icon = "<img src='$src' title='$post_title' alt='$post_title' $constraint/>";

    return apply_filters( 'attachment_icon', $icon, $post->ID );
}
}
else
{
function get_attachment_icon($ext)
{
    global $cache, $attachtypes, $theme;

    if(!$attachtypes)
    {
        $attachtypes = $cache->read("attachtypes");
    }

    $ext = my_strtolower($ext);

    if($attachtypes[$ext]['icon'])
    {
        if(defined("IN_ADMINCP"))
        {
            $icon = str_replace("{theme}", "", $attachtypes[$ext]['icon']);
            if(my_substr($icon, 0, 1) != "/" && my_substr($icon, 0, 7) != "http://")
            {
                $icon = "../".$icon;
            }
        }
        elseif(defined("IN_PORTAL"))
        {
            global $change_dir;
            $icon = $change_dir."/".str_replace("{theme}", $theme['imgdir'], $attachtypes[$ext]['icon']);
        }
        else
        {
            $icon = str_replace("{theme}", $theme['imgdir'], $attachtypes[$ext]['icon']);
        }
        return "<img src=\"{$icon}\" border=\"0\" alt=\".{$ext}\" />";
    }
    else
    {
        if(defined("IN_ADMINCP"))
        {
            $theme['imgdir'] = "../images";
        }
        else if(defined("IN_PORTAL"))
        {
            global $change_dir;
            $theme['imgdir'] = "{$change_dir}/images";
        }
        
        return "<img src=\"{$theme['imgdir']}/attachtypes/unknown.gif\" border=\"0\" alt=\".{$ext}\" />";
    }
}
}
(J'ai mis dans la première parti le code utilisé par WordPress, dans la seconde (après le else), celui utilisé par Mybb.

Ca a donc tout d'abord fonctionné. Une autre erreur est apparu, j'ai répété l'opération. Jusqu'à ce que je revienne au début ! Donc en gros, le code de l'italien ne m'a servit a rien ^^

Si quelqu'un à une idée à me proposer, je suis preneur Smile

Merci d'avance !

Edit:
URL de la page http://land-of-craft.fr/avantages/
Version MyBB : 1.6.8
Version WordPress : 3.4.1

Edit2 : Surtout que cette technique ne fonctionne qu'à moitié, car la page d'index du forum et les sous forum s'affichent correctement, mais pas les sujets (erreur d'une fonction appelée)
Répondre


Messages dans ce sujet
Liaison WordPress/Mybb (Fatal error: Cannot redeclare) - John79 - 08-08-2012, 13:18



Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

Contact | MyBB.support | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS
 Utilitaire de traduction fourni par Regentronique