Page 1 sur 2

Type de champs URL

Posté : mar. 19 avr. 2011 14:40
par chr!x
Bonjour,

Je pense qu'un type de champs URL serait une bonne chose. Ca permettrait de renvoyer à des sources extérieures. Evidemment, je peux déjà créer un simple champs, mais le lien n'est pas cliquable.

Bonne continuation pour cet excellent projet, de surcroit français ce qui est un confort supplémentaire pour les utilisateurs qui parlent la langue de Molière. :mrgreen:

Re: Type de champs URL

Posté : mar. 19 avr. 2011 15:56
par steevo
Il est possible d'avoir des liens.
Il faut dans un champ simple saisir l'url complète et si dans la configuration du composant vous avez sélectionné "texte avec lien" dans l'option "affichage des liens web", l'url doit apparaitre sous forme de lien.
Le principe est le même pour des adresses mail.
Je pense que dans le futur, il y aura un vrai type url afin de pouvoir avoir un texte du lien personnalisé.

Re: Type de champs URL

Posté : mer. 20 avr. 2011 08:49
par chr!x
Merci de votre réponse, comme à l'accoutumée toujours très prompte.
steevo a écrit :Il faut dans un champ simple saisir l'url complète et si dans la configuration du composant vous avez sélectionné "texte avec lien" dans l'option "affichage des liens web", l'url doit apparaitre sous forme de lien.
J'ai suivi vos indications, mais le résultat escompté ne s'est pas manifesté. Voici un exemple :
http://casiotheque.com/collection/30-pb-100

Au besoin, je peux poster des copies d'écran de mes champs / paramètres du composant. Notez que j'ai appliqué ce paramètre aussi bien dans la conf générale de Collector, que dans les paramètres du menu qui fait appel à lui.

Re: Type de champs URL

Posté : mer. 20 avr. 2011 13:26
par steevo
Bonjour,

Je viens de faire quelques tests sur le site de démo et il semble qu'il y a un problème de détection du lien lorsque celui indique une page précise d'un site.
En mettant simplement le nom d'un site (http://www.steevo.fr) cela va fonctionner mais pas avec des liens plus complexes comme vous avez.
Il n'y a qu'une ligne à corriger mais il faut que je trouve quoi mettre exactement. Je regarderai cela peut-être ce soir et je mettrai la correction ici.

Re: Type de champs URL

Posté : mer. 20 avr. 2011 18:06
par chr!x
Alléluia ! Alors patiemment j'attendrai ;)

Re: Type de champs URL

Posté : mer. 20 avr. 2011 23:35
par steevo
Alors la même manipulation est à faire dans 2 fichiers:
components/com_collector/views/collection/view.html.php (vers la ligne 180)
components/com_collector/views/item/view.html.php (vers la ligne 400)

il faut remplacer

Code : Tout sélectionner

$motif='#^^http://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*)?(.[a-zA-Z0-9]{1,4})?$#';
par

Code : Tout sélectionner

$motif='@(^^https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@';

Re: Type de champs URL

Posté : jeu. 21 avr. 2011 08:02
par chr!x
Sans résultat. Je vais revérifier tout ça quand j'arrive au boulot, chui en retard :)

Edit : Vérifications faites, j'ai bien appliqué tes changements, et ça marche - parfois, en fonction des URL. Exemples :

Ok = http://casiotheque.com/collection/24-dc-2000
Ok = http://casiotheque.com/collection/10-fx-8700gb
Ok = http://casiotheque.com/collection/8-mg-777

Ko = http://casiotheque.com/collection/27-fx-890p
Ko = http://casiotheque.com/collection/9-fx-6800g

Je soupsonne la présence d'underscore '_' dans les URL d'être à la source du problème. Simple supposition car celles qui ne marchent pas en ont, et toutes les autres qui en sont dépourvues fonctionnent.

Re: Type de champs URL

Posté : jeu. 21 avr. 2011 13:46
par steevo
remplacer par

Code : Tout sélectionner

$motif='@(^^https?://([-\w\.]+)+(:\d+)?(/([\w-/_\.]*(\?\S+)?)?)?)@';
en espérant que cela fonctionne avec tous les cas...

Re: Type de champs URL

Posté : jeu. 21 avr. 2011 19:07
par chr!x
Pas mieux :?

Re: Type de champs URL

Posté : mar. 3 mai 2011 23:43
par steevo
Je pense que la feinte vient de quelques lignes au dessus:

Code : Tout sélectionner

else if ( ( $weblinkMode == 1 ) && ( preg_match("=www.=", $this->item->$name_field) ) )
Il faudrait remplacer par

Code : Tout sélectionner

else if ( $weblinkMode == 1 )