bannière sur page accueil

ptitjozptitjoz Member
avril 2021 modifié dans Discussions générales

Bonjour,
Comment mettre une bannière sur la page d'accueil uniquement ?
Merci de vos conseils

Edit : je n'ai pas mis mon billet au bon endroit (merci de le déplacer si nécessaire)

Réponses

  • skensken Member

    Bonjour ptitjoz,
    tu dois aller dans ton theme,
    tu dois creer un nouveau header-nom.php que tu personnalises
    dans ton article.php , archive ect ...
    tu changes
    php include DIR.'/header.php'; par php include DIR.'/header-nom.php';

  • ptitjozptitjoz Member
    avril 2021 modifié

    Bonjour sken
    en fait il faudrait que le script soit uniquement sur la page d’accueil et juste avant la balise body de fermeture

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Mets ceci dans header.php :

    <?php
    if($plxShow->mode === 'home') {
    ?>
        <div class="banner">
            <img src="<?= $plxShow->template() ?>/img/banner.jpg" alt="bannière" />
        </div>
    <?php
    }
    ?>
    
  • ptitjozptitjoz Member
    avril 2021 modifié

    Bonjour bazooka07
    j'ai essayé ta méthode mais ça n'affiche rien. j'avais bien entendu mis un image dans img/ qui correspondait au code.

    donc j'ai modifié de cette façon et ça fonctionne

    <?php
    $mode = $plxShow->mode();
    if ($mode == 'home') {
    ?>
        <div class="banner">
            <img src="<?= $plxShow->template() ?>/img/banner.jpg" alt="bannière" />
        </div>
    <?php
    }
    ?>
    
    

    Bien cordialement

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Dans themes/defaut
    header.php :

    <?php if (!defined('PLX_ROOT')) exit; ?>
    <!DOCTYPE html>
    <html lang="<?php $plxShow->defaultLang() ?>">
    <head>
        <meta charset="<?php $plxShow->charset('min'); ?>">
        <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0">
        <title><?php $plxShow->pageTitle(); ?></title>
    <?php
        $plxShow->meta('description');
        $plxShow->meta('keywords');
        $plxShow->meta('author');
    ?>
        <link rel="icon" href="<?php $plxShow->template(); ?>/img/favicon.png" />
        <link rel="stylesheet" href="<?php $plxShow->template(); ?>/css/plucss.css?v=1.3.1" media="screen,print"/>
        <link rel="stylesheet" href="<?php $plxShow->template(); ?>/css/theme.css?v=<?php echo PLX_VERSION ?>" media="screen"/>
    <?php
        $plxShow->templateCss();
        $plxShow->pluginsCss();
    ?>
        <link rel="alternate" type="application/rss+xml" title="<?php $plxShow->lang('ARTICLES_RSS_FEEDS') ?>" href="<?php $plxShow->urlPostsRssFeed($plxShow->plxMotor->mode) ?>" />
        <link rel="alternate" type="application/rss+xml" title="<?php $plxShow->lang('COMMENTS_RSS_FEEDS') ?>" href="<?php $plxShow->urlRewrite('feed.php?rss/commentaires') ?>" />
    </head>
    
    <body id="top" class="page mode-<?php $plxShow->mode(true) ?>">
    
        <header class="header">
    
            <div class="container">
    
                <div class="grid">
    
                    <div class="col sml-6 med-5 lrg-4">
    
                        <div class="logo">
                            <h1 class="no-margin heading-small"><?php $plxShow->mainTitle('link'); ?></h1>
                            <h2 class="h5 no-margin"><?php $plxShow->subTitle(); ?></h2>
                        </div>
    
                    </div>
    
                    <div class="col sml-6 med-7 lrg-8">
    
                        <nav class="nav">
    
                            <div class="responsive-menu">
                                <label for="menu"></label>
                                <input type="checkbox" id="menu">
                                <ul class="menu">
                                    <?php $plxShow->staticList($plxShow->getLang('HOME'),'<li class="#static_class #static_status" id="#static_id"><a href="#static_url" title="#static_name">#static_name</a></li>'); ?>
                                    <?php $plxShow->pageBlog('<li class="#page_class #page_status" id="#page_id"><a href="#page_url" title="#page_name">#page_name</a></li>'); ?>
                                </ul>
                            </div>
    
                        </nav>
    
                    </div>
    
                </div>
    
            </div>
    <?php
    if($plxShow->mode() == 'home') {
        $filename = PLX_ROOT . $plxMotor->aConf['racine_themes'] . $plxMotor->style . '/img/banner.jpg';
        if(file_exists($filename)) {
            $imgSize = getimagesize($filename);
    ?>
            <div class="banner">
            <img src="<?= $plxShow->template(); ?>/img/banner.jpg" alt="Bannière" <?= $imgSize[3] ?> />
            </div>
    
    <?php
        }
    }
    ?>
    
        </header>
    

    A cause des menus déroulants, rajouter à la fin de css/theme.css :

    /* Hack against PluCss for banner */
    
    .header, .logo {
        height: auto;
    }
    
    .mode-home .header {
        border-bottom: none;
    }
    
    .header .container {
        margin-bottom: 1rem;
    }
    
    .header .grid {
        overflow-y: visible;
    }
    
    .header .grid .col:last-of-type {
        position: static;
    }
    
    .main {
        padding-top: 0;
    }
    

    Mettre la banniére "banner.jpg" dans le dossier "themes/defaut/img/"

  • cpalocpalo Member

    Bonjour,
    Si l'on souhaite que cette bannière ne s'affiche pas dans les modes article et static, dans la fonction $plxShow->mode() existe-t-il une possibilité de mettre plusieurs paramètres?
    Ou bien faut-il passer par if /elseif / else?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    il y a un seul paramètre possible pour plxShow::mode($echo = false).
    Donc le "if" s'impose :

    <?php
    if(!in_array($plxShow->mode(), array('article', 'static'))) {
    ?>
        <div class="banner">Ma jolie bannière</div>
    <?php
    }
    ?>
    

    Sinon pour l'afficher uniquement sur la page d'accueil :

    <?php
    if($plxShow->mode() == 'home') {
    ?>
        <div class="banner">Ma jolie bannière</div>
    <?php
    }
    ?>
    
Connectez-vous ou Inscrivez-vous pour répondre.