Advanced search  

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Pages: [1]   Go Down

Author Topic: Ajout d'un bloc uniquement sur index.php  (Read 10732 times)

0 Members and 1 Guest are viewing this topic.

Elwood J. Blues

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Gender: Male
  • Posts: 171
    • Eymard.net
Ajout d'un bloc uniquement sur index.php
« on: August 17, 2007, 11:15:06 pm »

Bonjour,

J'ai une petite question, je voudrais mettre le bloc "Photos Aléatoires" dans mon bandeau gauche et uniquement sur ma page d'accueil... Est-ce possible ? Si quelqu'un peut me dire par où il faut que je commence ?

voici ma galerie : http://media.fanaticf1.com En fait pour gagner un peu en hauteur je souhaiterai mettre quelques photos aléatoirement dans mon bandeau sous la pub...

Merci d'avance !

Brice
« Last Edit: August 22, 2007, 10:32:26 pm by PYAP »
Logged
Avant de poser une question passez par ici . 90% des réponses s'y trouvent !

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: Ajout d'un bloc uniquement sur index.php
« Reply #1 on: August 18, 2007, 09:49:10 am »

Bonjour,
ce que vous demandes n'est pas possible directement dans la configuration actuelle de Coppermine. Vous pouvez changer la place du bloc dans la page en changeant l'ordre d'appel des blocs dans la config, mais pas placer le bloc. Il faudrait le coder, mais la comme ça je n'ai pas de piste.
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

Elwood J. Blues

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Gender: Male
  • Posts: 171
    • Eymard.net
Re: Ajout d'un bloc uniquement sur index.php
« Reply #2 on: August 18, 2007, 11:40:30 am »

En passant par des flux RSS peut être...

Quel fichier gére le bloc des photos aléatoire ?

Merci pour votre réponse rapide  ;)
Logged
Avant de poser une question passez par ici . 90% des réponses s'y trouvent !

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: Ajout d'un bloc uniquement sur index.php
« Reply #3 on: August 18, 2007, 12:43:27 pm »

a priori c'est dans theme.inc.php mais il faut copier la fonction a modifier dans votre fichier theme.php avant de la modifier.
Ne modifiez pas directement le fichier theme.inc.php
I y a aussi un Mod ou un plugin pour les flux RSS, faites une recherche
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

Pascal YAP

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 13833
  • Hello World :-)
    • CPG 1.5.x ExperiMental website
Re: Ajout d'un bloc uniquement sur index.php
« Reply #4 on: August 18, 2007, 09:34:29 pm »

Bonjour,

A mon avis le plus simple estr de passer via le fichier ANYCONTENT.PHP dans lequel on peut placer plein de choses.
Il y a aussi le Plugin MiniCMS qui peut accomplir ce que vous désirez faire.

You must to looking for MiniCMS to find something !
Utilisez le Moteur de Recherche pour en savoir plus  ;)

PYAP
Logged

Elwood J. Blues

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Gender: Male
  • Posts: 171
    • Eymard.net
Re: Ajout d'un bloc uniquement sur index.php
« Reply #5 on: August 22, 2007, 07:00:40 pm »

Je vous remercie pour vos réponses ! CPMFetch me convient à merveille !

Maintenant dernière petite question  :-\ Comment créer une balise du genre {BUTTONS} qui injecterai le code défini dans mon theme.php ?

Merci d'avance  ;)
Logged
Avant de poser une question passez par ici . 90% des réponses s'y trouvent !

Pascal YAP

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 13833
  • Hello World :-)
    • CPG 1.5.x ExperiMental website
Re: Ajout d'un bloc uniquement sur index.php
« Reply #6 on: August 22, 2007, 07:02:49 pm »

Vous devez créez un Nouveau Sujet pour une nouvelle question !
Se sont les règles du Forum.

Merci
Logged

Elwood J. Blues

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Gender: Male
  • Posts: 171
    • Eymard.net
Re: Ajout d'un bloc uniquement sur index.php
« Reply #7 on: August 22, 2007, 07:06:36 pm »

Ok, vu que c'était pour la même chose je pensais que ça passerai... Je m'excuse  :-[
Logged
Avant de poser une question passez par ici . 90% des réponses s'y trouvent !

Elwood J. Blues

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Gender: Male
  • Posts: 171
    • Eymard.net
Re: Ajout d'un bloc uniquement sur index.php
« Reply #8 on: August 22, 2007, 09:08:05 pm »

C'est bon je m'en suis sorti !

Merci pour votre aide !
Logged
Avant de poser une question passez par ici . 90% des réponses s'y trouvent !

Elwood J. Blues

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Gender: Male
  • Posts: 171
    • Eymard.net
Re: Ajout d'un bloc uniquement sur index.php
« Reply #9 on: August 22, 2007, 11:55:34 pm »

Allez vu que PYAP a été gentil avec moi, je vous livre la solution, ça peut donner des idées à certains...

Ma mission était d'ajouter des images aléatoirement sur le côté de ma galerie pour combler le vide entre la pub et le bas du site... Je n'avais ce trou que sur la page d'accueil donc pas question d'ajouter ces photos sur toutes les pages...

Je suis un peu brouillon dans mes développements donc pour éviter de faire des requetes en direct sur la base j'ai voulu utilisé les flux RSS vu que la fonction n'a pas l'air incluse par défaut, j'ai installé CpmFetch... (Excellent mod soit dit en passant)

Problème n°1 : Ajouter un bloc sur la page d'accueil du site...

Alors après avoir tatillonné entre test et forum j'ai trouvé la solution

Il suffit d'ajouter un token sur notre page template.html par exemple {HASARD}

Ensuite on récupére la fonction pageheader du fichier theme.php du sous-dossier themes/samples. On ajoute notre token et on le colle dans notre fichier themes/mon_design/theme.php. Ca doit ressembler à ça :

Code: [Select]
// Function for writing a pageheader
function pageheader($section, $meta = '')
{
    global $CONFIG, $THEME_DIR;
    global $template_header, $lang_charset, $lang_text_dir;

    $custom_header = cpg_get_custom_include($CONFIG['custom_header_path']);

        $charset = ($CONFIG['charset'] == 'language file') ? $lang_charset : $CONFIG['charset'];

    header('P3P: CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"');
        header("Content-Type: text/html; charset=$charset");
    user_save_profile();

    $template_vars = array('{LANG_DIR}' => $lang_text_dir,
        '{TITLE}' => $CONFIG['gallery_name'] . ' - ' . strip_tags(bb_decode($section)),
        '{CHARSET}' => $charset,
        '{META}' => $meta,
        '{GAL_NAME}' => $CONFIG['gallery_name'],
        '{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
        '{SYS_MENU}' => theme_main_menu('sys_menu'),
        '{SUB_MENU}' => theme_main_menu('sub_menu'),
        '{ADMIN_MENU}' => theme_admin_mode_menu(),
        '{CUSTOM_HEADER}' => $custom_header,
'{HASARD}' => hasard(),
        );

    echo template_eval($template_header, $template_vars);
}

Pour explication rapide, lorsque le moteur tombe sur le token {HASARD} il va exécuter la fonction hasard()

Ensuite on ajoute la fonction hasard() qu'on déclare avant la fonction pageheader() dans notre fichier.

Dans un premier temps nous allons afficher un texte uniquement sur la page d'accueil... Avec un petit peu de connaissance en PHP on arrive à :

Code: [Select]
function hasard()
{

$retour = "";
// On vérifie si on est sur la page index.php, si c'est le cas on affecte la phrase à la variable retour, sinon on fait rien...
if ($_SERVER['PHP_SELF'] == "index.php"){
     $retour .=  "Ce texte s'affiche à la place de notre token ! C'est presque magique ! ;)";
           }
  return $retour;


}

Problème n°2 : Comment dompter CpmFetch pour qu'il fasse ce qu'on lui demande ?

CpmFetch est vraiment un très bon mod, il est très complet voire trop complet ! La doc n'est pas complète  (en même temps ils ont pas que ça dans la vie c'est compréhensible...) donc il faut mettre les mains dans le camboui pour arriver à faire ce qu'on veut...

En fait ça pourrait marcher très bien avec l'exemple donné, le problème c'est que notre fonction hasard() n'est pas très coopérative, elle n'affiche rien ! Absolument rien, enfin j'y suis pas arrivé... Pour afficher il faut envoyer tout ce que l'on désire dans notre variable de retour... Et là ça se complique un tantinet... Donc si on reprend l'exemple dans un fichier nommé test.php, ça nous affiche ce qu'on désire mais si on le met dans notre fonction, ça ne marche pas !

Code: [Select]
<?php    
// This is at the top of your page
  
include_once "../cpmfetch/cpmfetch.php";  // Line 1
  
$objCpm = new cpm("../cpmfetch/cpmfetch_config.php"); // Line 2

// HTML code and stuff

// Here is a spot you want the 4 random images with no subtitle from category 1
  
$objCpm->cpm_viewRandomMediaFrom("cat=1s"41);  // Line 5

// HTML code and stuff

// Here is the bottom of the page, lets close things up
  
$objCpm->cpm_close();  // Line 6
?>

Allez hop on plonge dans le code pour savoir comment ça marche... Dans un premier temps si on ne veut pas que CpmFetch formate et affiche le résultat, il faut configurer le mode de sortie... Je vous le donne Emile :
Code: [Select]
$objCpm->cpm_setReturnType("resultset");En fouillant le code j'ai trouvé une fonction qui me convenait mieux, elle prend dans tous les albums ! C'est cpm_viewRandomMedia
Ca nous donne un truc du genre :
Code: [Select]
$resultat = $objCpm->cpm_viewRandomMedia(4, 1, $options);
Attention j'ai ajouté la variable resultat qui récupére toutes les données de nos 4 photos ! C'est un tableau à 2 dimensions... Yapluka ! Il suffit donc de retrouver les données qui nous intéressent et à les formater...
Code: [Select]
$retour .=  ' <div class="block">
  <h2 class="titre_menu">Images au hasard</h2><br /><table width="100%" align="center" cellspacing="0" cellpadding="0" border="0">';
foreach ($resultat as $image){
  $retour .=  '<tr><td align="center" width="100%"><a href="http://media.fanaticf1.com/displayimage-'.$image['pPid'].'.html"><img src="http://media.fanaticf1.com/'.$image['fullPathToThumb'].'" /></a>  <br>&nbsp;</td></tr>';
}
  $retour .=  '</table>  </div>';

Alors c'est propre à mon template, à vous de l'adapter évidemment ! En gros je fais un tableau dans lequel chaque image renvoie vers sa page... Je pense que ça n'a rien de légal XHTML mais bon... ::)

C'est fini
Au final mon fichier theme.php ressemble à :

Code: [Select]
function hasard()
{

$retour = "";
if ($_SERVER['PHP_SELF'] == "index.php"){
  include_once "cpmfetch/cpmfetch.php"; 
  $objCpm = new cpm("cpmfetch/cpmfetch_config.php");
  $objCpm->cpm_setReturnType("resultset");
  $resultat = $objCpm->cpm_viewRandomMedia(12, 1, $options);
  $objCpm->cpm_close(); 
 
  $retour .=  ' <div class="block">
  <h2 class="titre_menu">Images au hasard</h2><br /><table width="100%" align="center" cellspacing="0" cellpadding="0" border="0">';
foreach ($resultat as $image){
  $retour .=  '<tr><td align="center" width="100%"><a href="http://media.fanaticf1.com/displayimage-'.$image['pPid'].'.html"><img src="http://media.fanaticf1.com/'.$image['fullPathToThumb'].'" /></a>  <br>&nbsp;</td></tr>';
}
  $retour .=  '</table>  </div>';
}
  return $retour;


}


// Function for writing a pageheader
function pageheader($section, $meta = '')
{
    global $CONFIG, $THEME_DIR;
    global $template_header, $lang_charset, $lang_text_dir;

    $custom_header = cpg_get_custom_include($CONFIG['custom_header_path']);

        $charset = ($CONFIG['charset'] == 'language file') ? $lang_charset : $CONFIG['charset'];

    header('P3P: CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"');
        header("Content-Type: text/html; charset=$charset");
    user_save_profile();

    $template_vars = array('{LANG_DIR}' => $lang_text_dir,
        '{TITLE}' => $CONFIG['gallery_name'] . ' - ' . strip_tags(bb_decode($section)),
        '{CHARSET}' => $charset,
        '{META}' => $meta,
        '{GAL_NAME}' => $CONFIG['gallery_name'],
        '{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
        '{SYS_MENU}' => theme_main_menu('sys_menu'),
        '{SUB_MENU}' => theme_main_menu('sub_menu'),
        '{ADMIN_MENU}' => theme_admin_mode_menu(),
        '{CUSTOM_HEADER}' => $custom_header,
'{HASARD}' => hasard(),
        );

    echo template_eval($template_header, $template_vars);
}


Je sais, j'ai un peu tendance à raconter ma vie, mais j'espère que vous aurez tous bien compris  ;)
Logged
Avant de poser une question passez par ici . 90% des réponses s'y trouvent !

Pascal YAP

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 13833
  • Hello World :-)
    • CPG 1.5.x ExperiMental website
Re: Ajout d'un bloc uniquement sur index.php
« Reply #10 on: August 23, 2007, 12:33:40 am »

Hey,

C'est excellent comme solution ;)

C'est un bon sujet pour le WiKi... à vous de jouer dans ce sens (en écho à un autre post)
K+1  ;D

PYAP
Logged

Elwood J. Blues

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Gender: Male
  • Posts: 171
    • Eymard.net
Re: Ajout d'un bloc uniquement sur index.php
« Reply #11 on: August 23, 2007, 08:36:32 am »

Pour le Wiki je suis tout à fait disposer mais va falloir m'expliquer dans quelle rubrique l'ajouter  ;)
Logged
Avant de poser une question passez par ici . 90% des réponses s'y trouvent !

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: Ajout d'un bloc uniquement sur index.php
« Reply #12 on: August 23, 2007, 09:53:50 am »

Pour le Wiki je suis tout à fait disposer mais va falloir m'expliquer dans quelle rubrique l'ajouter  ;)
il suffit d'aller sur le wiki et de créer la page http://frantzk.free.fr/WikiFree/index.php?title=Creer_page
ensuite il ne reste plus qu'a la completer http://frantzk.free.fr/WikiFree/index.php?title=Ecrire_un_article.
Je me chargerais de la placer ensuite dans la bonne rubrique...
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

Elwood J. Blues

  • Contributor
  • Coppermine frequent poster
  • ***
  • Offline Offline
  • Gender: Male
  • Posts: 171
    • Eymard.net
Re: Ajout d'un bloc uniquement sur index.php
« Reply #13 on: August 23, 2007, 06:55:36 pm »

Je t'ai ajouté ce tuto aussi  ;)
Logged
Avant de poser une question passez par ici . 90% des réponses s'y trouvent !

François Keller

  • Moderator
  • Coppermine addict
  • ****
  • Country: fr
  • Offline Offline
  • Gender: Male
  • Posts: 9094
  • aka Frantz
    • Ma galerie
Re: Ajout d'un bloc uniquement sur index.php
« Reply #14 on: August 23, 2007, 09:36:22 pm »

Oui merci
Logged
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog
Pages: [1]   Go Up
 

Page created in 0.044 seconds with 19 queries.