MamboWiki sans frame c possible

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • MamboWiki sans frame c possible

    Bon alors, j'ai trouvé une petite astuce ou plutot bidouillage si vous préférez pour intégrer Mambowiki au site joomla sans passer par cette frame très génante je trouve...

    D'abord, allez dans /components/com_mambowiki/mambowiki.html.php

    et remplacer tout par ceci :

    Code PHP:
    <?php
     
    # Copyright (C) 2005 Lyquidity Solutions <mambowiki@lyquidity.com>
    # All rights reserved
    # Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
     
    defined'_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
     
    class 
    HTML_mambowiki
    {
     
        function 
    ShowNotInstalled$showmediawikiimage$page_heading$show_pageheading  )
        {
            global 
    $mosConfig_lang$mosConfig_live_site;
     
    ?>
            <table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%">
     
            <tr> 
                <td height="10">
                    <span class="componentheading"> 
                    <?php echo $page_heading?>
                    </span> 
                </td>
            </tr>
            <tr>
                <td valign="top" height="100%"> 
                    <?php echo _NOT_CONFIGURED?>
                </td>
            </tr>
            <tr>
              <td>
            </tr>
            </table> 
    <?php
        
    }
     
        function 
    ShowNotLoggedIn$showmediawikiimage$page_heading$show_pageheading  )
        {
            global 
    $mosConfig_lang$mosConfig_live_site;
     
    ?>
            <table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%">
    <?php if ($show_pageheading == 0) { ?>
            <tr> 
                <td height="10">
                    <span class="componentheading"> 
                    <?php echo $page_heading?>
                    </span> 
                </td>
            </tr>
    <?php ?>
            <tr>
                <td valign="top" height="100%"> 
                    <?php echo _NOT_LOGGED_IN?>
                </td>
            </tr>
            </table>
    <?php
        
    }
     
        function 
    ShowPage$id$title$show_page$pagequery$showmediawikiimage$height$px$usescrollbars$page_heading$show_pageheading  )
        {
            
    define'MEDIAWIKI''1' );
     
            require(
    "components/com_mambowiki/LocalSettings.php");
     
            global 
    $mosConfig_lang$mosConfig_live_site$my$database$mosConfig_secret$wgScriptPath;
     
            
    // Initialise function variables
            
    $username '';
            
    $querystring '';
            
    $password '';
     
            
    // First, check that the Wiki has been configured by the administrator
     
            // Next check to see if the user is signed in
            
    if ($my->id == 0)
            {
                if (
    $show_page == -1) { $show_page 0; }
                
    $loginstring "";
            } 
            else
            {
                
    /*
                * Linking the authentication server and MediaWiki
                * ===============================================
                *
                * NOTE: This should be done only when $show_page == -1
                *       $show_page will be -1 when the user enters the  Wiki for the first time.
                *
                * See http://meta.wikimedia.org/wiki/QISSingleSignOn for more information
                *
                * The authentication server has to create a token for MediaWiki and
                * transmit it as "password":
                *
                * action="/mediawiki/index.php?title=Spezial:Userlogin&action=submitlogin&returnto=Main_Page"
                * wpLoginattempt=Anmelden
                * wpName=username
                * wpPassword=1115814654-d1bf93299de1b68e6d382c893bf1215f
                *
                * You should not put this variables into the URL but use a hidden form
                * instead. This could even be triggerd automaticially by javascript:
                * <body onload="document.forms[0].submit();">
                */
     
                
    $row = new mosUser$database );
                
    $row->load$my->id );
     
                
    # For MediaWiki the password should be lowercase and *then* utf8_encoded
                
    $username strtolower($row->username);
                
    $username utf8_encode($username);
     
                
    // Make a password
                
    $currentTime time();
     
                
    // The password is the microtime plus a hash of the microtime, username and secret
                // This should be enough to stop someone casually sending a valid login request.
     
                # The username that makes up the password should be lowercase because MediaWiki 
                # will lowercase the the wpUser value when before it arrives in the MamboLogin.php 
                # authenticate() function.  Note that MediaWiki replaces the "_" in a username with 
                # a space so this has to be done to the comparison password as well or, again, the
                # comparison will fail.
     
                
    $password str_replace('_'' 'strtolower($username)) . $currentTime $mosConfig_secret;
                
    $password $currentTime '-' md5($password);
                
    $loginstring "Special:Userlogin&action=submitlogin&wpName=$username&wpPassword=$password&wpLoginattempt=userlogin";
     
                
    # Uncomment for debug purposes
                # echo "Username: " . $username . "<br/>";
                # echo "Password: " . $password . "<br/>";
                # echo "Loginstr: " . $loginstring . "<br/>";
            
    }
     
                
    // Workout the wiki page to display
            
    switch ($show_page)
            {
                case -
    1// Menu click
                    
    $querystring "Accueil ";
                    break;
     
                case 
    1// Preferences
                    
    $querystring="Special:Preferences";
                    break;
     
                case 
    2// Recent Changes
                    
    $querystring="Special:Recentchanges";
                    break;
     
                case 
    3// Special Pages
                    // TO DO: use the MediaWiki language class to return the language name for "Special"
                    
    $querystring="Special:Specialpages";
                    break;
     
                case 
    4// Help - Use a default help page of Contents if not user specified
                    
    if ($pagequery==""$pagequery='Contents';
                    
    $querystring="Help:$pagequery";
                    break;
     
                case 
    5// Other - Use a default of Main_page if not user specified
                    
    if ($pagequery==""$pagequery='Accueil';
                    
    $querystring="$pagequery";
                    break;
     
                default: 
    // Main_Page
                    
    $querystring="Accueil";
                    break;
     
            }
     
            
    // If the user is not logged in then the query string is the title
            
    if ($my->id == 0)
            {
                
    // Never try to login when logged into mambo
                
    $querystring "?title=" $querystring;
            }
            else
            {
                
    // Always perform the login setup when logged into Mambo
                
    $querystring "?title=" $loginstring "&returnto=" $querystring;
            }
     
            
    // Replace all instances of variable names within a string
            
    $querystring=eval('return "'$querystring '";');
     
            
    // Create the IFRAME element and substitute variables
            
    $iframe "<iframe name=wiki' frameborder='0' src='$mosConfig_live_site/components/com_mambowiki/index.php$querystring' width='100%' height='$height$px' scrolling='$usescrollbars' ></iframe>";
     
    ?>
            <table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%">
            <tr>
                <td valign="top" height="100%"> 
                    <?php echo $iframe?>
                </td>
            </tr>
            </table> 
    <?php
        
    }
     
    }
    ?>
    Dernière édition par MisterMacPhisto à 12/10/2006, 10h24

  • #2
    La suite...

    Ensuite, il vous faudra éditer votre templates du mambowiki. Là j'avoue que vous devrez maitriser un peu le code html et les variables de templates pour intégrer parfaitement votre wiki. L'objectif est de reprendre le template de votre site joomla et de le placer dans le dossier skins du composant mambowiki. Il y a différentes variables à y intégrer si vous voulez, je pourrais développer.



    Pour ma part,J'ai édité le thème MamboWiki, j'ai collé tout ce qu'il y avait dans mon fichier thème joomla. J'ai supprimé tout les variables php de joomla et j'ai remplacé par des variables propres à Mambowiki. N'oubliez pas que les urls vers les fichiers images et vers les fichiers necessaires au bon fonctionnement du site devront être modifiées car elle ne pointe plus à la source de votre site joomla.



    Avant le doctype j'ai mis ceci :



    Code PHP:

    <?php
    /**
     * MamboWiki nouveau
     *
     * Translated from gwicke's previous TAL template version to remove
     * dependency on PHPTAL.
     *
     * @todo document
     * @package MediaWiki
     * @subpackage Skins
     */

    if( !defined'MEDIAWIKI' ) )
     die();

    /** */
    require_once('includes/SkinTemplate.php');

    /**
     * Inherit main code from SkinTemplate, set the CSS and template filter.
     * @todo document
     * @package MediaWiki
     * @subpackage Skins
     */
    class SkinMamboWiki extends SkinTemplate {
     
    /** Using mambowiki. */
     
    function initPage( &$out ) {
      
    SkinTemplate::initPage$out );
      
    $this->skinname  'mambowiki';
      
    $this->stylename 'MamboWiki';
      
    $this->template  'MamboWikiTemplate';
     }
    }

    /**
     * @todo document
     * @package MediaWiki
     * @subpackage Skins
     */
    class MamboWikiTemplate extends QuickTemplate {
     
    /**
      * Template filter callback for MamboWiki skin.
      * Takes an associative array of data set from a SkinTemplate-based
      * class, and a wrapper for MediaWiki's localization database, and
      * outputs a formatted page.
      *
      * @access private
      */
     
    function execute() {
      
    // Suppress warnings to prevent notices about missing indexes in $this->data
      
    wfSuppressWarnings();

    ?>


    J'ai poursuivit en éditant la partie <head> de cette manière :



    Code PHP:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php $this->text('lang'?>" lang="<?php $this->text('lang'?>" dir="<?php $this->text('dir'?>">
    <head>
        <meta http-equiv="Content-Type" content="<?php $this->text('mimetype'?>; charset=<?php $this->text('charset'?>" />
        <?php $this->html('headlinks'?>
        <title><?php $this->text('pagetitle'?></title>
        <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/main.css"; /*]]>*/</style>
        <link rel="stylesheet" type="text/css" <?php if(empty($this->data['printable']) ) { ?>media="print"<?php ?> href="<?php $this->text('stylepath'?>/common/commonPrint.css" />
        <!--[if lt IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/IE50Fixes.css";</style><![endif]-->
        <!--[if IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/IE55Fixes.css";</style><![endif]-->
        <!--[if gte IE 6]><style type="text/css">@import "<?php $this->text('stylepath'?>/<?php $this->text('stylename'?>/IE60Fixes.css";</style><![endif]-->
        <!--[if IE]><script type="<?php $this->text('jsmimetype'?>" src="<?php $this->text('stylepath'?>/common/IEFixes.js"></script>
        <meta http-equiv="imagetoolbar" content="no" /><![endif]-->
        <?php if($this->data['jsvarurl'  ]) { ?><script type="<?php $this->text('jsmimetype'?>" src="<?php $this->text('jsvarurl'  ?>"></script><?php ?>
        <script type="<?php $this->text('jsmimetype'?>" src="<?php                                   $this->text('stylepath' ?>/common/wikibits.js"></script>
        <?php if($this->data['usercss'   ]) { ?><style type="text/css"><?php              $this->html('usercss'   ?></style><?php    ?>
        <?php if($this->data['userjs'    ]) { ?><script type="<?php $this->text('jsmimetype'?>" src="<?php $this->text('userjs'    ?>"></script><?php ?>
        <?php if($this->data['userjsprev']) { ?><script type="<?php $this->text('jsmimetype'?>"><?php      $this->html('userjsprev'?></script><?php   ?>
        <?php if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>




    La chose la plus importante à faire est de placer dans la balise <head>, le code suivant

    Code HTML:
    <script language="JavaScript">
    
      <!--
    
       if(top.frames.length > 0)
    
        top.location.href=self.location;
    
      //-->
    
      </script>


    ceci à pour effet d'annuler la frame.



    Vous devrez ensuite modifier votre balise <body> par celle ci :



    Code PHP:

          <body <?php if($this->data['body_ondblclick']) { ?>ondblclick="<?php $this->text('body_ondblclick'?>"<?php ?>
            <?php if($this->data['body_onload'    ]) { ?>onload="<?php     $this->text('body_onload')     ?>"<?php ?>
            <?php if($this->data['nsclass'        ]) { ?>class="<?php      $this->text('nsclass')         ?>"<?php ?>>




    Voici les principales variables de mambowiki :



    menu utilisateur :



    Code PHP:

    <!-- BEGIN personal tools -->

    <?php $this->msg('personaltools'?>
    <?php 
    foreach($this->data['personal_urls'] as $key => $item) { ?>
    <a href="<?php
    echo htmlspecialchars($item['href']) ?>"<?php
    if(!empty($item['class'])) { ?> class="mainlevel"<?php ?>>
    <?php echo htmlspecialchars($item['text']) ?>
    </a>
    <?php ?>                             
    <!-- END personal tools -->




    le formulaire de recherche



    Code PHP:

    <!-- BEGIN search -->



          <form name="searchform" action="<?php $this->text('searchaction'?>" id="searchform">
           Recherche: <input id="searchInput" name="search" type="text" <?php if($this->havemsg('accesskey-search')) { ?>accesskey="<?php $this->msg('accesskey-search'?>"<?php } if( isset( $this->data['search'] ) ) { ?> value="<?php $this->text('search'?>"<?php ?> />
         
            <input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg('go'?>" />
            <input type='submit' name="fulltext" class="searchButton" value="<?php $this->msg('search'?>" />
          </form>

      <!-- END search -->




    Le texte principal (votre article du wiki)



    Code PHP:

    <?php $this->text('title'?></h1>
          <div id="bodyContent">
         <div id="contentSub"><?php $this->html('subtitle'?></div>                              
         <?php if($this->data['undelete']) { ?><div id="contentSub"><?php     $this->html('undelete'?></div><?php ?>
         <?php if($this->data['newtalk'] ) { ?><div class="usermessage"><?php $this->html('newtalk')  ?></div><?php ?>
         <!-- start content -->
         <?php $this->html('bodytext'?>                                                            
         <?php if($this->data['catlinks']) { ?><div id="catlinks"><?php       $this->html('catlinks'?></div><?php ?>
         <!-- end content -->




    Les options des articles (modifier, supprimer, etc...)



    Code PHP:

    <!-- Article options -->
         <?php foreach($this->data['content_actions'] as $key => $action) {
            
    ?><a href="<?php echo htmlspecialchars($action['href']) ?>"><?php
            
    echo htmlspecialchars($action['text']) ?></a> <?php if($this->data['notspecialpage']) { foreach( array( 'whatlinkshere''recentchangeslinked' ) as $special ) { ?>
        <a href="<?php
          
    echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
          
    ?>"><?php echo $this->msg($special?></a> :: 
        <?php } } ?>
                  <?php if(isset($this->data['nav_urls']['trackbacklink'])) { ?>
       <a href="<?php
          
    echo htmlspecialchars($this->data['nav_urls']['trackbacklink']['href'])
          
    ?>"><?php echo $this->msg('trackbacklink'?></a>
           <?php ?>
           <?php if($this->data['feeds']) { ?><?php foreach($this->data['feeds'] as $key => $feed) {
             
    ?><a href="<?php
             
    echo htmlspecialchars($feed['href']) ?>"><?php echo htmlspecialchars($feed['text'])?></a>
             <?php ?><?php ?>

    Commentaire


    • #3
      Ensuite, il faut créer un theme spécialement pour le wiki, en réalité ce thème sera blanc et n'intègrera que les principales variables nécessaires à l'identification de l'utilisateur. Voici ce que vous devrez mettre dans votre template assigné spécialement au composant mambowiki :



      Code PHP:



      <?php

      defined
      '_VALID_MOS' ) or die( 'Restricted access' );

      // needed to seperate the ISO number from the language file constant _ISO

      $iso explode'='_ISO );

      // xml prolog

      echo '<?xml version="1.0" encoding="'$iso[1] .'"?' .'>';

      ?>

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      <html xmlns="http://www.w3.org/1999/xhtml">

      <head>

      <?php mosShowHead(); ?>



      $sc = &$context['session_id'];

      $_SESSION['USER_AGENT'] = $_SERVER['HTTP_USER_AGENT'];



      mysql_select_db($mosConfig_db);





      <?php

      if ( $my->id ) {

          
      initEditor();

      }

      $collspan_offset = ( mosCountModules'right' ) + mosCountModules'user2' ) ) ? 1;

      //script to determine which div setup for layout to use based on module configuration

      $user1 0;

      $user2 0;

      $colspan 0;

      $right 0;

      // banner combos



      //user1 combos

      if ( mosCountModules'user1' ) + mosCountModules'user2' ) == 2) {

          
      $user1 2;

          
      $user2 2;

          
      $colspan 3;

      } elseif ( 
      mosCountModules'user1' ) == ) {

          
      $user1 1;

          
      $colspan 1;

      } elseif ( 
      mosCountModules'user2' ) == ) {

          
      $user2 1;

          
      $colspan 1;

      }



      //right based combos

      if ( mosCountModules'right' ) and ( empty( $_REQUEST['task'] ) || $_REQUEST['task'] != 'edit' ) ) {

          
      $right 1;

      }

      ?>

      <meta http-equiv="Content-Type" content="text/html; <?php echo _ISO?>" />

      </head>



      <body>







                                             <?php mosMainBody(); ?>

      <?php mosLoadModules'debug', -);?>

      </html>


      Assignez ensuite le thème wiki via l'administration à votre composant mambowiki.



      Normalement ça marche, en tout cas, moi ça marche nickel!

      Commentaire

      Annonce

      Réduire
      1 sur 2 < >

      C'est [Réglé] et on n'en parle plus ?

      A quoi ça sert ?
      La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

      Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

      Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
      Comment ajouter la mention [Réglé] à votre discussion ?
      1 - Aller sur votre discussion et éditer votre premier message :


      2 - Cliquer sur la liste déroulante Préfixe.

      3 - Choisir le préfixe [Réglé].


      4 - Et voilà… votre discussion est désormais identifiée comme réglée.

      2 sur 2 < >

      Assistance au forum - Outil de publication d'infos de votre site

      Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

      Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

      Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

      UTILISER À VOS PROPRES RISQUES :
      L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

      Problèmes connus :
      FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

      Installation :

      1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

      Archive zip : https://github.com/AFUJ/FPA/zipball/master

      2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

      3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

      4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

      5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

      6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
      et remplacer www. votresite .com par votre nom de domaine


      Exemples:
      Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
      Télécharger le script fpa-fr.php dans: /public_html/
      Pour executer le script: http://www..com/fpa-fr.php

      Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
      Télécharger le script fpa-fr.php dans: /public_html/cms/
      Pour executer le script: http://www..com/cms/fpa-fr.php

      En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

      Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
      Voir plus
      Voir moins
      Travaille ...
      X