où placer views/user/view.html.php

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #42239

Bonjour

où placer ./components/com_hikashop/views/user/view.html.php pour faire un override ?
dans ./templates/MONTPL/html/com_hikashop/user/view.html.php ça ne marche pas

le <table width="100%" class=""><tr><td style="text-align: center;" width="120px"> ect ... est codé dedans et il faut pouvoir le modifier

idem pour tous vos fichier view.html.php , le style ne pouvant bien évidement pas faire partie du code en dur

merci

Last edit: 12 years 8 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #42241

D'après la structure MVC de Joomla, les fichiers view.html.php ne sont pas overridable.

Ce que vous pouvez essayer, c'est de faire un plugin système pour cela en mettant le contenu du fichier dans le fichier du plugin.

Quelle genre de modification avez-vous besoin de faire ?

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #42244

je ne comprendrais jamais comment on peut mélanger le style et le code , ça fait plus de 10 ans qu'on parle de la séparation des métiers, pourquoi mettre des trucs de ce genre dans le code en dur ? <table width="100%" class=""><tr><td style="text-align: center;" width="120px">
comment connaissez vous le design pour dire que c'est center de 120px ?

j'ai modifie la fonction

function _quickiconButton( $link, $image, $text,$description,$level){
		$url = hikashop_level($level) ? 'onclick="document.location.href=\''.$link.'\';"' : '';
		$levelLink = hikashop_level($level) ? $link : '#';
		$html = '<a href="' . $levelLink . '">' . $description . '</a>';
		return $html;
	}

le problème c'est que tout ce boulot est a tracer et a refaire a chaque mise a jour

Quelle genre de modification avez-vous besoin de faire ?

dans tous votre code nettoyer les balises HTML et CSS qui imposent un style comme ce div hikashop_module qui empeche des float left ou non si on en a besoin
ou la balise style dans le HEAD que j'ai supprime

Last edit: 12 years 8 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #42246

Dans ce cas là, le CSS n'aurait pas aidé vu que vous avez changé tout l'HTML.
Il faudrait surtout déporter cela dans une vue.

Et je suis tout à fait d'accord avec vous. Ca n'aurait pas dû être fait comme cela à la base.
Pourquoi cela a été fait comme cela ? Pour gagner du temps. C'est un simple copier/coller du code utilisé sur le dashboard du back end d'HikaShop qui provient du dashboard d'AcyMailing.

Si vous faites un plugin système d'override cela vous éviterez de devoir le refaire à chaque mise à jour...

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #42247

Dans ce cas là, le CSS n'aurait pas aidé vu que vous avez changé tout l'HTML.

disons que vu que je retouchais le code autant y aller de bon coeur
au lieu de table on a de gros avantages souvent a utiliser des div display:table et table-cell ca evite les problemes de float et la lourdeur des table , une simple class pour les departager et on fait ce qu'on veut


pourquoi ne fournissez vous pas ce plugin pour ceux que ça intéresse ? et pas pour une view.html.php mais pour toutes

vous avez une piste ou un tuto quelque part pour faire ce type de plugin system ,ou un plugin system existant sur lequel je pourrais me baser ?
je viens de .net C# et je n'ai pas fait beaucoup de reecriture de Joomla dans ce sens

merci

Last edit: 12 years 8 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #42272

En fait l'idéal c'est même d'utiliser les tag HTML dd et dt comme fait joomla depuis 2.5
Cela permet d'avoir le meme rendu et très flexible également avec le CSS.


Pour le plugin, ca n'est pas très compliqué à partir du moment où vous savez faire des plugins pour joomla en général:

Copiez collez le plugin system hikashopuser (deux fichiers: plugins/system/hikashopuser.php et plugins/system/hikashopuser.xml).
renommer les fichiers et dans le xml adapter le nouveau nom du fichier pour que cela corresponde.
Ensuite, copiez/collez le code du view.html.php à la place du code dans le fichier php de votre plugin.
Ensuite, zippez les deux fichiers ensemble et vous avez votre paquet d'installation du plugin d'override pour ce fichier. Vous pouvez l'installer et le publier via le gestionnaire d'extensions de joomla.
Cette méthode est utilisable pour quasiment n'importe quelle classe d'HikaShop.

Attention, si vous avez un endroit ou une classe avec le même nom est utilisée, il faudra rajouter un check au début du fichier php comme ceci:
if($_GET!='com_hikashop' || $_GET!='user') return;

Cela évitera de charger votre override pour une autre page du site.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #42276

ok je vais essayer

merci bien

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #42370

J'ai fait ça en appelant le plugin hikashopuserview et en collant tout le contenu du view.html.php

pour avoir un nom de class différent j'ai renommé la class userViewUser extends JView en plgSystemHikashopuserview extends JView et tout le site plante , une page blanche, meme si je vais dans l'admin et que j'essaye d’éditer le plugin l'admin plante

Attention, si vous avez un endroit ou une classe avec le même nom est utilisée, il faudra rajouter un check au début du fichier php comme ceci:
if($_GET!='com_hikashop' || $_GET!='user') return;

mais on ne peut pas avoir 2 fois la meme class ou alors l faudrait des namespace

comment faire pour que ça ne plante pas je n'ai rien fait d'autre que coller le contenu et changer le nom de la class ?

si je garde le meme nom et que je met
if($_GET!='com_hikashop' || $_GET!='user') return;

c'est votre view.html.php qui est lu

Last edit: 12 years 8 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
12 years 8 months ago #42457

Il faut justement laisser le nom de classe par défaut dans le code.

Le fichier view.html.php original ne sera pas du tout chargé par Joomla si la classe userViewUser existe déjà, donc il n'y aura pas de conflit et le système utilisera automatiquement la classe de votre plugin.

Vous avez changer la classe pour le nom de classe d'un plugin Joomla normal mais vous avez laissé l'extend sur JView. Donc joomla essaie d'utiliser votre classe en pensant que c'est un plugin alors que c'est une vue. Normal que cela fasse crasher tout le site.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
12 years 8 months ago #42461

merci mais dans ce cas mon plugin que j'ai appele hikashopuserview n'est pas lu il est allé se mettre dans

./plugins/system/hikashopuserview/hikashopuserview.php et c'est toujours ./components/com_hikashop/views/user/view.html.php qui est lu

et si j'enleve if($_GET!='com_hikashop' || $_GET!='user') return; le site plante

il est bien sur active

Last edit: 12 years 8 months ago by erickb.

Please Log in or Create an account to join the conversation.

Time to create page: 0.072 seconds
Powered by Kunena Forum