[Réglé] Login Box

Aide aux auteurs d'extensions pour phpBB 3.1.x

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com
Partager sur FacebookPartager sur TwitterPartager sur Google+

[Réglé] Login Box

Messagepar Nosfe » 30 Juin 2015 à 11:54

Bonjour,

Je ne suis pas sure d’être au bon endroit, mais je pense que vous allez pouvoir m'aider.
J'aimerai adapter un add-on en extension, il est très simple mais moi je me tape des erreurs, n'ayant pas encore très bien compris le fonctionnement des extensions.

Donc je l'ai up ici > Login Box, si quelqu'un peut m'en faire l'adaptation sa serai super.

L'auteur de l'add-on n'est plus disponible pour le moment, j'ai l'autorisation du forum de distribution de le faire adapter.

Description : Affiche une boîte de connexion en haut à droite du forum, personnalisable via le CSS
Image


Merci d'avance
Modifié en dernier par Nosfe le 08 Juil 2015 à 12:19, modifié 2 fois.
Avatar de l’utilisateur
Nosfe
Posteur habitué
Posteur habitué
 
Messages: 294
Enregistré le: 28 Nov 2008 à 19:16
Localisation: La Bâtie Rolland (26) | France

Re: Login Box

Messagepar FoFa » 30 Juin 2015 à 13:49

Hello

Premier lien erreur 404

Second lien faut se connecter pour lire le sujet.

Donc inexploitable.
Après l'assassinat de mon ordinateur, je reviens progressivement vers vous...
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10565
Enregistré le: 15 Nov 2008 à 19:04
Localisation: Auxonne

Re: Login Box

Messagepar Nosfe » 30 Juin 2015 à 22:52

Salut Fofa,

j'ai ré-up le fichier, sa devrait être bon, sa fonctionne chez moi ;)
Avatar de l’utilisateur
Nosfe
Posteur habitué
Posteur habitué
 
Messages: 294
Enregistré le: 28 Nov 2008 à 19:16
Localisation: La Bâtie Rolland (26) | France

Re: Login Box

Messagepar FoFa » 30 Juin 2015 à 23:06

Hello,

C'est plus une demande d'aide au développement qu'une recherche d'extension.

Votre sujet a été déplacé par un membre de l'équipe.

Est-ce que tu aurais une capture d'écran de ce que cela devrait donner ?
Après l'assassinat de mon ordinateur, je reviens progressivement vers vous...
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10565
Enregistré le: 15 Nov 2008 à 19:04
Localisation: Auxonne

Re: Login Box

Messagepar cabot » 01 Juil 2015 à 10:55

Hello,

Vu le contenu des fichiers, c'est tout simple à faire. Il faut utiliser l'event overall_footer_body_after pour charger la partie HTML et overall_header_head_append pour le fichier CSS.

S'tout :)
Image
Avatar de l’utilisateur
cabot
Equipe site
Equipe site
 
Messages: 26741
Enregistré le: 13 Fév 2011 à 20:42
Localisation: Rarement sur la plaque

Re: Login Box

Messagepar Nosfe » 01 Juil 2015 à 15:30

Salut cabot,

J'ai due encore me tromper quelque part car j'ai rien qui s'affiche > Forum Test

j'ai mis l'extension en téléchargement ici

Si tu peut vérifier les fichiers, Merci ;)
Avatar de l’utilisateur
Nosfe
Posteur habitué
Posteur habitué
 
Messages: 294
Enregistré le: 28 Nov 2008 à 19:16
Localisation: La Bâtie Rolland (26) | France

Re: Login Box

Messagepar cabot » 01 Juil 2015 à 17:32

Je ne comprends pas pourquoi le copy n'est pas de toi mais de FranckTH, autant qu'il vienne faire lui-même la demande de support :
Code: Tout sélectionner
	"authors": [
		{
			"name": "FranckTH",
			"email": "",
			"homepage": "http://www.forum-service.be/",
			"role": "Extension Developer"
		}
	],

Bref... tu lui diras qu'il n'a pas besoin de tous ces dossiers ni de tous ces fichiers.

Sinon, je ne suis pas codeur mais comme tu me poses la question, je peux au moins dire ça en attendant qu'il y en ait un qui passe (il y a certainement des âneries , je ne suis que tricoteur de CSS ^^) :
  • Le fichier de config .yml peut être simplifié à sa plus simple expression pour ne contenir que la configuration de listener.php, dans lequel on retrouvera les éléments de config de langue.
  • Il n'y a pas besoin de contrôleur, surtout qu'il est rempli de classes qui ne servent à rien, qu'il contient du texte en dur et qu'il y est assigné un fichier de template qu'il ne sert à rien de créer (il existe des events de template pour charger du HTML).
  • Le dossier migration est vide, donc inutile.
  • Le fichier ext.php n'est d'aucune utilité et peut être supprimé.
  • Pour charger le HTML du style, il faut passer par un event de template. Il n'existe pas d'event loginbox (ref), le fichier ne peut donc pas être chargé.
  • De même, pour charger une feuille de style, il faut passer aussi par un event (overall_header_head_append)
Voilà, la liste n'est pas exhaustive et contient peut-être des bêtises, mais j'aurais essayé. :mrgreen:
Image
Avatar de l’utilisateur
cabot
Equipe site
Equipe site
 
Messages: 26741
Enregistré le: 13 Fév 2011 à 20:42
Localisation: Rarement sur la plaque

Re: Login Box

Messagepar galixte » 02 Juil 2015 à 01:21

Salut,

cabot, le MOD Login Box à l’origine est de FRANK_TH mais l’adaptation en extension provient de Nosfe, voila pour ce que j’en ai compris.

Frank_TH est passé sur EzCom il y a peu pour l’adaptation d’un de ses style 3.0.x en version 3.1.x, son forum est fermé mais il a réouvert sur un domaine similaire : http://www.graphogames.fr.
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10097
Enregistré le: 08 Mar 2004 à 02:40
Localisation: Sud de la France.

Re: Login Box

Messagepar Nosfe » 02 Juil 2015 à 13:39

Salut cabot,

Même si c'est moi qui en fait la demande d'aide, je ne suis pas l'auteur de ce mod, et de ce fait je ne veux pas m'approprier les droit d'auteur.
Pour ce qui est de l'arborescence, j'ai récupéré le dossier exemple fait ici.
J'avoue ne rien comprendre à la création de ces extension, je nage complet, je pige rien au event et à la façon de les utiliser, je trouve l'adaptation du style 10x plus simple.

C'est pour sa qu'a la base je demander qu'un codeur le fasse, pour voir les fichiers final et peut être comprendre un peu mieux le tout.

Au pire, moi je me prend pas la tête, je fait l'installation comme sur un 3.0 sa devrai bien passé ;)
Avatar de l’utilisateur
Nosfe
Posteur habitué
Posteur habitué
 
Messages: 294
Enregistré le: 28 Nov 2008 à 19:16
Localisation: La Bâtie Rolland (26) | France

Re: Login Box

Messagepar Zoddo » 02 Juil 2015 à 15:01

Bonjour,

On peux t'aider mais pour cela, il faut qu'on sache exactement ce que tu ne comprends pas.



Concernant les event, ce sont en faites des endroits dans le code de phpBB ou tu peux en quelque sorte injecter ton propre code. Les events de style, sont très simple à utiliser. Il suffit de créer un fichier styles/prosilver/template/event/{NOM DE L'EVENT}.html. Tu peux remplacer prosilver par un autre style ou utiliser le nom spéciale all pour que ça s'applique à tous les styles. Tout le code que tu ajoutera dans ce fichier sera directelent inclus dans le style à la place du <!-- EVENT machin_chose -->.


J'ai commencer à écrire la partie suivante sans porter attention au fait que le MOD original ne touche qu'aux styles :oops: Tu peux donc sauter cette partie si elle ne t'intéresse pas (mais elle te sera surement utile pour d'autres extensions plus complexes).
Si tu as besoin d'event dans le PHP, tu dois créer un event listner (c'est une class qui implémente l'interface Symfony\Component\EventDispatcher\EventSubscriberInterface dont le but est de traiter les event). On mets ces classes généralement dans le dossier event (par exemple, event/listner.php avec une class \vendor\extname\event\listner).

Cette classe doit au minimum comporter une méthode statique nommé getSubscribedEvents(). Cette méthode doit retourner un tableau dont les clés correspondent au nom d'un event et les valeurs au nom d'une méthode de la class a appeler lorsque cet event est déclencher. Exemple :
Code: Tout sélectionner
static public function getSubscribedEvents()
    {
        return array(
            'core.posting_modify_template_vars'        => 'add_posting_vars',
            'core.ucp_pm_compose_modify_data'        => 'add_pm_vars',
        );
    
Dans ce cas, lorsque l'event core.posting_modify_template_vars est déclenché dans le code de phpBB, la méthode add_posting_vars de la même class est automatiquement appelé. Il en est de même avec l'event core.ucp_pm_compose_modify_data et la méthode add_pm_vars.

Pour que ça marche, il faut ensuite enregistrer cette class comme étant un event listner. Pour cela, il faut la déclarer comme service dans le fichier config/services.yml et y ajouter le tag event.listener :
Code: Tout sélectionner
services:
    vendor.extname.listener:
        class: vendor\extname\event\listener
        arguments:
            - @dbal.conn
            - @user
            - @template
            - @request
            - %core.table_prefix%
        tags:
            - { name: event.listener }
Comme tu vois, la syntaxe est plutôt simple.

Les arguments correspondent à des paramètres qui peuvent être passés au constructeur de ta class (pour avoir accès à la base de données, aux templates ...). On ne peux en effet pas utiliser le mot-clé global dans les services. Le prefix @ correspond à d'autres services (donc à d'autres objets) alors que le nom des arugments entouré d'un % correspondent à des variables simples (dans mon cas, le préfix des tables). Plus d'info : https://www.phpbb.com/extensions/writin ... -injection


Pour t'aider, tu peux regarder d'autres extensions. Par exemple, dans l'extension Post Models, j'utilise les deux types d'event (PHP et template).

Si tu as d'autres questions ou si il y a des choses que tu n'as pas compris, n'hésites pas à demander :)

@+ ;)
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 6332
Enregistré le: 16 Mar 2011 à 18:44
Localisation: /root/

Re: Login Box

Messagepar Nosfe » 02 Juil 2015 à 15:44

D’après ce que je comprend, les <!-- EVENTS --> fonctionne de la même façon que les <!-- INCLUDES -->

Donc j'ai juste à créer un dossier /template/events et de créer un fichier loginbox.html avec le code de la page register.html dans le mod et le tour est joué ? mais dans ce cas, ou est-ce que je met la syntaxe events ?
Pour la partie css et la modification à faire dans le footer j'en fait quoi ?
C'est surtout que je ne sais pas comment construire mes fichiers.

Pour le reste, je ne comprend pas, je ne connais déjà pas le php et je trouve que c'est très ressemblant.
Je met de coté tout ce que tu as écrit pour plus tard.

Bonne journée ;)
Avatar de l’utilisateur
Nosfe
Posteur habitué
Posteur habitué
 
Messages: 294
Enregistré le: 28 Nov 2008 à 19:16
Localisation: La Bâtie Rolland (26) | France

Re: Login Box

Messagepar Zoddo » 02 Juil 2015 à 15:58

Les <!-- EVENT nom_de_l_event --> sont déjà présents dans le code de phpBB. Voir la liste complète.

Par exemple, si l'on veux répercuter la modification du MOD d'origine dans le fichier styles/prosilver/template/overall_footer.html, on peux créer dans l'extension un fichier styles/prosilver/template/event/overall_footer_after.html dans lequel on indique le code à ajouter.
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 6332
Enregistré le: 16 Mar 2011 à 18:44
Localisation: /root/

Re: Login Box

Messagepar Nosfe » 02 Juil 2015 à 19:32

Donc si je fait un fichier /template/loginbox.html et que je met ce code :
Code: Tout sélectionner
<!-- IF not S_USER_LOGGED_IN and not S_IS_BOT -->
<div id="stickymsg">
<p>{L_WELCOME_LOGINBOX} {SITENAME}</p><hr />
<p>{L_LOGIN_INFO}<br /><hr />
<a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}">&bull; {L_LOGIN_LOGOUT}</a><br />
<br /><!-- IF S_REGISTER_ENABLED --><a href="{U_REGISTER}" title="{L_REGISTER}">&bull; {L_REGISTER}</a><!-- ENDIF --></p>
</div>
<!-- ENDIF -->

Ensuite que je crée un fichier /template/events/overall_footer_after.html et que je met ce code:
Code: Tout sélectionner
<!-- IF not S_USER_LOGGED_IN and S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) --><!-- INCLUDE loginbox.html --><!-- ENDIF -->

c'est censé fonctionné. Donc il me reste plus cas créé mon fichier css dans /theme/loginbox.css avec mes class et c'est régler.

Ai-je bien compris ? :D
Avatar de l’utilisateur
Nosfe
Posteur habitué
Posteur habitué
 
Messages: 294
Enregistré le: 28 Nov 2008 à 19:16
Localisation: La Bâtie Rolland (26) | France

Re: Login Box

Messagepar tomberaid » 02 Juil 2015 à 21:43

Hello
Perso, je ne suis pas d'accord avec tes conditions "IF", que vient faire l'enregistrement la dedans ? C'est une box de connexion 'login", non ? Ou alors elle porte mal son nom.

Code: Tout sélectionner
<!-- IF not S_USER_LOGGED_IN and not S_IS_BOT --><!-- INCLUDE loginbox.html --><!-- ENDIF -->


Après que tu mettes d'autres conditions dans la partie concernant l'enregistrement, Ok, mais pour ton fichier html le code ci-dessus suffit.

Cordialement
Image
Avatar de l’utilisateur
tomberaid
Roi des posts
Roi des posts
 
Messages: 711
Enregistré le: 18 Juin 2009 à 00:27

Re: Login Box

Messagepar FoFa » 02 Juil 2015 à 22:03

Hello

Je vois pas ce que c'est censé donner.

Pourquoi ne pas utiliser ceci https://www.phpbb.com/customise/db/exte ... ick_login/
Après l'assassinat de mon ordinateur, je reviens progressivement vers vous...
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10565
Enregistré le: 15 Nov 2008 à 19:04
Localisation: Auxonne

Suivante

Retourner vers Aide au développement

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités