Forum CMS Made Simple FR

Version complète : [Résolu] Mettre une image par défaut sur CGBlog
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.13
#~ Url du site : http://www.arcal.org/
#~ Hébergeur / Soft : OVH perso
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.13
#~ Installed Modules:
#~ CMSMailer: 5.2.2
#~ CMSPrinting: 1.0.5
#~ FileManager: 1.4.5
#~ MenuManager: 1.8.6
#~ MicroTiny: 1.2.9
#~ ModuleManager: 1.5.8
#~ News: 2.15
#~ Search: 1.7.12
#~ ThemeManager: 1.1.8
#~ Showtime: 3.4
#~ CGExtensions: 1.45
#~ CGSimpleSmarty: 1.7.4
#~ JQueryTools: 1.3.4
#~ CGBlog: 1.12.9
#~ NewsSlides: 1.4
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 64000000
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale: fr_FR.utf8
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.4.38
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 2048
#~ E_DEPRECATED: 8192
#~ memory_limit: 512M
#~ max_execution_time: 300
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: /tmp (0700)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: fpm-fcgi
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.5.41
#~ Server Db Grants: Impossible de trouver un privilège "GRANT ALL". Cela peut signifier que vous pourriez avoir des problèmes pour installer ou retirer des modules, ou encore l 'ajout et la suppression d'éléments, y compris les pages.
#~ Server Time Diff: Aucune différence de date du système de fichiers trouvées
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~


Bonjour,

Je voudrais qu'une photo par défaut s'affiche quand j'ajoute une news sans photo dans CGBlog afin de pas "dérégler" le design.

J'ai lu ça : http://www.how-i-did-that.com/cgblog/9/1...GBlog.html

J'ai fait ça :
Code :
[== PHP ==]
{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}
     <div class="CGBlogSummaryField">
        {if $field->type == 'image'}

           {if !empty($field)}
             <img src="{$entry->file_location}/{$field->value}" width='200' />
           {else}
             <img src="uploads/NCleanBlue/news.jpg" width='200' />
           {/if}

        {/if}
     </div>
  {/foreach}
{/if}


Mais la variable $field ne semble jamais vide même si aucune image n'est ajoutée : en retirant le ! ça m’affiche news.jpg.


Merci pour vos réponses.

Antoine
Peut-être en vidant les caches (navigateur et cms).
Regarde ce que contient $field car l'adresse n'est peut-être pas bonne, et comme tu n'as pas de alt= :
Code :
[== Indéfini ==]
{if $field->type == 'image'}
{$field}

           {if !empty($field)}
Bonjour,
ton test n'est pas bon, essaie plutôt ça :
{if !empty($field->value)}
Bien vu jissey Smile
Merci jissey, ça ne risquait pas de marcher mais ça ne fonctionne toujours pas Sad

J'ai testé ça :
Code :
[== Indéfini ==]
        {if $field->type == 'image'}
           {$field->value}
        {/if}

Je retrouve bien le nom des images sur les 2 news avec image mais ça ne me renvoit rien sur celle sans image.
L'adresse de news.jpg est bonne car elle apparait quand je retire le ! de !empty (uniquement sur les 2 news avec photo).
Bizarre, ton histoire. Et avec
{if $field->value !=""}
Code :
{if $field->value !=""}
              <img src="{$entry->file_location}/{$field->value}" width='200' />
           {else}
              <img src="uploads/NCleanBlue/news.jpg" width='200' />
           {/if}

news 1 = image 1 OK
news 2 = image 2 OK
news 3 = rien

Code :
[== Indéfini ==]
           {if $field->value ==""}
              <img src="{$entry->file_location}/{$field->value}" width='200' />
           {else}
              <img src="uploads/NCleanBlue/news.jpg" width='200' />
           {/if}
news 1 = news.jpg
news 2 = news.jpg
news 3 = rien
et ton image uploads/NCleanBlue/news.jpg, t'es sûr qu'elle existe?
Oui elle s'affiche bien quand je teste avec {if $field->value ==""}
[Image: news.jpg]
ne crie pas :lol:
d'après ton code, ça m'étonnerait qu'elle s'affiche :
Code :
[== Indéfini ==]
{if $field->value ==""}
              <img src="{$entry->file_location}/{$field->value}" width='200' />
de toute évidence le champ n'est jamais vide!
Fait un print_r de $field.
Code :
[== Indéfini ==]
{if $field->type == 'image'}
           <pre>{$field|print_r}</pre>
        {/if}
jissey a écrit :ne crie pas :lol:
d'après ton code, ça m'étonnerait qu'elle s'affiche :
Code :
[== Indéfini ==]
{if $field->value ==""}
              <img src="{$entry->file_location}/{$field->value}" width='200' />

Je testait ça justement pour voir si ce qui était après le {else} fonctionnait Smile
jissey a écrit :de toute évidence le champ n'est jamais vide!
Fait un print_r de $field.
Code :
[== Indéfini ==]
{if $field->type == 'image'}
           <pre>{$field|print_r}</pre>
        {/if}

Après les 2 news avec photo, j'ai ça :
Code :
[== Indéfini ==]
<pre>stdClass Object
(
    [name] => Photo
    [type] => image
    [value] => badauds_sur__la_place30x30cm_.JPG
)
1</pre>

En fait je pense que c'est le {if $field->type == 'image'} qui exclut directement les news sans image.
Il faudrait quelque chose du genre :
Code :
[== Indéfini ==]
{if !empty($field->type == 'image')}
   <img src="{$entry->file_location}/{$field->value}" width='200' />
{else}
   <img src="uploads/NCleanBlue/news.jpg" width='200' />
{/if}

mais ça me renvoit une erreur
J'ai carrément retiré le test {if $field->type == 'image'} mais ça ne change rien :

AVANT :

Code :
{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}
     <div class="CGBlogSummaryField">

        {if $field->type == 'image'}
           {if !empty($field->value)}
             <img src="{$entry->file_location}/{$field->value}" width='200' />
           {else}
             <img src="uploads/NCleanBlue/news.jpg" width='200' />
           {/if}
        {/if}

     </div>
  {/foreach}
{/if}


APRÈS :
Code :
[== Indéfini ==]
{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}
     <div class="CGBlogSummaryField">

        {if !empty($field->value)}
           <img src="{$entry->file_location}/{$field->value}" width='200' />
        {else}
           <img src="uploads/NCleanBlue/news.jpg" width='200' />
        {/if}

     </div>
  {/foreach}
{/if}
J'allège le code pour tester Smile
J'ai retiré aussi {if isset($entry->fields)} : aucun changement, même problème
Quand j'enlève {foreach from=$entry->fields item='field'} : toutes les news se retrouvent avec l'image news.jpg
Code :
[== Indéfini ==]
     <div class="CGBlogSummaryField">

        {if !empty($field->value)}
           <img src="{$entry->file_location}/{$field->value}" width='200' />
        {else}
           <img src="uploads/NCleanBlue/news.jpg" width='200' />
        {/if}

     </div>
fait des print_r pour qu'on s'y retrouve, c'est pas clair et ça commence à être trop embrouillé!!
Copie le résultat de ça :
Code :
[== Indéfini ==]
{foreach from=$entry->fields item='field'}
<pre>{$field|print_r}</pre>
{/foreach}
Toujours dans les tests :
Code :
[== Indéfini ==]
{if $entry->fields}
     <div class="CGBlogSummaryField">
        {if !empty($field->value)}
           <img src="{$entry->file_location}/{$field->value}" width='200' />
        {else}
           <img src="uploads/NCleanBlue/news.jpg" width='200' />
        {/if}
     </div>
{/if}

Je me retrouve avec l'image news.jpg uniquement dans les news avec image.
jissey a écrit :fait des print_r pour qu'on s'y retrouve, c'est pas clair et ça commence à être trop embrouillé!!
Copie le résultat de ça :
Code :
[== Indéfini ==]
{foreach from=$entry->fields item='field'}
<pre>{$field|print_r}</pre>
{/foreach}
Code :
[== Indéfini ==]
<h2>Nos actualités</h2>


<div class="CGBlogSummary">
<div class="CGBlogSummaryPostdate">
    Le 24 avril 2015
</div>
<div class="CGBlogSummaryLink">
<a href="http://www.arcal.org/index.php?mact=CGBlog,cntnt01,detail,0&amp;cntnt01articleid=5&amp;cntnt01returnid=15" title="News 1 (sans image)">News 1 (sans image)</a>
</div>
<div class="CGBlogSummarySummary">
    <p>Sommaire news 1</p>    </div>
</div>


<div class="CGBlogSummary">
<pre>stdClass Object
(
    [name] => Photo
    [type] => image
    [value] => badauds_sur__la_place30x30cm_.JPG
)
1</pre>
<div class="CGBlogSummaryPostdate">
    Le 24 avril 2015
</div>
<div class="CGBlogSummaryLink">
<a href="http://www.arcal.org/index.php?mact=CGBlog,cntnt01,detail,0&amp;cntnt01articleid=4&amp;cntnt01returnid=15" title="News 2 (avec image badauds.jpg)">News 2 (avec image badauds.jpg)</a>
</div>

<div class="CGBlogSummarySummary">
    <p>Sommaire news 2</p>    </div>
</div>


<div class="CGBlogSummary">
<pre>stdClass Object
(
    [name] => Photo
    [type] => image
    [value] => IMG_0541.JPG
)
1</pre>
<div class="CGBlogSummaryPostdate">
    Le 24 avril 2015
</div>
<div class="CGBlogSummaryLink">
<a href="http://www.arcal.org/index.php?mact=CGBlog,cntnt01,detail,0&amp;cntnt01articleid=2&amp;cntnt01returnid=15" title="News 3 (avec image IMG_0541.jpg)">News 3 (avec image IMG_0541.jpg)</a>
</div>
<div class="CGBlogSummarySummary">
    <p>Sommaire news 3</p>    </div>


</div>
je ne peux pas t'aider si tu me répond à côté!
Je n'ai pas CGBlog sous la main, c'est trop embrouillé pour moi, je sors.
oups! Désolé, j'avais pas scrollé...
essaye {if !empty($entry->fields.Image->value)}
Donc, si je ne me trompe pas :
Code :
[== Indéfini ==]
<div class="CGBlogSummaryField">
{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}    

                   <img src="{$entry->file_location}/{$field->value}" width='200' />

  {/foreach}
{else}
           <img src="uploads/NCleanBlue/news.jpg" width='200' />
{/if}
     </div>
Essaie pour voir, si c'est bon, on doit pouvoir se passer du foreach.
.
Quand j'écris ceci {if !empty($entry->fields.Image->value)} Image est le nom du champs.
Donc {if !empty($entry->fields.photo->value)} dans ton cas.
donc avec un mixte de JLC pour supprimer le foreach :
Code :
[== Indéfini ==]
<div class="CGBlogSummaryField">
{if isset($entry->fields)}
                     <img src="{$entry->file_location}/{$entry->fields.Image->value}" width='200' />

{else}
           <img src="uploads/NCleanBlue/news.jpg" width='200' />
{/if}
Pages : 1 2