Portage MOD Introduciator + tutoriel

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

Re: Portage MOD Introduciator + tutoriel

Messagepar Nicofuma » 12 Jan 2016 à 10:30

Si tu es en dehors d'un contrôleur et du Workflow de Symfony alors oui tu n'as pas le choix.
Membre de la phpBB Development-Team sur phpbb.com - Release manager de la version 3.2
Pas de support par PM
Nicofuma
Apprenti-posteur
Apprenti-posteur
 
Messages: 173
Enregistré le: 19 Avr 2014 à 19:38

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 12 Jan 2016 à 13:35

Ah et comment je le sais ?
Dis donc, tu n'as que 166 messages mais t'as l'air de toucher ta bille !!

J'arrive à charger le css mais il ne fait rien... Je dois faire de l'héritage ?
Image

J'ai oublié ce que j'ai fais sur les css ! Y'a que 6 lignes !!!
Mon css est le suivant :
Code: Tout sélectionner
introduciator_explain {
	color: orangered !important;
	text-align: center;
}

introduciator_disabled {
	color: red !important;
	text-align: center;
}

Mais avant, dans le fichier styles/prosilver/theme/colours.css, après la ligne contenant .quote-icon, .quote-icon a j'ajoutais
Code: Tout sélectionner
.introduciator_explain {
	color: orangered !important;
	text-align: center;
}
.introduciator_disabled {
	color: red !important;
	text-align: center;
}

J'ai supprimé les images des coins, il semblerait que maintenant, ils gères les images avec de la transparence ce qui ne devait pas être le cas avant...
A chaque truc que je fais, j'ai une question... Désolé... :oops: :oops: :oops: :oops:
Feneck91
Posteur expérimenté
Posteur expérimenté
 
Messages: 360
Enregistré le: 31 Déc 2007 à 12:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Nicofuma » 12 Jan 2016 à 13:57

Niveau CSS faut pas me demander, désolé ^^

Sinon, pour savoir si tu peux utiliser un objet RedirectResponse c'est assez simple: soit tes dans un controleur et tu peux donc juste retourner l'objet soit tu es dans un event Symfony sur lequel il y a une méthode setResponse().

Je suis en train de réfléchir à une autre solution avec peut etre une exception spécialisé, mais c'est pour la 3.3

P.S Pour ta seconde réponse, je pense que ma signature contient la réponse ;)
Membre de la phpBB Development-Team sur phpbb.com - Release manager de la version 3.2
Pas de support par PM
Nicofuma
Apprenti-posteur
Apprenti-posteur
 
Messages: 173
Enregistré le: 19 Avr 2014 à 19:38

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 12 Jan 2016 à 15:52

Nicofuma a écrit:P.S Pour ta seconde réponse, je pense que ma signature contient la réponse ;)

Ah oui, pas con :wink:
Feneck91
Posteur expérimenté
Posteur expérimenté
 
Messages: 360
Enregistré le: 31 Déc 2007 à 12:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Zoddo » 16 Jan 2016 à 19:11

Yop :)

Ça avance bien ? :D
[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
Resp. Extensions
Resp. Extensions
 
Messages: 5790
Enregistré le: 16 Mar 2011 à 17:44
Localisation: /root/

Re: Portage MOD Introduciator + tutoriel

Messagepar cabot » 17 Jan 2016 à 12:02

  1. Feneck91 a écrit:Mon css est le suivant :
    Code: Tout sélectionner
    introduciator_explain {
    	color: orangered !important;
    	text-align: center;
    }
    
    introduciator_disabled {
    	color: red !important;
    	text-align: center;
    }

    Il manque le point devant les sélecteurs pour les déclarer comme classe et pas comme balise. ^^

  2. Il faut utiliser l'event overall_header_head_append pour accrocher la feuille de style.

    • crée un répertoire event/ dans styles/prosilver/template/

    • crée un fichier overall_header_head_append.html dans ce répertoire et charge la CSS en include :
      Code: Tout sélectionner
      <!-- INCLUDECSS @feneck91_introduciator/introduciator_explain.css -->

    • place ta feuille de style dans le répertoire styles/prosilver/theme/
Image
Avatar de l’utilisateur
cabot
Equipe site
Equipe site
 
Messages: 26717
Enregistré le: 13 Fév 2011 à 19:42
Localisation: Rarement sur la plaque

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 17 Jan 2016 à 12:23

Ça va avancer moins vite, j'ai eu 10 jours où j'étais entre deux missions (pour faire simple) mais là, je retravaille donc ce n'est que le week-end et je soir...

Bon, le '.' je l'avais ajouté, retiré, essayé plein de choses différentes... Au début il y était.
Bon, j'ai réussi à le faire fonctionner de façon plus simple, est-ce que j'ai mal fait cabot ?

  1. Mon répertoire event est à la racine feneck91/introduciator/event et contient le fichier introduciator_listener.php mais rien à voir avec cette nouvelle page.
  2. En fait j'ai ajouté le fichier feneck91/introduciator/config/routing.yml qui contient le code :
    Code: Tout sélectionner
    feneck91_introduciator_explain:
        path: /introduciator_explain/{forum_id}
        defaults: { _controller: feneck91.introduciator.explain:display }
  3. j'ai ajouté le fichier feneck91/introduciator/config/services.yml qui contient en autre le code :
    Code: Tout sélectionner
    services:      
        feneck91.introduciator.explain:
            class: feneck91\introduciator\controller\introduciator_explain
            arguments:
                - @config
                - @auth
                - @template
                - @user
    
  4. Je n'ai pas créé le fichier overall_header_head_append.html
  5. Ensuite, tout est comme tu as dis sauf que mon fichier introduciator_explain.css est mis dans feneck91/introduciator/styles/prosilver/theme/css
  6. Mon fichier de template est mis dans stylefeneck91/introduciator/prosilver/template/introduciator_explain.html

Pourquoi ça marche ?
J'ai mis la ligne <!-- INCLUDECSS @feneck91_introduciator/css/introduciator_explain.css --> AVANT la ligne <!-- INCLUDE overall_header.html --> c'est à dire en première ligne de mon fichier template.
S'il est mis en deuxième ligne, il n'est pas pris en compte.

Ai-je vraiment besoin de créer un fichier overall_header_head_append.html ?
Je ne pense pas en avoir besoin pour ma page supplémentaire.
Par contre pour ajouter les styles spécifiques pour les éléments que j'ajoute dans des pages existantes je pense que ça me sera utile pour l'ajout de l'icone sous l'avatar pour aller directement à la présentation :
Code: Tout sélectionner
ul.profile-icons li.introd-icon	{ width: 20px; height: 20px; }	/* Introduciator MOD: icon */
ul.profile-icons li.introdno-icon	{ width: 20px; height: 20px; }	/* Introduciator MOD: no presentation avalaible */
ul.profile-icons li.introdpd-icon	{ width: 20px; height: 20px; }	/* Introduciator MOD: presentation is pending */
ul.profile-icons li.introdpu-icon	{ width: 20px; height: 20px; }	/* Introduciator MOD: presentation is pending but url is present (user can approve it) */


Je suis sur la bonne piste ?
Feneck91
Posteur expérimenté
Posteur expérimenté
 
Messages: 360
Enregistré le: 31 Déc 2007 à 12:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar pierredu » 17 Jan 2016 à 18:17

Pourquoi est-ce que tu essaies de faire les choses à la marge ?
La solution de cabot pour l'inclusion de ta feuille de style est la solution canonique. C'est ça qu'il faut faire.
Pas la peine d'aller chercher midi à quatorze heures.
Comme ça, t'y penses et puis t'oublies.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 941
Enregistré le: 29 Mai 2011 à 05:49
Localisation: Paris

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 17 Jan 2016 à 19:10

Cette feuille de style n'est utilisé QUE pour cette page que j'ajoute, celle qui explique que l'utilisateur doit se présenter.
Pourquoi ajouter ces styles dans toutes les pages du forum alors qu'une seule ne l'utilise ?
Je n'ai pas fais les choses à la marge, j'avais déjà codé tout ça avant, j'ai juste inversé les deux lignes. La feuille de style dans le répertoire css ? J'ai vu ça en parcourant les forums, je vois pas mal de trucs différents...

Maintenant, s'il ne faut pas faire comme ça, il n'y a aucun problème, je ferais tel que l'a décrit Cabot. De toute façon je vais avoir besoin de ce qu'il a eu la gentillesse de m'expliquer puisque je dois ajouter des boutons sous l'Avatar...

D'ailleurs, comment se fait que la page overall_header_head_append.html soit chargée ? C'est juste son nom qui fait qu'elle est reconnue par phpBB ? C'est ce qu'il semble en lisant ça : https://www.phpbb.com/extensions/writing/

D'ailleurs je n'ai pas encore écrit de template event, c'est ma prochaine étape : ajouter les icônes !
J'ai deux autres questions :
  1. Il faut éviter d'utiliser les globals, mais dans le module acp/introduciator_module.php on ne peut pas spécifier de constructeur, comment mettre en variable membre les variables que je veux éviter de mettre en global ?
  2. Dans ma classe helper, je commence par :
    Code: Tout sélectionner
    if (!function_exists('group_memberships'))
    {
    	global $phpbb_root_path, $phpEx;
    	include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
    }
    
    Comment éviter cet include + les variables globales ?
Feneck91
Posteur expérimenté
Posteur expérimenté
 
Messages: 360
Enregistré le: 31 Déc 2007 à 12:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Zoddo » 17 Jan 2016 à 19:40

Feneck91 a écrit:Cette feuille de style n'est utilisé QUE pour cette page que j'ajoute, celle qui explique que l'utilisateur doit se présenter.

Yep, dans ce cas, pas besoin de l'event :)

Feneck91 a écrit:La feuille de style dans le répertoire css ? J'ai vu ça en parcourant les forums, je vois pas mal de trucs différents...

Si tu prends la même structures que les styles, les CSS se situent directement à la racine de theme (et les images dans un sous-dossier images).

Feneck91 a écrit:D'ailleurs, comment se fait que la page overall_header_head_append.html soit chargée ?

Si tu regardes dans les styles, tu va voir par endroit ce code :
Code: Tout sélectionner
<!-- EVENT nom_de_levent -->

Lorsque le moteur de template voit ça, il va alors chercher dans les dossiers styles/(nom_du_style_ou_all)/template/event de chaque extension, un fichier nom_de_levent.html. Lorsqu'il le trouve, il va faire un INCLUDE du fichier à l'endroit à où il y a la balise EVENT.

Feneck91 a écrit:Il faut éviter d'utiliser les globals, mais dans le module acp/introduciator_module.php on ne peut pas spécifier de constructeur, comment mettre en variable membre les variables que je veux éviter de mettre en global ?

Les modules ACP/MCP/UCP sont encore en dehors du workflow de Symfony, donc pas d'autres choix que d'utiliser les global, comme le disais Nicofuma.

Feneck91 a écrit:Dans ma classe helper, je commence par :
Code: Tout sélectionner
if (!function_exists('group_memberships'))
{
	global $phpbb_root_path, $phpEx;
	include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
}
Comment éviter cet include + les variables globales ?
Tu peux injecter les deux variables dans le constructeur en mettant %core.root_path% et %core.php_ext% dans le services.yml.

Pour l'incude/function_exists, pas le choix pour l'instant, faut les garder le tant que tout soit convertit en services.
[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
Resp. Extensions
Resp. Extensions
 
Messages: 5790
Enregistré le: 16 Mar 2011 à 17:44
Localisation: /root/

Re: Portage MOD Introduciator + tutoriel

Messagepar cabot » 17 Jan 2016 à 20:33

Au temps pour moi, en plus on utilise cette méthode sur l'extension en dev du futur site, j'ai pas percuté. :oops:

Tu peux quand même placer ton fichier CSS dans le répertoire theme/ en supprimant la branche css/. Fallait bien que je trouve un truc. :mrgreen:
Image
Avatar de l’utilisateur
cabot
Equipe site
Equipe site
 
Messages: 26717
Enregistré le: 13 Fév 2011 à 19:42
Localisation: Rarement sur la plaque

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 17 Jan 2016 à 21:28

Pas de problèmes les gars, vous prenez du temps pour me répondre, je ne vais pas raler en plus ! :mrgreen:
Je vais faire comme vous avez dit !
Pour le code if (!function_exists('group_memberships')) .... blah blah blah justement c'est dans mon module et je n'ai pas de constructeur (et je ne pense pas que ce soit dans service.yml qu'il faille le référencer puisqu'il l'est déjà dans introduciator_info.php !
Seule solution : déplacer la fonction dont j'ai besoin et qui m'oblique à faire cet include dans ma classe helper qui elle a un constructeur...
Non ?
Feneck91
Posteur expérimenté
Posteur expérimenté
 
Messages: 360
Enregistré le: 31 Déc 2007 à 12:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Zoddo » 17 Jan 2016 à 23:34

Feneck91 a écrit:Pour le code if (!function_exists('group_memberships')) .... blah blah blah justement c'est dans mon module et je n'ai pas de constructeur (et je ne pense pas que ce soit dans service.yml qu'il faille le référencer puisqu'il l'est déjà dans introduciator_info.php !
Seule solution : déplacer la fonction dont j'ai besoin et qui m'oblique à faire cet include dans ma classe helper qui elle a un constructeur...
Non ?

Ah, excuse, je croyais que tu parlais de ton services helper. Si tu est dans le module ACP, tu laisses tel quel :)
[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
Resp. Extensions
Resp. Extensions
 
Messages: 5790
Enregistré le: 16 Mar 2011 à 17:44
Localisation: /root/

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 20 Jan 2016 à 06:30

Petites questions ergonomiques : sous l'icône de l'avatar il y avait un bouton pour aller directement à la présentation des membres. Je le met où maintenant ? Dans la bulle contact ou je crée un nouvel élément genre présentation ?
Autre question : les boutons placés à cet endroit là ne changent plus lorsque l'on passe la souris dessus (moins beau je trouve), il faut faire pareil ?
Feneck91
Posteur expérimenté
Posteur expérimenté
 
Messages: 360
Enregistré le: 31 Déc 2007 à 12:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 24 Jan 2016 à 13:12

Pas de réponse ? Pas d'idée ?
Feneck91
Posteur expérimenté
Posteur expérimenté
 
Messages: 360
Enregistré le: 31 Déc 2007 à 12:02
Localisation: Essonne (91)

PrécédenteSuivante

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 1 invité