#1 08-02-2010 13:48

Brice

Modification affichage et problème navigation par auteur, éditeur...

Bonjour,

Tout d'abord, merci et bravo pour GCWeb... Une fois découvert, la manie du référencement de mes livres m'a repris !

Alors, j'ai créé deux collections, une pour mes BD et une pour les autres livres : http://boucard.brice.perso.neuf.fr/mylibrary/
Les deux collections ont été crées avec la "catégorie" GCbooks mais pour mes livres j'ai simplement modifié le fichier gcs en remplaçant GCbooks par Perso.
Ensuite, j'ai fait une copie des fichiers gérant l'affichage de GCWeb et ai seulement changé le nom : ainsi cloud_GCbooks.php par exemple a été copié et nommé cloud_Perso.php.
J'ai modifié le list_Perso.php pour placer l'intitulé Série après l'éditeur et le remplacer par l'intitulé Collection.
J'ai modifié le listall_Perso.php pour renvoyer vers list_Perso.php et non plus list_GCbooks.php

Et vient le problème :
J'ai modifié menu_Perso.php en supprimant l'item permettant de filtrer par Série (inutile dans mon cas).
J'ai modifié également cloud_Perso.php pour qu'il ne fasse pas le nuage pour les séries/collections.

Mais lorsque j'essaie d'afficher un nuage par le biais du menu voici ce que j'obtiens :
http://boucard.brice.perso.neuf.fr/myli … ud#auteurs
Les nuages apparaissent bien mais au sein d'une multitudes de messages d'erreurs, deux en fait qui se répètent :


Warning: in_array() [function.in-array]: Wrong datatype for second argument in /var/www/b/bo/bou/boucard.brice.perso.neuf.fr/public_html/mylibrary/inc/bdd.php on line 482

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /var/www/b/bo/bou/boucard.brice.perso.neuf.fr/public_html/mylibrary/inc/bdd.php on line 491

Depuis l'affichage list_Perso.php, si je clique sur le nom d'un auteur ou édteur... j'obtiens le même résultat : les livres s'affichent mais après ces deux mêmes messages répétés de nombreuses fois et en plus apparaît un problème d'encodage ; voir par exemple :
http://boucard.brice.perso.neuf.fr/myli … sp$Goffman

Je me doute bien qu'il y a quelque chose que je n'ai pas modifié correctement mais avant d'essayer de modifier à tout va je préfère demander conseil et un peu d'aide.

Merci, à bientôt

#2 08-02-2010 19:16

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Bonjour et bienvenu.

J'ai l'impression que l'hébergement ne tient pas la charge, pourtant il n'y a qu'une petites 100ène d'éléments hmm alors que pour le BD il y en a 150.

Dans l'ordre essaie ceci :
  1) Vide le contenu du dossier /cache/bdd
  2) Si tu remets "GCbooks" comme type de collection, est ce que le problème est toujours présent ?

Quelle version de GCweb utilises-tu ? La 1.1 posède quelque optimisation et peut-être que cella suffira hmm mais j'en doute.
Quelle version de GCstar ?

Hors ligne

#3 08-02-2010 22:17

Brice
Invité

Re : Modification affichage et problème navigation par auteur, éditeur...

Bonsoir,

Alors j'utilise bien la version 1.1 de GCWeb ; pour ce qui est de GCStar, il s'agit de la version 1.4.3 sur Ubuntu.
Pour ce qui est des lenteurs, si tu as regardé dans l'après-midi il devait y avoir de la maintenance sur les pages perso sfr (et puis ça reste sfr...)

J'ai essayé de vider le cache mais j'y suis allé comme un bourin (directement depuis le ftp et ça n'a rien donné de bon, tu t'imagines) et le résultat était pas beau à voir.
Je refais une install propre et remets les fichiers gcs de base.
Le fait de vider le cache comme un bourin m'a tout de même permis de voir dans la page de configuration que je devais placer le modèle de collection de GCStar dans le répertoire conf/GCModels (message jamais vu jusque là) : est-ce que c'est cela qui permet de "créer" les nuages en partie ?

Sinon, quelle serait la meilleure solution pour modifier les éléments mentionnés dans mon premier post et ce seulement pour ma collection de livre ?
J'aimerai éviter de devoir créer un modèle de collection GCStar (j'ai bien essayé de récupérer le modèle GCbooks et de le copier mais il est en anglais, la version française (comme les autres langues) se faisant à travers des fichiers modèle_collection.pm) et ne modifier que légèrement les fichiers de GCWeb (la flemme de créer tout un squelette).

Sinon, pourquoi dans la vue list on a Série et dans la vue on passe à Collection ?

Merci, à+

#4 08-02-2010 23:35

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

J'ai essayé de vider le cache mais j'y suis allé comme un bourin (directement depuis le ftp ...

Non non c'est bien ce que je disais de faire, par contre il faut effacer uniquement le contenu de bdd (et pas la dossier lui même).

Le fait de vider le cache comme un bourin m'a tout de même permis de voir dans la page de configuration que je devais placer le modèle de collection de GCStar dans le répertoire conf/GCModels (message jamais vu jusque là) : est-ce que c'est cela qui permet de "créer" les nuages en partie ?

C'est en partie pour ça que je demandais la version. Ce fichier permet à gcweb de connaitre le type de champs (chiffre, tade, tableau ...) et de la traiter en conséquence. Pas contre vu ta bidouille au niveau du nom du gcmodel plutôt que de glisser les dossier modèle tu as peut-être intéret à éditer /conf/fieldstypes.php

#remplacer
		'GCbooks' => array(
				'numeric' => array('id','rank','pages','rating'),
				'date' => array('publication','added','acquisition'),
				'string' => array('isbn','title','edition','description','comments','translator','artist'),
				'bool' => array('read'),
				'list' => array('authors','publisher','language','serie','format','genre','location'),
				'image' => array('cover','backpic'),
				'unknow' => array(''),
				'url' => array('web')
			),
#par
		'GCbooks' => array(
				'numeric' => array('id','rank','pages','rating'),
				'date' => array('publication','added','acquisition'),
				'string' => array('isbn','title','edition','description','comments','translator','artist'),
				'bool' => array('read'),
				'list' => array('authors','publisher','language','serie','format','genre','location'),
				'image' => array('cover','backpic'),
				'unknow' => array(''),
				'url' => array('web')
			),
		'Perso' => array( #copier coller de GCbooks
				'numeric' => array('id','rank','pages','rating'),
				'date' => array('publication','added','acquisition'),
				'string' => array('isbn','title','edition','description','comments','translator','artist'),
				'bool' => array('read'),
				'list' => array('authors','publisher','language','serie','format','genre','location'),
				'image' => array('cover','backpic'),
				'unknow' => array(''),
				'url' => array('web')
			),

Sinon, quelle serait la meilleure solution pour modifier les éléments mentionnés

Ta technique est plutôt bonne smile juste que c'est un peu galère de modifié l'xml de sauvegarde gcweb à chaque mise ça jours hmm.
Pour ça tu peux créer un mini plugin? Grâce à ce dernier plus besoin d'envoyer le fichier smile

#/plugins/render_<nom_plugin>.php
if ($collec['id'] == 1) #2ème collection, la 1ère à pour id "0"
     $collec['type'] = 'Perso';

(Je n'ai pas testé)
Pour activé le plugin il faudra aller dans la page de config et l'enregistrer (même sans rien avoir modifié).

Hors ligne

#5 09-02-2010 02:10

Brice
Invité

Re : Modification affichage et problème navigation par auteur, éditeur...

jonas a écrit :

J'ai essayé de vider le cache mais j'y suis allé comme un bourin (directement depuis le ftp ...

Non non c'est bien ce que je disais de faire, par contre il faut effacer uniquement le contenu de bdd (et pas la dossier lui même).

Oui... En même temps, ce n'était pas trop grave. Sinon, il y quand même une méthode plus soft via la page de configuration.

Pas contre vu ta bidouille au niveau du nom du gcmodel plutôt que de glisser les dossier modèle tu as peut-être intéret à éditer /conf/fieldstypes.php

#remplacer
		'GCbooks' => array(
				'numeric' => array('id','rank','pages','rating'),
				'date' => array('publication','added','acquisition'),
				'string' => array('isbn','title','edition','description','comments','translator','artist'),
				'bool' => array('read'),
				'list' => array('authors','publisher','language','serie','format','genre','location'),
				'image' => array('cover','backpic'),
				'unknow' => array(''),
				'url' => array('web')
			),
#par
		'GCbooks' => array(
				'numeric' => array('id','rank','pages','rating'),
				'date' => array('publication','added','acquisition'),
				'string' => array('isbn','title','edition','description','comments','translator','artist'),
				'bool' => array('read'),
				'list' => array('authors','publisher','language','serie','format','genre','location'),
				'image' => array('cover','backpic'),
				'unknow' => array(''),
				'url' => array('web')
			),
		'Perso' => array( #copier coller de GCbooks
				'numeric' => array('id','rank','pages','rating'),
				'date' => array('publication','added','acquisition'),
				'string' => array('isbn','title','edition','description','comments','translator','artist'),
				'bool' => array('read'),
				'list' => array('authors','publisher','language','serie','format','genre','location'),
				'image' => array('cover','backpic'),
				'unknow' => array(''),
				'url' => array('web')
			),

Alors j'ai fait la modif et ça marche plutôt très bien, comme tu peux le constater :-) J'ai refait du coup les fichier squelette_Perso.php en me basant sur les squelette_GCbooks.php en les modifiant selon mon bon goût (changements minimaux de toute façon vu mes besoins et mes compétences inexistantes en php).

Ta technique est plutôt bonne :) juste que c'est un peu galère de modifié l'xml de sauvegarde gcweb à chaque mise ça jours :/.
Pour ça tu peux créer un mini plugin? Grâce à ce dernier plus besoin d'envoyer le fichier :)

#/plugins/render_<nom_plugin>.php
if ($collec['id'] == 1) #2ème collection, la 1ère à pour id "0"
     $collec['type'] = 'Perso';

(Je n'ai pas testé)
Pour activé le plugin il faudra aller dans la page de config et l'enregistrer (même sans rien avoir modifié).

Bon c'est vrai que changer le type de collection avant chaque envoi sur le serveur et après envoi peut s'avérer pénible surtout en cas d'oubli mais bon en utilisant deux lignes que l'on commente comme ça va bien au bon moment, on s'en sort pas trop mal.
L'idée du plugin me plaît bien mais malheureusement ça ne fonctionne pas. Au cas où voici ce que j'ai fait : le fichier intitulé render_changeType.php contient le code que tu as donné (j'ai rajouté les balises php) :

<?php if ($collec['id'] == 1)
     $collec['type'] = 'Perso';?>

Merci beaucoup et à+

#6 09-02-2010 19:11

Brice
Invité

Re : Modification affichage et problème navigation par auteur, éditeur...

Salut,

Alors, j'ai essayé en ne mettant pas de capitale dans le nom mais il semblerait que ça ne change rien (et puis d'autres plugins ont des capitales...). Sans les balises php, le contenu du fichier s'affiche en haut de la page d'accueil.

Mais c'est vrai qu'un plugin serait vachement utile : en effet, j'ai ajouté des champs personnalisés dans ma collection de BD, en l'occurence les champs Scénario, Dessin, Couleurs sous forme de list comme pour les champs auteurs.
L'idée est donc de créer dans GCWeb un type "BD_Perso" en modifiant le fichier fieldstypes.php en ajoutant quelque chose comme :

		'BD_Perso' => array(
                'numeric' => array('id','rank','pages','rating'),
                'date' => array('publication','added','acquisition'),
                'string' => array('isbn','title','edition','description','comments','translator','artist'),
                'bool' => array('read'),
                'list' => array('authors','publisher','language','serie','format','genre','location','gcsfield1','gcsfield2','gcsfield3'),
                'image' => array('cover','backpic'),
                'unknow' => array(''),
                'url' => array('web')
            ),

sachant que les champs personnalisés appraissent dans le fichier de la collection sous cette forme :

<userCollection>
  <fields>
    <field displayed="Scénario" flat="true" group="Champs utilisateur" history="true" init="" label="Scénario" type="single list" value="gcsfield1" />
    <field displayed="Dessin" flat="true" group="Champs utilisateur" history="true" init="" label="Dessin" type="single list" value="gcsfield2" />
    <field displayed="Couleur" flat="true" group="Champs utilisateur" history="true" init="" label="Couleur" type="single list" value="gcsfield3" />
    <field displayed="Encrage / Lettrage" flat="true" group="Champs utilisateur" history="true" init="" label="Encrage / Lettrage" type="single list" value="gcsfield4" />
  </fields>
  <filters>
  </filters>
  <groups>
    <group id="Champs utilisateur" label="Champs utilisateur" />
  </groups>
  <panels>
    <panel editable="true" label="PanelForm" name="form">
      <userItem expand="true" title="Champs utilisateur" type="tab" userDefined="1" value="bla">
        <userItem cols="4" expand="true" rows="4" type="table">
          <userItem col="0" collapsed="%gcsfield1%" colspan="3" expand="default" row="0" style="expander" title="Scénario" type="expander">
            <userItem expand="default" for="gcsfield1" type="value" />
          </userItem>
          <userItem col="0" collapsed="%gcsfield2%" colspan="3" expand="default" row="1" style="expander" title="Dessin" type="expander">
            <userItem expand="default" for="gcsfield2" type="value" />
          </userItem>
          <userItem col="0" collapsed="%gcsfield3%" colspan="3" expand="default" row="2" style="expander" title="Couleur" type="expander">
            <userItem expand="default" for="gcsfield3" type="value" />
          </userItem>
          <userItem col="0" collapsed="%gcsfield4%" colspan="3" expand="default" row="3" style="expander" title="Encrage / Lettrage" type="expander">
            <userItem expand="default" for="gcsfield4" type="value" />
          </userItem>
        </userItem>
      </userItem>
    </panel>
    <panel editable="false" label="PanelReadOnly" name="readonly">
      <userItem title="Champs utilisateur" type="expander" userDefined="1">
        <userItem cols="2" expand="true" rows="4" type="table">
          <userItem col="0" for="gcsfield1" row="0" type="label" />
          <userItem col="1" colspan="1" expand="true" flat="false" for="gcsfield1" row="0" type="value" />
          <userItem col="0" for="gcsfield2" row="1" type="label" />
          <userItem col="1" colspan="1" expand="true" flat="false" for="gcsfield2" row="1" type="value" />
          <userItem col="0" for="gcsfield3" row="2" type="label" />
          <userItem col="1" colspan="1" expand="true" flat="false" for="gcsfield3" row="2" type="value" />
          <userItem col="0" for="gcsfield4" row="3" type="label" />
          <userItem col="1" colspan="1" expand="true" flat="false" for="gcsfield4" row="3" type="value" />
        </userItem>
      </userItem>
    </panel>
  </panels>
</userCollection>

Ensuite il ne me restera plus qu'à créer les fichiers squelette_BD_Perso.php en me basant sur les squelette_GCbooks.php.

GCWeb aura-t-il des problèmes pour traiter ces champs personnalisés ?
Et as-tu d'autres pistes pour ce plugin, ce serait vraiment cool :-)

Merci et à+

#7 09-02-2010 20:13

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Via un plugin se ne serrait pas impossible mais il y a beaucoup plus simple smile

Créer un fichier /conf/config.complement.php

<?php
$conf['collections'][1]['type']='BD_Perso';
?>

GCWeb aura-t-il des problèmes pour traiter ces champs personnalisés ?

Normallement non. Il faudra juste mettre à jour /conf/fieldstypes.php en mettant ton model GCstar dans le dossier /conf/GCModels puis enregistrer la page de config. (puis refaire le copier coller dans /conf/fieldstypes.php si tu modifies le type de collection avec config.complement.php

Hors ligne

#8 09-02-2010 21:34

Brice
Invité

Re : Modification affichage et problème navigation par auteur, éditeur...

Salut,

Alors je pense que je me suis mal exprimé : j'ai créé ma collection de BD à partir du modèle GCbooks ; par la suite, j'ai ajouté des champs (dans GCStar : Édition -->Modifier les champs - je crois) et ces champs ne sont pas définis dans un modèle particulier mais au sein du fichier de la collection (fichier.gcs) comme collé dans mon post précédent.
Dans ce cas, il me suffit de simplement modifier le fichier fieldstypes.php (et de créer un config.complement.php) ?

Et en ce qui concerne ma collection de livres pour lesquels j'ai commencé par bidouiller le type directement dans le fichier gcs, il me suffirait également de passer simplement par le config.complement.php ?

Ce qui donnerait :

<?php
$conf['collections'][0]['type']='BD_Perso';
$conf['collections'][1]['type']='Perso';
?>

A moins que le config.complement.php ne renvoie directement vers les modèles dans /conf/GCModels/ ?

Merci de m'éclairer. A+

#9 09-02-2010 22:39

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Effectivement j'avais mal compris pour les champs personnalisé. Ce n'est actuellement pas prévu sad mais j'ai ajouté ça dans les demande de fonctionnalitée pour la 2.0 http://jonas.tuxfamily.org/bugs/index.p … task_id=79

En attendant il faudra faire ça "à la main". Dans ton fichier fieldstypes.php ajoute pour la collection en question gcsfield1, gcsfield2 ... en fonction de leur "type" (dans ton cas 'string' ou 'list', faudrais que je vois un "item" type du fichier de sauvegarde de gcstar.

Et en ce qui concerne ma collection de livres pour lesquels j'ai commencé par bidouiller le type directement dans le fichier gcs, il me suffirait également de passer simplement par le config.complement.php ?

Oui (en faite je croyais que tu parlais toujours de la collection "Perso" smile

A moins que le config.complement.php ne renvoie directement vers les modèles dans /conf/GCModels/ ?

Pas sur d'avoir compris. Le type de collection est stocker dans config.php. Mais ce fichier config.php est recrérer à chaque enregistrement de la page de config. J'ai donc mis en place ce config.complement.php qui permet de modifier de façon durable une paramêtre de configuration.
Le résultat au niveau du moteur de GCweb est exactement le même que si tu avais modifié le champs dans le fichier de sauvegarde de GCstar.

Hors ligne

#10 10-02-2010 03:52

Brice
Invité

Re : Modification affichage et problème navigation par auteur, éditeur...

Alors je dois avouer que si la découverte de GCWeb m'a vraiment bien stimulé, le fait de bidouiller (finalement que très légèrement) me rend assez admiratif et fier de n'utiliser que du libre (malgré quelques entorses... maudit monde du travail !) : les possibilités de personnalisation sont quand même assez incroyables.

Bon, récapitulatif de ce que j'ai fait :
- création d'un config.complement.php dans lequel je déclare le type personnalisé de collection selon l'id de la collection [voir ci-dessus] ;
- modification de fieldstypes.php en ajoutant les champs personnalisés ajoutés à la collection GCStar [voir ci-dessus] ;

A propos de ces champs personnalisés :
* les champs créés pour une collection basée sur un modèle de base sont déclarés dans le fichier de la collection (.gcs), entre les balises <userCollection></userCollection> [voir ci-dessus] ;
* ensuite chaque entrée de la collection se voit augmentée des champs créés comme ceci :

 <item
  id="3"
  isbn="9782871295785"
  title="Le Sommet des dieux, tome 1"
  cover="/home/bbrice/Bibliotheque/mesbd_pictures/Le_Sommet_des_dieux__tome_1_1.jpg"
  backpic=""
  publisher="Kana"
  publication="2004"
  language=""
  serie="Le Sommet des dieux"
  edition=""
  format=""
  pages=""
  web="http://www.amazon.fr/Sommet-dieux-1-Taniguchi/dp/2871295786/ref=sr_1_1/279-9396433-8606908?ie=UTF8&s=books&qid=1265479007&sr=1-1##Amazon (FR)"
  read="0"
  added="06/02/2010"
  rating="0"
  acquisition=""
  location=""
  translator=""
  artist=""
  borrower="none"
  lendDate=""
  borrowings=""
  favourite="0"
  tags=""
  gcsfield3=""
  gcsfield4=""
 >
  <description></description>
  <comments></comments>
  <authors>
   <line>
    <col>Jirô Taniguchi</col>
   </line>
   <line>
    <col>Yumemakura Baku</col>
   </line>
  </authors>
  <genre>
   <line>
    <col>Manga</col>
   </line>
   <line>
    <col>Seinen</col>
   </line>
  </genre>
  <gcsfield1>
   <line>
    <col>Yumemakura Baku</col>
   </line>
  </gcsfield1>
  <gcsfield2>
   <line>
    <col>Jirô Taniguchi</col>
   </line>
  </gcsfield2>
 </item>

Pour en revenir à ce que j'ai fait ensuite, c'est simple j'ai créé un ensemble de squelettes.
Par contre, c'est assez délicat à gérer : pour la vue en liste j'ai conservé le champ auteur, c'est seulement dans la vue item que j'utilise les champs Scénario, Dessin et Couleur.
Ce qui fait que lorsque je clique sur un dessinateur, je n'obtiens que les BD où la personne est dessinateur, ce qui est logique mais peut être déroutant, d'où l'ajout d'une ligne Tout... avec cette fois les éléments apparaissant dans le champ auteur.

Une suggestion : pourquoi ne pas faire apparaître le nom de l'auteur (ou de la série ou de l'éditeur...) en haut de liste après un clic sur l'un des éléments ? (ce qui pourrait être pratique nan ? -- et [mode intérêt=on]me permettrait d'ajouter à cet endroit, une référence genre Dessin, Scénario et un lien Voir tout ou quelque chose du genre [mode intérêt=off])

Une autre : ne serait-il pas intéressant de regrouper tous les fichiers personnalisés de squelettes (list_Perso.php et autres) dans un dossier autre que /templates/default pour éviter d'éventuels "soucis" lors des mises à jours ?

Une question maintenant : dans la vue item je fais appel au champ auteur (élément Tout... : ) :

echo '<li><span class="label" style="font-style: italic;">'.__('Tout...').' :   </span><span class="info">'.filter('authors==',$item['authors']).'</span></li>';

mais cette ligne est inintéressante lorsque le champ auteur contient "Collectif". Il me faudrait donc tester que le champ auteur n'est pas Collectif. Si je saurais faire en javascript, en php j'aimerais bien avoir ton expertise là-dessus.

Merci beaucoup.

#11 10-02-2010 20:07

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Ce qui fait que lorsque je clique sur un dessinateur, je n'obtiens que les BD où la personne est dessinateur

Il est peut-être possible de changer ce comportement. essaie de remplacer

filter('authors==',$item['authors'])
#par
<a href="?collec='.$collec['id'].'&model='.$model.'&filter=authors=='.$item['authors'].'|gcsfield1=='.$item['authors'].'|gcsfield2=='.$item['authors'].'|gcsfield3=='.$item['authors'].'" '.$optionBalise.'>'.convstr::motor2xml($text).'</a>'

(ou un truc qui resemble) mais : http://jonas.tuxfamily.org/bugs/index.p … task_id=80

Une suggestion : pourquoi ne pas faire apparaître le nom de l'auteur (ou de la série ou de l'éditeur...) en haut de liste après un clic sur l'un des éléments ?

Pourquoi pas, genre mettre un titre à la page mais ce n'est pas si simple (il y a les recherche qui contiennent le mot (=) avec le mot exacte (==) qui ne contienne pas (!=) ..., enfin ... je verrais ... peut-être : http://jonas.tuxfamily.org/bugs/index.p … task_id=81

Il me faudrait donc tester que le champ auteur n'est pas Collectif

Boha c'est la même chose qu'en javascript

if ($item['authors'] == 'Collectif')
{
    .... ;
}
else
{
    .... ;
}

Selon ce que tu veux faire (je n'ai pas compris ce que tu voulais comme comportement avec collectif) il y a des syntaxe plus compact

echo (($item['authors'] == 'Collectif') ? 'c'est un collectif' : 'ce n'est pas un collectif')

Hors ligne

#12 10-02-2010 23:00

Brice
Invité

Re : Modification affichage et problème navigation par auteur, éditeur...

Salut,

Alors en ce qui concerne le champ auteur comprenant Collectif, c'est intéressant par exemple pour l'affichage en liste ; par contre, je souhaite avoir plus de détails pour l'affichage par item, d'où le recours aux champs Scénario, Dessin et Couleurs.

Vu le comportement du clic sur les auteurs apparaissant dans les champs scénario (seulement les BD où l'auteur est scénariste), dessin (seulement les BD est dessinateur) et couleur (seulement les BD où l'auteur est coloriste), je souhaite rajouter une ligne à partir de laquelle on ait accès à l'ensemble des BD de chaque auteur. Un exemple flagrant est Jirö Taniguchi qui peut être seulement dessinateur (http://boucard.brice.perso.neuf.fr/myli … $Taniguchi) ou au scénario (http://boucard.brice.perso.neuf.fr/myli … $Taniguchi)
Résultats à comparer avec ce que renvoie un clic sur cet auteur dans le champ auteur : http://boucard.brice.perso.neuf.fr/myli … $Taniguchi

Mais je souhaiterai ne pas avoir cette ligne "Tout :" lorsque le nom de l'auteur est "Collectif", comme par exemple ici : http://boucard.brice.perso.neuf.fr/myli … m&item=105

Voilà ce que j'ai tenté mais sans succès :

                        if ($item['authors'] != 'Collectif') {echo '<li><span class="label" style="font-style: italic;">'.__('Tout...').' :   </span><span class="info">'.filter('authors==',$item['authors']).'</span></li>';}
                        echo (($item['authors'] != 'Collectif') ? '<li><span class="label" style="font-style: italic;">'.__('Tout...').' :   </span><span class="info">'.filter('authors==',$item['authors']).'</span></li>' : '');

Sinon je teste ta proposition pour le comportement sur le clic sur les éléments des champs scénario, dessin et couleurs plus tard.

Enfin, je ne sais pas si je n'ai pas bien regardé, ou si c'est un élément que tu n'as pas relevé dans les suggestions que j'ai faites : le fait de pouvoir placer les éléments "squelettes" pour les collections personnelles ailleurs que dans /templates/default ?

Merci encore, et à+

#13 10-02-2010 23:48

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Essaie avec

if (in_array('Collectif', $item['authors'])) ...

Si ça ne marche pas met voir un "print_r($item['authors'])" et donne moi le résultat.

Pour le template (élément squelettes), le plus simple est de créer ton template.
Copie /templates/default dans /templates/<ton template> et configure <ton template> dans la page de config.

Hors ligne

#14 11-02-2010 00:11

Brice
Invité

Re : Modification affichage et problème navigation par auteur, éditeur...

Alors si je mets

                        if (in_array('Collectif', $item['authors'])) {echo (($item['authors'] != 'Collectif') ? '<li><span class="label" style="font-style: italic;">'.__('Tout...').' :   </span><span class="info">'.filter('authors==',$item['authors']).'</span></li>' : '');}

la ligne Tout : ... n'apparaît pas pour les items dont le champs auteur est différent de Collectif. Or ce que je voudrais faire c'est l'inverse.
http://boucard.brice.perso.neuf.fr/myli … m&item=103
http://boucard.brice.perso.neuf.fr/myli … m&item=105

Suis-je assez clair ?

Pour ce qui est des templates, je n'avais pas pensé à ça...

Merci encore, à+

#15 11-02-2010 02:04

Brice
Invité

Re : Modification affichage et problème navigation par auteur, éditeur...

Encore un nouveau message... et pourtant j'essaie de tout faire pour ne pas te persécuter :-)

jonas a écrit :

Essaie avec
Pour le template (élément squelettes), le plus simple est de créer ton template.
Copie /templates/default dans /templates/<ton template> et configure <ton template> dans la page de config.

Alors pour le template, j'ai essayé de suivre ton raisonnement : n'utilisant pas le thème "default" mais "default_alien" j'ai essayé de copier le contenu du dossier "default_alien" vers "default_alien_perso" en y ajoutant tous les élements de "squelette" pour mes types de collection Perso et BD_Perso et après configuration, je me retrouve avec

Les fichiers de thème de cette collection n'ont pas encore été créés. Cliquez ici pour les créer

Et si je lance le générateur, je relève cela :

À enregistrer dans : .../mylibrary/inc/../templates/default_alien_perso/main_BD_Perso.php

Qu'est-ce que le répertoire inc/ a à voir avec les thèmes ? Je vois bien qu'il y a le themegenerator.php et le convGCmodels.php dedans notamment mais pourquoi un tel chemin pour l'enregistrement ?


Pour en revenir à ta proposition pour modifier le comportement du clic sur un des éléments des champs Scénario, Dessin ou Couleur

Il est peut-être possible de changer ce comportement. essaie de remplacer

filter('authors==',$item['authors'])
#par
<a href="?collec='.$collec['id'].'&model='.$model.'&filter=authors=='.$item['authors'].'|gcsfield1=='.$item['authors'].'|gcsfield2=='.$item['authors'].'|gcsfield3=='.$item['authors'].'" '.$optionBalise.'>'.convstr::motor2xml($text).'</a>'

j'ai le regret de t'annoncer que malgré toute mes tentatives je me retrouve avec une erreur de syntaxe php due aux ' ou " ; voici la ligne telle qu'elle est actuellement :

if (test($item['gcsfield1']))       echo '<li><span class="label">'.__('Scénario').' :   </span><span class="info">'.filter('gcsfield1==',$item['gcsfield1']).'</span></li>';

Merci beaucoup et à+

#16 11-02-2010 19:11

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Or ce que je voudrais faire c'est l'inverse.

Oups ! pardon big_smile

if (!in_array ...

j'ai essayé de copier le contenu du dossier "default_alien" vers "default_alien_perso"

En faite un "template" gcweb peut :
  * Soit n'être qu'une feuille de style et utilisé le code html du thème default
  * Soit modifier le code html et avoir une feuille de style
  * soit un truc entre deux et c'est le cas de Alien. En faite si le fichier <model>_<type>.php n'est pas trouver dans le thème gcweb ça prendre celui du thème default.

Ton cas étant un peu particulier voula comment tu devras procéder
  1) Copier default dans <ton theme>
  2) Copier alien dans <ton theme> en écrasant le fichier existant déjà

Qu'est-ce que le répertoire inc/

.. veux dire "dossier parent" dans si on résume .../mylibrary/inc/../templates/default_alien_perso/main_BD_Perso.php = .../mylibrary/templates/default_alien_perso/main_BD_Perso.php

j'ai le regret de t'annoncer que malgré toute mes tentatives...

if ($item['gcsfield1']) {
    echo '<li><span class="label">'.__('Scénario').' :   </span><span class="info">
        <a href="?collec='.$collec['id'].'&model='.$model.
                '&filter=authors=='.$item['gcsfield1'].
                        '|gcsfield1=='. $item['gcsfield1'].
                        '|gcsfield2=='. $item['gcsfield1'].
                        '|gcsfield3=='. $item['gcsfield1'].
                        '|gcsfield4=='. $item['gcsfield1'].
                '" '.$optionBalise.'>'.convstr::motor2xml($text).'
            </a></span></li>';
}

Hors ligne

#17 15-02-2010 22:24

Brice
Invité

Re : Modification affichage et problème navigation par auteur, éditeur...

Salut,

Alors j'ai essayé le code que tu as donné, mais ça plante... Je ne saurai trop dire où sachant que je ne comprends guère (en tout cas pas assez ce morceau).
Mais sinon, je trouve le fonctionnement actuel vraiment intéressant finalement.

Sinon, pour ce qui est du template, j'ai fait comme tu as dit et ça fonctionne impeccablement.

Par contre, j'ai fait un essai rapide avec une collection DVD et il semblerait qu'il y ait un bug dans le templates default et default_alien, au niveau de la liste d'acteurs comme tu peux le voir ici :
http://boucard.brice.perso.neuf.fr/myli … tem&item=1

A moins que cela ne soit normal (je parle des tirets) ?

A+

#18 15-02-2010 23:20

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Pour le code je regarderai quand je trouverai le temps (relance moi si pas de réponse d'ici la fin du weekend prochain).

Pour le thème alien je me demandais justement si tu avais apporté des modifications car je suis étonné qui n'y a pas plus de problème (il a été réalisé pour gcweb 1.0 voir même une version précédente).

Je ne peux malheureusement pas m'occuper de la maintenance de ce thème mais je sais que panda qui l'a réalisé c'était largement basé sur le thème roundedblue. Pour ce dernier ces bug on été corrigé, je te laisse donc voire les modifications apporté à ce dernier : http://svnweb.tuxfamily.org/comp.php?re … &path=%2F&

Et/ou consulter le log http://svnweb.tuxfamily.org/log.php?rep … ss&rev=231

PS : il est peut être plus simple de repartir sur le thème roundedblue, car ce ne sont "que" dans changement de couleur. (un coup de "pipette" sur le une couleur du thème rounded blue, tu cherches le code hexa de la couleur (#3455FF) dans style.css, un coup de pipette sur le même élément de alien et tu remplaces le code hexa de style.css)

Si tu parviens à corriger (ou regréer un thème) je serais heureux d'intégré ton travail à la biblio des thèmes wink.

Hors ligne

#19 17-02-2010 12:22

Brice
Membre
Inscription : 17-02-2010
Messages : 45
Site Web

Re : Modification affichage et problème navigation par auteur, éditeur...

Salut,

Alors j'ai regardé les fichiers css et j'ai donc fait ce que tu suggérais, à savoir une mise à jour du template default_alien : j'ai repris le roundedblue et ai modifié les éléments qui vont bien en reprenant exactement les couleurs et certains ajouts de Panda (hover notamment).
J'ai créé une archive du thème : http://boucard.brice.perso.neuf.fr/myli … rso.tar.gz

Alors, je n'ai pas vraiment fait le tri : dans l'archive il y a tous les fichiers nécessaires pour que cela fonctionne chez moi, c'est-à-dire l'ensemble des fichiers php pour chaque type de collection (au vu de ma bidouille...). Je pourrai faire le tri si tu le désires.
J'ai en gros seulement modifié les fichier style.css (les autres css ne montrant aucune différence d'avec le thème roundedblue, j'ai simplement copié les fichiers de ce thème) ainsi que le foot.php où j'ai ajouté une mention pour la mise à jour.

Je verrai si des idées de template germent au cœur de mon esprit... J'ai bien une idée : permettre de présenter les collections dans la page d'accueil par colonne un peu comme avec Joomla : dernier article sur une seule colonne, articles plus anciens sur deux colonnes par exemple ; le truc chiant c'est que cela fonctionne avec des <table> et c'est quand même pas super chouette. Je pense donc que l'on peut utiliser des <div> avec une contrainte sur la taille : par exemple 45% et le second lui mettre une margin-left à 50% par exemple. Mais quid alors du troisième, du quatrième... ?
Là ça sort un peu de mes compétences, je bidouille seulement un peu... Sinon, je jouerai assez facilement sur les bordures, marges, couleurs et on verra ce que cela donne. Enfin, l'idée est quand même d'essayer de produire quelque chose d'original.

Une suggestion enfin : ne serait-il pas permis d'envisager une sorte de color-chooser sur le même modèle que le template-generator : à partir du thème choisi, un outil nous permettrait très facilement de changer les couleurs et seulement les couleurs ?

Encore merci et à+

Hors ligne

#20 17-02-2010 19:33

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Je te remercie pour l'adaptation du thème. Je le mettrai très certainement en ligne ce weekend.
Concernant tes 1 colonne/2 colonnes, je ne sais pas si c'est réalisable avec le *.php actuelle. Car aucune class ou id ne différencie les 1er éléments des suivant. Il faudrais donc aussi ré-écrire les list*****.php.

Pour ta suggestion de color-chooser ça ne ferra pas du tout partie de mes priorité car c'est tout de même complexe à réalisé et je ne juge pas ça très utile. Mais je le met dans les features request wink

Hors ligne

#21 18-02-2010 21:43

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Hors ligne

#22 19-02-2010 12:34

jonas
Administrator
Inscription : 25-06-2006
Messages : 729

Re : Modification affichage et problème navigation par auteur, éditeur...

Et le code ... il y avait pas mal de chose auquel je n'avais pas pensé ...

<?php
                            if (test($item['authors'])) {
                                $tmplink = array();
                                foreach ($item['authors'] as $value) {
                                        $tmplink[] = '
                                                <a href="?collec='.$collec['id'].'&model='.$collec['model'].
                                                    '&filter=authors=='.$value.
                                                            ',|gcsfield1=='. $value.
                                                            ',|gcsfield2=='. $value.
                                                            ',|gcsfield3=='. $value.
                                                            ',|gcsfield4=='. $value.
                                                    '" >'.convstr::motor2xml($value).'
                                                </a>';
                                }
                                if (count($tmplink) > 0) {
                                    echo '
                                        <li>
                                            <span class="label">'.__('Auteurs').' :   </span>
                                            <span class="info">
                                                '.join(', ',$tmplink).'
                                            </span>
                                        </li>';
                                }
                            }
                        ?>

les [c]__('Auteurs')[/c] et [c]$item['authors'][/c] sont bien sûr à remplacer par les champs à afficher par ex par [c]__('Scénario')[/c] et [c]$item['gcsfield1'][/c]

Hors ligne

#23 12-03-2010 10:54

Brice
Membre
Inscription : 17-02-2010
Messages : 45
Site Web

Re : Modification affichage et problème navigation par auteur, éditeur...

Salut Jonas,
Ça faisais un moment que je n'étais pas passé. Je regarde ce que donne ce code prochainement et te tiens au courant.

Merci encore et à+

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Si vous êtes un être humain ne changez pas le contenu de ces deux champs.

Pied de page des forums