PluXml Forum Home Documentation Ressources Forum Blog PluCSS Github

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.