recup du plugin gamuCompte - inscription + connexion d'un auteur
This commit is contained in:
parent
8cffaa805f
commit
16a83fa421
15 changed files with 756 additions and 0 deletions
34
comptespip_autorisations.php
Normal file
34
comptespip_autorisations.php
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Définit les autorisations du plugin GamuCompte
|
||||||
|
*
|
||||||
|
* @plugin GamuCompte
|
||||||
|
* @copyright 2020
|
||||||
|
* @author tofulm
|
||||||
|
* @licence GNU/GPL
|
||||||
|
* @package SPIP\Gamucompte\Autorisations
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction d'appel pour le pipeline
|
||||||
|
* @pipeline autoriser */
|
||||||
|
function comptespip_autoriser() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* surcharge de la fonction native de SPIP
|
||||||
|
* return true si le champ statut de la config du plugin est renseigné
|
||||||
|
*/
|
||||||
|
function autoriser_inscrireauteur($faire, $quoi, $id, $qui, $opt) {
|
||||||
|
$mode = lire_config('comptespip/statut');
|
||||||
|
if ($mode) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
14
comptespip_fonctions.php
Normal file
14
comptespip_fonctions.php
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Fonctions utiles au plugin GamuCompte
|
||||||
|
*
|
||||||
|
* @plugin GamuCompte
|
||||||
|
* @copyright 2020
|
||||||
|
* @author tofulm
|
||||||
|
* @licence GNU/GPL
|
||||||
|
* @package SPIP\Gamucompte\Fonctions
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
|
return;
|
||||||
|
}
|
14
comptespip_options.php
Normal file
14
comptespip_options.php
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Options au chargement du plugin GamuCompte
|
||||||
|
*
|
||||||
|
* @plugin GamuCompte
|
||||||
|
* @copyright 2020
|
||||||
|
* @author tofulm
|
||||||
|
* @licence GNU/GPL
|
||||||
|
* @package SPIP\Gamucompte\Options
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
|
return;
|
||||||
|
}
|
14
comptespip_pipelines.php
Normal file
14
comptespip_pipelines.php
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Utilisations de pipelines par GamuCompte
|
||||||
|
*
|
||||||
|
* @plugin GamuCompte
|
||||||
|
* @copyright 2020
|
||||||
|
* @author tofulm
|
||||||
|
* @licence GNU/GPL
|
||||||
|
* @package SPIP\Gamucompte\Pipelines
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
|
return;
|
||||||
|
}
|
26
content/connect.html
Normal file
26
content/connect.html
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
[(#SESSION{id_auteur}|non|sinon_interdire_acces{#URL_SITE_SPIP})]
|
||||||
|
<div id="connect" class="inner">
|
||||||
|
<B_presentation>
|
||||||
|
<div class="presentation">
|
||||||
|
<BOUCLE_presentation(ARTICLES){id_article=#CONFIG{comptespip/id_presentation}}{tout}>
|
||||||
|
[<h1 class="#EDIT{titre} txtcenter">(#TITRE)</h1>]
|
||||||
|
[<div class="chapo #EDIT{descriptif}">(#DESCRIPTIF)</div>]
|
||||||
|
[<div class="chapo #EDIT{chapo}">(#CHAPO)</div>]
|
||||||
|
[<div class="#EDIT{texte}">(#TEXTE)</div>]
|
||||||
|
</BOUCLE_presentation>
|
||||||
|
</div>
|
||||||
|
</B_presentation>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="se_connecter inner">
|
||||||
|
<div class="grid-2">
|
||||||
|
<div class="sinscrire">
|
||||||
|
[(#FORMULAIRE_INSCRIPTION{})]
|
||||||
|
</div>
|
||||||
|
<div class="login">
|
||||||
|
<h3 class="mlm">Se connecter</h3>
|
||||||
|
[(#LOGIN_PUBLIC{#URL_PAGE{#CONFIG{comptespip/page_redirection_connexion}}})]
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
115
formulaires/configurer_comptespip.html
Normal file
115
formulaires/configurer_comptespip.html
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
|
||||||
|
|
||||||
|
<h3 class="titrem"><:comptespip:cfg_titre_parametrages:/></h3>
|
||||||
|
|
||||||
|
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||||
|
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||||
|
|
||||||
|
<form method="post" action="#ENV{action}">
|
||||||
|
<div>
|
||||||
|
#ACTION_FORMULAIRE
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,id_presentation}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<label for="#GET{name}">id_article de présentation</label>
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<input type="text" class="text id_presentation" name="#GET{name}" id="#GET{name}" value="#ENV{#GET{name}}" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,statut}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<label for="#GET{name}">Statut du compte</label>
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<input type="text" class="text statut" name="#GET{name}" id="#GET{name}" value="#ENV{#GET{name}}" >
|
||||||
|
<p class="explication">Si pas renseigné, inscription impossible</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,unicite_email}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
<label>Unicité des emails lors de l'inscription</label>
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<div class="choix">
|
||||||
|
<input type="radio" class="radio" name="#GET{name}" value="non" id="#GET{name}_non"[ (#ENV{#GET{name}}|=={non}|?{checked="checked"})] >
|
||||||
|
<label for="#GET{name}_non">Non</label>
|
||||||
|
</div>
|
||||||
|
<div class="choix">
|
||||||
|
<input type="radio" class="radio" name="#GET{name}" value="oui" id="#GET{name}_oui"[ (#ENV{#GET{name}}|non|?{checked="checked"})] >
|
||||||
|
<label for="#GET{name}_oui">Oui</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
[(#PLUGIN{auted}|oui)
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,aut_modele}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<label for="#GET{name}">Nom du modèle d'autorisations</label>
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<input type="text" class="text aut_modele" name="#GET{name}" id="#GET{name}" value="#ENV{#GET{name}}" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,mail_inscription_sujet}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<label for="#GET{name}">Sujet du mail</label>
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<input type="text" class="text mail_inscription_sujet" name="#GET{name}" id="#GET{name}" value="#ENV{#GET{name}}" >
|
||||||
|
<p class="explication">Si pas renseigné, récupère celui par defaut de SPIP</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,connexion_auto}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
<label>Connexion automatique après l'inscription</label>
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<div class="choix">
|
||||||
|
<input type="radio" class="radio" name="#GET{name}" value="non" id="#GET{name}_non"[ (#ENV{#GET{name}}|non|?{checked="checked"})] >
|
||||||
|
<label for="#GET{name}_non">Non</label>
|
||||||
|
</div>
|
||||||
|
<div class="choix">
|
||||||
|
<input type="radio" class="radio" name="#GET{name}" value="oui" id="#GET{name}_oui"[ (#ENV{#GET{name}}|=={oui}|?{checked="checked"})] >
|
||||||
|
<label for="#GET{name}_oui">Oui</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,page_redirection_connexion}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<label for="#GET{name}">Nom de la page de redirection</label>
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<input type="text" class="text page_redirection_connexion" name="#GET{name}" id="#GET{name}" value="#ENV{#GET{name}}" >
|
||||||
|
<p class="explication">Si vide, page sommaire</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input type="hidden" name="_meta_casier" value="comptespip" />
|
||||||
|
<p class="boutons"><span class="image_loading"> </span><input type="submit" class="submit" value="<:bouton_enregistrer|attribut_html:/>" /></p>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
80
formulaires/inscription.html
Normal file
80
formulaires/inscription.html
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
<div class="formulaire_spip formulaire_inscription ajax" id="formulaire_inscription">
|
||||||
|
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||||
|
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||||
|
|
||||||
|
[(#ENV{editable})
|
||||||
|
<form method="post" action="#ENV{action}">
|
||||||
|
#ACTION_FORMULAIRE
|
||||||
|
<fieldset>
|
||||||
|
#INCLURE{fond=formulaires/inc-inscription-explication,env}
|
||||||
|
<legend><:form_forum_identifiants:></legend>
|
||||||
|
<p class='explication'><:form_forum_indiquer_nom_email:></p>
|
||||||
|
<div class="editer-groupe">
|
||||||
|
<div class='editer saisie_nom_inscription obligatoire[ (#ENV*{erreurs}|table_valeur{nom_inscription}|oui)erreur]'>
|
||||||
|
<label for="nom_inscription">Votre nom <em class="obligatoire"><:info_obligatoire_02:></em></label>
|
||||||
|
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{nom_inscription})</span>]
|
||||||
|
<input type="text" class="text" name="nom_inscription" id="nom_inscription" value="#ENV{nom_inscription}" size="30" [(#HTML5) [(#ENV{focus}|=={nom_inscription}|oui)autofocus="autofocus" ] ]required="required" autocapitalize="off" autocorrect="off" />
|
||||||
|
</div>
|
||||||
|
#SET{name,prenom}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
#SET{obli,"obligatoire"}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<label for="#GET{name}">Votre prénom</label>
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<input type="text" class="text prenom" name="#GET{name}" id="#GET{name}" value="#ENV{#GET{name}}" size="30" autocapitalize="off" autocorrect="off" >
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='editer saisie_mail_inscription obligatoire[ (#ENV*{erreurs}|table_valeur{mail_inscription}|oui)erreur]'>
|
||||||
|
<label for="mail_inscription"><:entree_adresse_email:> <em class="obligatoire"><:info_obligatoire_02:></em></label>
|
||||||
|
[<span class="erreur_message">(#ENV*{erreurs}|table_valeur{mail_inscription})</span>]
|
||||||
|
<input required="required" type="email" class="text email" name="mail_inscription" id="mail_inscription" value="#ENV{mail_inscription}" size="30"[(#ENV{focus}|=={mail_inscription}|et{#HTML5}|oui) autofocus="autofocus"] autocapitalize="off" autocorrect="off" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,password}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
#SET{obli,"obligatoire"}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<label for="#GET{name}">Votre mot de passe</label>
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<input type="password" class="text pass" name="#GET{name}" id="#GET{name}" value="#ENV{#GET{name}}" size="30" autocapitalize="off" autocorrect="off" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,password_confirmation}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
#SET{obli,"obligatoire"}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<label for="#GET{name}">Confirmer votre mot de passe</label>
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<input type="password" class="text pass_conf" name="#GET{name}" id="#GET{name}" value="#ENV{#GET{name}}" size="30" autocapitalize="off" autocorrect="off" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
[(#REM) Piege a robots spammeurs ]
|
||||||
|
<p style="display: none;">
|
||||||
|
<label for="nobot"><:antispam_champ_vide:></label>
|
||||||
|
<input type="text" class="text" name="nobot" id="nobot" value="#ENV{nobot}" size="10" />
|
||||||
|
</p>
|
||||||
|
<p class="boutons"><input type="submit" class="btn submit" value="<:bouton_valider:>" /></p>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
[<script type="text/javascript"><!--
|
||||||
|
document.getElementById('(#ENV{focus})').focus();
|
||||||
|
--></script>]
|
||||||
|
]
|
||||||
|
</div>
|
||||||
|
[(#ENV{focus,''}|?{' '})
|
||||||
|
<div style="text-align: #LANG_RIGHT;">
|
||||||
|
<script type="text/javascript">/*<!\[CDATA\[*/
|
||||||
|
document.write("<a style='color: #e86519' href='")
|
||||||
|
document.write((window.opener) ? "javascript:close()" : "./")
|
||||||
|
document.write("'><:pass_quitter_fenetre:><" + "/a>");
|
||||||
|
/*\]\]>*/</script>
|
||||||
|
<noscript>
|
||||||
|
[<a href='./'><:pass_retour_public:></a>]
|
||||||
|
</noscript>
|
||||||
|
</div>]
|
220
formulaires/inscription.php
Normal file
220
formulaires/inscription.php
Normal file
|
@ -0,0 +1,220 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/***************************************************************************\
|
||||||
|
* SPIP, Systeme de publication pour l'internet *
|
||||||
|
* *
|
||||||
|
* Copyright (c) 2001-2020 *
|
||||||
|
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
|
||||||
|
* *
|
||||||
|
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
|
||||||
|
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
function formulaires_inscription_charger_dist($mode = '', $id = 0, $retour = '') {
|
||||||
|
global $visiteur_session;
|
||||||
|
|
||||||
|
// il faut avoir renseigné le statut dans la conf du plugin
|
||||||
|
$mode = lire_config('comptespip/statut');
|
||||||
|
if (!in_array($mode, ['6forum', '1comite', '0minirezo'])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode
|
||||||
|
//if (isset($visiteur_session['statut']) && ($visiteur_session['statut'] <= $mode)) {
|
||||||
|
if (isset($visiteur_session['statut'])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$valeurs = array(
|
||||||
|
'nom_inscription' => '',
|
||||||
|
'mail_inscription' => '',
|
||||||
|
'prenom' => '',
|
||||||
|
'password' => '',
|
||||||
|
'password_confirmation' => '',
|
||||||
|
'id' => $id,
|
||||||
|
'_mode' => $mode,
|
||||||
|
'cle'
|
||||||
|
);
|
||||||
|
|
||||||
|
return $valeurs;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si inscriptions pas autorisees, retourner une chaine d'avertissement
|
||||||
|
function formulaires_inscription_verifier_dist($mode = '', $id = 0, $retour = '') {
|
||||||
|
|
||||||
|
include_spip('inc/filtres');
|
||||||
|
$erreurs = array();
|
||||||
|
|
||||||
|
$mode = lire_config('comptespip/statut');
|
||||||
|
if (!in_array($mode, ['6forum', '1comite', '0minirezo'])) {
|
||||||
|
$erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$nom = _request('nom_inscription')) {
|
||||||
|
$erreurs['nom_inscription'] = _T('info_obligatoire');
|
||||||
|
} elseif (!nom_acceptable(_request('nom_inscription'))) {
|
||||||
|
$erreurs['nom_inscription'] = _T('ecrire:info_nom_pas_conforme');
|
||||||
|
}
|
||||||
|
if (!$mail = strval(_request('mail_inscription'))) {
|
||||||
|
$erreurs['mail_inscription'] = _T('info_obligatoire');
|
||||||
|
} else {
|
||||||
|
include_spip('inc/filtres');
|
||||||
|
if (!email_valide($mail)) {
|
||||||
|
$erreurs['mail_inscription'] = _T('info_email_invalide');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_request('password') != _request('password_confirmation')){
|
||||||
|
$erreurs['password_confirmation'] = _T('info_passes_identiques');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( strlen(_request('password')) < _PASS_LONGUEUR_MINI ){
|
||||||
|
$erreurs['password'] = _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mais si l'un des deux champs n'est pas rempli, cette erreur prend le dessus
|
||||||
|
if (!_request('password')){
|
||||||
|
$erreurs['password'] = _T('info_obligatoire');
|
||||||
|
}
|
||||||
|
if (!_request('password_confirmation')){
|
||||||
|
$erreurs['password_confirmation'] = _T('info_obligatoire');
|
||||||
|
}
|
||||||
|
|
||||||
|
$unicite_email = lire_config('comptespip/unicite_email');
|
||||||
|
if (!count($erreurs) and $unicite_email !== "non") {
|
||||||
|
include_spip('action/inscrire_auteur');
|
||||||
|
if (function_exists('test_inscription')) {
|
||||||
|
$f = 'test_inscription';
|
||||||
|
} else {
|
||||||
|
$f = 'test_inscription_dist';
|
||||||
|
}
|
||||||
|
$declaration = $f($mode, $mail, $nom, $id);
|
||||||
|
if (is_string($declaration)) {
|
||||||
|
$k = (strpos($declaration, 'mail') !== false) ?
|
||||||
|
'mail_inscription' : 'nom_inscription';
|
||||||
|
$erreurs[$k] = _T($declaration);
|
||||||
|
} else {
|
||||||
|
include_spip('base/abstract_sql');
|
||||||
|
|
||||||
|
if ($row = sql_fetsel(
|
||||||
|
'statut, id_auteur, login, email',
|
||||||
|
'spip_auteurs',
|
||||||
|
'email=' . sql_quote($declaration['email'])
|
||||||
|
)) {
|
||||||
|
if (($row['statut'] == '5poubelle') and empty($declaration['pass'])) {
|
||||||
|
// irrecuperable
|
||||||
|
$erreurs['message_erreur'] = _T('form_forum_access_refuse');
|
||||||
|
} else {
|
||||||
|
if (($row['statut'] != 'nouveau') and empty($declaration['pass'])) {
|
||||||
|
if (intval($row['statut']) > intval($mode)) {
|
||||||
|
set_request('_upgrade_auteur', $row['id_auteur']);
|
||||||
|
} else {
|
||||||
|
// deja inscrit
|
||||||
|
$erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spip_log($row['id_auteur'] . ' veut se resinscrire');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $erreurs;
|
||||||
|
}
|
||||||
|
|
||||||
|
function formulaires_inscription_traiter_dist($mode = '', $id = 0, $retour = '') {
|
||||||
|
|
||||||
|
include_spip('inc/filtres');
|
||||||
|
include_spip('inc/autoriser');
|
||||||
|
include_spip('action/editer_auteur');
|
||||||
|
|
||||||
|
//if (!autoriser('inscrireauteur', $mode, $id)) {
|
||||||
|
$mode = lire_config('comptespip/statut');
|
||||||
|
if (!in_array($mode, ['6forum', '1comite', '0minirezo'])) {
|
||||||
|
$desc = 'rien a faire ici';
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$nom = _request('nom_inscription');
|
||||||
|
$mail_complet = _request('mail_inscription');
|
||||||
|
$prenom = _request('prenom');
|
||||||
|
$set_auteurs = [
|
||||||
|
'nom' => $nom,
|
||||||
|
'email' => $mail_complet,
|
||||||
|
'statut' => '1comite',
|
||||||
|
'login' => 'login_'.time(),
|
||||||
|
'prenom' => $prenom,
|
||||||
|
];
|
||||||
|
|
||||||
|
// associer un modele d'autorisations
|
||||||
|
$aut_modele = lire_config('comptespip/aut_modele');
|
||||||
|
if ($aut_modele) {
|
||||||
|
$autorisations = sql_getfetsel('aut_modele','spip_aut_modeles','nom='.sql_quote($aut_modele));
|
||||||
|
$set_auteurs['autorisations'] = $autorisations;
|
||||||
|
$set_auteurs['aut_nom'] = $aut_modele;
|
||||||
|
}
|
||||||
|
|
||||||
|
$set_auteurs = pipeline('comptespip_pre_inscription',[
|
||||||
|
'args' => [],
|
||||||
|
'data' => $set_auteurs
|
||||||
|
]);
|
||||||
|
|
||||||
|
$id_auteur = auteur_inserer(null, $set_auteurs);
|
||||||
|
|
||||||
|
$desc['id_auteur'] = $id_auteur;
|
||||||
|
if ($id_auteur) {
|
||||||
|
$search = [ ' ', "'", 'é' ];
|
||||||
|
$replace = [ '_', '_', 'e' ];
|
||||||
|
$login = strtolower(str_replace($search, $replace, $nom));
|
||||||
|
$login .= '_'.$id_auteur;
|
||||||
|
|
||||||
|
$pass = _request('password');
|
||||||
|
|
||||||
|
$data = pipeline('comptespip_pre_login',[
|
||||||
|
'args' => ['id_auteur' => $id_auteur],
|
||||||
|
'data' => [ 'login' => $login]
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (isset($data['login'])) {
|
||||||
|
$login = $data['login'];
|
||||||
|
}
|
||||||
|
if (isset($data['pass'])) {
|
||||||
|
$pass = $data['pass'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$set_instituer = [
|
||||||
|
'pass' => $pass,
|
||||||
|
'login' => $login
|
||||||
|
];
|
||||||
|
auteur_instituer($id_auteur, $set_instituer);
|
||||||
|
}
|
||||||
|
|
||||||
|
$f = charger_fonction('comptespip_mail_inscription','inc');
|
||||||
|
$f($id_auteur,compact('pass'));
|
||||||
|
|
||||||
|
|
||||||
|
if (lire_config('comptespip/connexion_auto')) {
|
||||||
|
// loguer le compte créé (on a vérifié par SMS)
|
||||||
|
$auteur = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
|
||||||
|
include_spip('inc/auth');
|
||||||
|
auth_loger($auteur);
|
||||||
|
|
||||||
|
$retour = parametre_url(generer_url_public(lire_config('comptespip/page_redirection_connexion'),'',true),'id_auteur',intval($id_auteur));
|
||||||
|
if (lire_config('comptespip/page_redirection_connexion')) {
|
||||||
|
$retour = parametre_url(generer_url_public(lire_config('comptespip/page_redirection_connexion'),'',true),'id_auteur',intval($id_auteur));
|
||||||
|
}
|
||||||
|
return array('message_ok' => _T('form_forum_identifiant_mail'), 'redirect' => $retour);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// erreur ?
|
||||||
|
if (is_string($desc)) {
|
||||||
|
return array('message_erreur' => $desc);
|
||||||
|
} // OK
|
||||||
|
else {
|
||||||
|
return array('message_ok' => _T('form_forum_identifiant_mail'), 'id_auteur' => $desc['id_auteur']);
|
||||||
|
}
|
||||||
|
}
|
28
inc/gamucompte_mail_inscription.php
Normal file
28
inc/gamucompte_mail_inscription.php
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?php
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* envoi un mail apres nouvelle inscription
|
||||||
|
*
|
||||||
|
* @param int $id_auteur
|
||||||
|
* @param array $options (optional)
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function inc_comptespip_mail_inscription_dist(int $id_auteur, array $options = []) :void{
|
||||||
|
|
||||||
|
$contexte = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
|
||||||
|
if (isset($options['pass'])) {
|
||||||
|
$contexte['pass'] = $options['pass'];
|
||||||
|
}
|
||||||
|
$mail_complet = $contexte['email'];
|
||||||
|
|
||||||
|
$message = recuperer_fond('modeles/mail_inscription',$contexte);
|
||||||
|
$sujet = lire_config('comptespip/mail_inscription_sujet');
|
||||||
|
|
||||||
|
include_spip('inc/notifications');
|
||||||
|
notifications_envoyer_mails($mail_complet, $message, $sujet);
|
||||||
|
}
|
24
lang/comptespip_fr.php
Normal file
24
lang/comptespip_fr.php
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
|
||||||
|
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||||
|
|
||||||
|
// G
|
||||||
|
'comptespip_titre' => 'CompteSPIP',
|
||||||
|
|
||||||
|
// C
|
||||||
|
'cfg_exemple' => 'Exemple',
|
||||||
|
'cfg_exemple_explication' => 'Explication de cet exemple',
|
||||||
|
'cfg_titre_parametrages' => 'Paramétrages',
|
||||||
|
|
||||||
|
|
||||||
|
// MM
|
||||||
|
'message_mail' => 'Voici vos identifiants pour vous connecter sur le site "@nom_site_spip@" (@adresse_login@) :',
|
||||||
|
|
||||||
|
// T
|
||||||
|
'titre_page_configurer_comptespip' => 'CompteSPIP',
|
||||||
|
);
|
14
lang/paquet-comptespip_fr.php
Normal file
14
lang/paquet-comptespip_fr.php
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
|
||||||
|
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||||
|
|
||||||
|
// G
|
||||||
|
'comptespip_description' => '',
|
||||||
|
'comptespip_nom' => 'CompteSPIP',
|
||||||
|
'comptespip_slogan' => '',
|
||||||
|
);
|
25
modeles/mail_inscription.html
Normal file
25
modeles/mail_inscription.html
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
[(#REM)
|
||||||
|
|
||||||
|
FORK deu modèle de SPIP
|
||||||
|
|
||||||
|
][(#HTTP_HEADER{Content-type: text/plain[; charset=(#CHARSET)]})]
|
||||||
|
[\[(#NOM_SITE_SPIP|concat{'\] : ',<:form_forum_identifiants:>}|nettoyer_titre_email)]
|
||||||
|
|
||||||
|
[(#SET{url_confirm, [(#ENV{url_confirm}|parametre_url{redirect,#ENV{redirect}})]})]
|
||||||
|
|
||||||
|
<:form_forum_message_auto:>
|
||||||
|
|
||||||
|
<:form_forum_bonjour{nom=#ENV{nom}}:>
|
||||||
|
|
||||||
|
#SET{url_site,#URL_SITE_SPIP/}
|
||||||
|
[(#SET{url_login,#URL_PAGE{connect}|url_absolue})]
|
||||||
|
<:comptespip:message_mail{nom_site_spip=#NOM_SITE_SPIP,adresse_site=#GET{url_site},adresse_login=#GET{url_login}}:>
|
||||||
|
|
||||||
|
[(#CONFIG{comptespip/unicite_email}|=={non}|oui)
|
||||||
|
<:form_forum_login:>[ (#ENV{login})]
|
||||||
|
]
|
||||||
|
[(#CONFIG{comptespip/unicite_email}|non)
|
||||||
|
<:form_forum_login:>[ (#ENV{email})]
|
||||||
|
]
|
||||||
|
|
||||||
|
#FILTRE{supprimer_tags|filtrer_entites|trim}
|
24
paquet.xml
Normal file
24
paquet.xml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<paquet
|
||||||
|
prefix="comptespip"
|
||||||
|
categorie="edition"
|
||||||
|
version="1.0.0"
|
||||||
|
etat="dev"
|
||||||
|
compatibilite="[3.3.0-dev;3.3.*]"
|
||||||
|
logo="prive/themes/spip/images/comptespip-xx.svg"
|
||||||
|
documentation=""
|
||||||
|
>
|
||||||
|
|
||||||
|
<nom>CompteSPIP</nom>
|
||||||
|
|
||||||
|
|
||||||
|
<auteur lien='https://gamuza.fr'>tofulm</auteur>
|
||||||
|
|
||||||
|
<licence>GNU/GPL</licence>
|
||||||
|
|
||||||
|
<pipeline nom="autoriser" inclure="comptespip_autorisations.php" />
|
||||||
|
|
||||||
|
<pipeline nom="comptespip_pre_inscription" action="" />
|
||||||
|
<pipeline nom="comptespip_pre_login" action="" />
|
||||||
|
|
||||||
|
|
||||||
|
</paquet>
|
7
prive/squelettes/contenu/configurer_comptespip.html
Normal file
7
prive/squelettes/contenu/configurer_comptespip.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
[(#AUTORISER{configurer,_comptespip}|sinon_interdire_acces)]
|
||||||
|
|
||||||
|
<h1 class="grostitre"><:comptespip:titre_page_configurer_comptespip:/></h1>
|
||||||
|
|
||||||
|
<div class="ajax">
|
||||||
|
#FORMULAIRE_CONFIGURER_COMPTESPIP
|
||||||
|
</div>
|
117
prive/themes/spip/images/comptespip-xx.svg
Normal file
117
prive/themes/spip/images/comptespip-xx.svg
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
inkscape:export-ydpi="558.54553"
|
||||||
|
inkscape:export-xdpi="558.54553"
|
||||||
|
inkscape:export-filename="/home/tof/Documents/professionnel/gamuza/modeles/icones/gamuCompte.png"
|
||||||
|
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||||
|
height="21.999996"
|
||||||
|
width="22"
|
||||||
|
sodipodi:docname="gamuCompte.svg"
|
||||||
|
id="svg883"
|
||||||
|
xml:space="preserve"
|
||||||
|
enable-background="new 0 0 24 24"
|
||||||
|
viewBox="0 0 22.000002 21.999996"
|
||||||
|
y="0px"
|
||||||
|
x="0px"
|
||||||
|
version="1.1"><metadata
|
||||||
|
id="metadata889"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||||
|
id="defs887"><marker
|
||||||
|
inkscape:isstock="true"
|
||||||
|
style="overflow:visible"
|
||||||
|
id="Arrow1Lstart"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow1Lstart"><path
|
||||||
|
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||||
|
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
id="path1251" /></marker></defs><sodipodi:namedview
|
||||||
|
fit-margin-bottom="1"
|
||||||
|
fit-margin-right="1"
|
||||||
|
fit-margin-left="1"
|
||||||
|
fit-margin-top="1"
|
||||||
|
inkscape:current-layer="svg883"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:window-y="20"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:cy="13.816372"
|
||||||
|
inkscape:cx="6.0688435"
|
||||||
|
inkscape:zoom="22.627417"
|
||||||
|
inkscape:pagecheckerboard="true"
|
||||||
|
showgrid="true"
|
||||||
|
id="namedview885"
|
||||||
|
inkscape:window-height="1416"
|
||||||
|
inkscape:window-width="2556"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
guidetolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
borderopacity="1"
|
||||||
|
bordercolor="#666666"
|
||||||
|
pagecolor="#ffffff"><inkscape:grid
|
||||||
|
originy="-0.3278344"
|
||||||
|
originx="-9.4409339"
|
||||||
|
id="grid1203"
|
||||||
|
type="xygrid" /></sodipodi:namedview><path
|
||||||
|
style="stroke-width:0.438072"
|
||||||
|
d="m 2377.8692,1055.6122 v -0.8474 c 0,-1.1863 -2.2647,-1.6947 -4.3936,-1.6947 -2.1288,0 -4.3936,0.5508 -4.3936,1.6947 v 0.8474 c 0,0.7626 0.3171,1.5252 0.9059,2.076 l 2.2647,2.0761 c 0.1359,0.1271 0.1812,0.2542 0.1812,0.4237 v 2.7116 c 0,0.1694 0.091,0.2965 0.2718,0.3389 l 1.3135,0.3813 c 0.2265,0.042 0.453,-0.085 0.453,-0.3389 v -3.0506 c 0,-0.1694 0.091,-0.2965 0.1812,-0.4236 l 2.31,-2.1185 c 0.5888,-0.5508 0.9059,-1.3134 0.9059,-2.076 z m -4.3936,-0.042 c -2.1741,0 -3.3518,-0.5508 -3.3971,-0.7626 v 0 c 0.045,-0.2119 1.223,-0.7627 3.3971,-0.7627 2.1742,0 3.3065,0.5508 3.3971,0.7627 -0.091,0.2118 -1.2229,0.7626 -3.3971,0.7626 z"
|
||||||
|
id="path979" /><path
|
||||||
|
style="stroke-width:0.438072"
|
||||||
|
d="m 2375.7404,1059.9338 c -0.2718,0 -0.453,0.1694 -0.453,0.4236 0,0.2543 0.1812,0.4237 0.453,0.4237 h 1.9476 c 0.2718,0 0.453,-0.1694 0.453,-0.4237 0,-0.2542 -0.1812,-0.4236 -0.453,-0.4236 z"
|
||||||
|
id="path981" /><path
|
||||||
|
style="stroke-width:0.438072"
|
||||||
|
d="m 2377.688,1061.3743 h -1.9476 c -0.2718,0 -0.453,0.1695 -0.453,0.4237 0,0.2542 0.1812,0.4237 0.453,0.4237 h 1.9476 c 0.2718,0 0.453,-0.1695 0.453,-0.4237 0,-0.2542 -0.1812,-0.4237 -0.453,-0.4237 z"
|
||||||
|
id="path983" /><path
|
||||||
|
style="stroke-width:0.438072"
|
||||||
|
d="m 2377.688,1062.7725 h -1.9476 c -0.2718,0 -0.453,0.1694 -0.453,0.4236 0,0.2542 0.1812,0.4237 0.453,0.4237 h 1.9476 c 0.2718,0 0.453,-0.1695 0.453,-0.4237 0,-0.2118 -0.1812,-0.4236 -0.453,-0.4236 z"
|
||||||
|
id="path985" /><g
|
||||||
|
transform="translate(0.55806,0.1161166)"
|
||||||
|
id="g1540"><path
|
||||||
|
d="m 13.341396,12.528925 c 0.640696,-0.807698 1.04113,-1.866022 1.04113,-3.0371256 0,-2.5130939 -1.79595,-4.5568339 -4.004348,-4.5568339 -2.2083949,0 -4.0043446,2.04374 -4.0043446,4.5568339 0,1.1711036 0.4004347,2.2294276 1.0411302,3.0371256 -2.3855898,1.273635 -4.0443902,4.024824 -4.0443902,7.215747 V 20.88388 H 17.385787 v -1.139208 c 0,-3.190923 -1.658801,-5.942112 -4.044391,-7.215747 z M 8.3760069,9.4917994 c 0,-1.2565469 0.8979751,-2.2784169 2.0021711,-2.2784169 1.1042,0 2.002175,1.02187 2.002175,2.2784169 0,1.2565436 -0.897975,2.2784126 -2.002175,2.2784126 -1.104196,0 -2.0021711,-1.021869 -2.0021711,-2.2784126 z M 5.4738563,18.605464 c 0.4645043,-2.596257 2.4877007,-4.556835 4.9043217,-4.556835 2.416624,0 4.439821,1.960578 4.904325,4.556835 z"
|
||||||
|
id="path871"
|
||||||
|
style="stroke-width:1.06792"
|
||||||
|
inkscape:export-xdpi="609.60999"
|
||||||
|
inkscape:export-ydpi="609.60999" /><polygon
|
||||||
|
points="19,5 19,3 17,3 17,5 15,5 15,7 17,7 17,9 19,9 19,7 21,7 21,5 "
|
||||||
|
id="polygon873"
|
||||||
|
transform="matrix(1.0010868,0,0,1.1392085,-14.574362,-1.960042)"
|
||||||
|
style="fill:#c19753;fill-opacity:1"
|
||||||
|
inkscape:export-xdpi="609.60999"
|
||||||
|
inkscape:export-ydpi="609.60999" /><path
|
||||||
|
id="path989"
|
||||||
|
d="M 18.655535,4.6994801 16.859901,2.6497064 C 16.733448,2.5077308 16.543768,2.6319594 16.543768,2.8626699 v 0.9405887 h -1.978991 c -0.107484,0 -0.196001,0.1242288 -0.196001,0.2750781 v 1.6948345 c 0,0.1508492 0.08851,0.2750778 0.196001,0.2750778 h 1.978991 v 0.9405889 c 0,0.2307105 0.18968,0.3549392 0.316133,0.2129635 l 1.801956,-2.0586473 c 0.09484,-0.1242288 0.09484,-0.3371921 -0.0063,-0.443674 z"
|
||||||
|
style="fill:#c19753;fill-opacity:1;stroke-width:0.0749025"
|
||||||
|
inkscape:export-xdpi="609.60999"
|
||||||
|
inkscape:export-ydpi="609.60999" /><path
|
||||||
|
id="path991"
|
||||||
|
d="m 19.748206,0.8838834 h -2.77492 c -0.208119,0 -0.366052,0.1508502 -0.366685,0.3283189 l -0.003,0.8413211 c -6.65e-4,0.1863417 0.162985,0.2790406 0.361191,0.2798209 l 2.084239,0.00821 -0.02666,5.0983826 -2.200483,-0.00769 c -0.208131,-7.28e-4 -0.215291,0.2797228 -0.215291,0.4571924 v 0.7055023 c 0,0.186343 0.168477,0.3283186 0.366685,0.3283186 h 2.77492 c 0.386516,0 0.693738,-0.2750779 0.693738,-0.6211434 V 1.5050272 c -5e-6,-0.3460658 -0.307227,-0.6211438 -0.693734,-0.6211438 z"
|
||||||
|
style="fill:#c19753;fill-opacity:1;stroke-width:0.0937763"
|
||||||
|
sodipodi:nodetypes="sssssccssssssss"
|
||||||
|
inkscape:export-xdpi="609.60999"
|
||||||
|
inkscape:export-ydpi="609.60999" /><path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#008d00;stroke-width:0.00346924;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
|
d="M 10.002251,11.720163 C 9.188191,11.533677 8.556782,10.790796 8.4154413,9.853213 8.3235663,9.2437581 8.4655923,8.610896 8.809701,8.0964027 8.934134,7.9103585 9.252984,7.6049937 9.434665,7.4978714 9.778128,7.2953598 10.113332,7.2090948 10.471292,7.2310941 c 0.278128,0.017093 0.433965,0.058069 0.685412,0.180222 0.587206,0.2852656 1.014548,0.8668667 1.160947,1.5800186 0.04103,0.1998869 0.04609,0.2809833 0.0365,0.5855728 -0.0131,0.4161622 -0.06627,0.6477545 -0.224312,0.9771355 -0.137103,0.285737 -0.255603,0.453629 -0.464455,0.658045 -0.217576,0.212954 -0.456606,0.359918 -0.740699,0.455407 -0.185523,0.06236 -0.24331,0.07136 -0.497185,0.07742 -0.193101,0.0046 -0.332489,-0.0035 -0.425248,-0.02475 z"
|
||||||
|
id="path1521"
|
||||||
|
inkscape:export-xdpi="609.60999"
|
||||||
|
inkscape:export-ydpi="609.60999" /><path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#008d00;stroke-width:0.00346924;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
|
d="M 9.90822,11.678098 C 9.687052,11.610168 9.59353,11.567458 9.419382,11.454868 8.979205,11.170287 8.630415,10.669258 8.477805,10.102317 8.42515,9.9067054 8.419649,9.8486391 8.419649,9.4885192 8.419649,9.1305757 8.425339,9.069652 8.476534,8.8797318 8.597496,8.4309712 8.772953,8.1169614 9.067095,7.8228189 9.366797,7.5231171 9.621513,7.3754618 9.991984,7.2866741 c 0.252652,-0.060551 0.667105,-0.048589 0.887779,0.025624 0.712898,0.2397478 1.200421,0.7973997 1.406155,1.6084274 0.04326,0.1705384 0.05298,0.2648052 0.05298,0.5137857 0,0.5183206 -0.05278,0.7664828 -0.24712,1.1620038 -0.273677,0.556979 -0.740288,0.950419 -1.295623,1.092449 -0.245758,0.06285 -0.664611,0.05773 -0.887936,-0.01087 z"
|
||||||
|
id="path1523"
|
||||||
|
inkscape:export-xdpi="609.60999"
|
||||||
|
inkscape:export-ydpi="609.60999" /><path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#008d00;stroke-width:0.00346924;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
|
d="m 5.5014409,18.520699 c 0.031629,-0.179014 0.1650059,-0.66917 0.2417508,-0.888426 0.425943,-1.216895 1.2520171,-2.265107 2.2867761,-2.901709 0.4130862,-0.254138 0.9955602,-0.484063 1.4689842,-0.579866 1.870137,-0.378443 3.75071,0.475264 4.89262,2.22106 0.388597,0.594101 0.680534,1.300826 0.837492,2.027407 l 0.04415,0.204399 H 10.380008 5.4868002 Z"
|
||||||
|
id="path1525"
|
||||||
|
inkscape:export-xdpi="609.60999"
|
||||||
|
inkscape:export-ydpi="609.60999" /></g></svg>
|
After Width: | Height: | Size: 9 KiB |
Loading…
Add table
Reference in a new issue