We build. You grow.

Get best community software here

Start a social network, a fan-site, an education project with oxwall - free opensource community software

ASTUCES et SCRIPTING | Forum

Mike
Mike Feb 28 '13
Toutes les astuces concernant Oxwall 1.5.1
PHP, Javascript et autres bricoles !!! Mais NE postez PAS vos plugins ici ; )

http://insociable.net/
Mike
Mike Feb 28 '13
Vous pouvez utiliser ce bout de code partout ou vous souhaitez appeler une page PHP grâce au code HTML perso (ou page nouvelle etc) ...


<script type="text/JavaScript">
$(document).ready(function() {
var affvars = [], hash;
    var affil = document.URL.split('?')[1];
    if(affil != undefined){
        affil = affil.split('&');
        for(var i = 0; i < affil.length; i++){
            hash = affil[i].split('=');
            affvars.push(hash[1]);
            affvars[hash[0]] = hash[1];
       
var mavar_post_js = affvars['a'];

$.ajax({
       type: "POST",
       url: "mapage.php",
       data: "mavar_post=" + mavar_post_js ,
       success: function(retour) {
            $("#ici").html(retour);
           
            }
});
        }
}
});
</script>
<div style="color:red;" id="ici"></div>

côté php , if (isset etc .... on se comprend : ))
Vous pouvez passer plusieurs variables _POST et les récupérer avec PhP.

Si quelqu’un connait une astuce (la plus simple) pour récupérer les PSEUDO,AVATAR,USER_ID coté Oxwall ça serait cool ^^ même si il faut écrire un cookie, car ces infos ne craigne pas ; )
Mike
Mike Mar 5 '13
Ou alors ... appeler une page sans passer de variables (à coller dans html perso ou page) : 
<script type="text/javascript">
<!--
var Fichier = function Fichier(fichier)
{
    if(window.XMLHttpRequest) obj = new XMLHttpRequest(); //Pour Firefox, Opera,...

    else if(window.ActiveXObject) obj = new ActiveXObject("Microsoft.XMLHTTP"); //Pour Internet Explorer

    else return(false);
   

    if (obj.overrideMimeType) obj.overrideMimeType("text/xml"); //Évite un bug de Safari

  
    obj.open("GET", fichier, false);
    obj.send(null);
  
    if(obj.readyState == 4) return(obj.responseText);
    else return(false);
}

var Contenu = Fichier('http://insociable.net/affiliation/affiliation.php ');


function foo(){
document.write(Contenu);
}

foo();


</script>


UNIQUEMENT pour des fichiers stockés sur le même serveur ; )
The Forum post is edited by Mike Mar 5 '13
Jeux
Jeux Mar 5 '13
et pour ajouter du html dans la barre de menu ?
Mike
Mike Mar 6 '13
pour ajouter des pages php aux pages créées avec l'Admin... les onglets menu se font automatiquement , par contre tu peux les cacher en les plaçants dans le footer (que tu "hidden" en css)

The Forum post is edited by Mike Mar 9 '13
Reynald
Reynald Mar 10 '13
hello,hey mike peut tu nous poster ta traduction francaise car celle qu'on trouve a été traduite via google trad !!! Merci l'ami
Mario Carriere
Mario Carriere Mar 24 '13
Salut Mike,

Je sais pas si tu as trouvé tes réponses mais voilà;

$id = OW::getUser()->getId(); // donne le ID du user présentement loggé

$pseudo = BOL_UserService::getInstance()->getDisplayName($id); // donne le pseudo

$avatar = BOL_AvatarService::getInstance()->getAvatarUrl(OW::getUser()->getId()); // donne l'url de l'avatar

Et pour récupérer ces valeurs en javascript tu peux faire;

$details = array('userId' => $id,  'username' => $pseudo); //création d'un tableau

OW::getDocument()->addScriptDeclaration("window.OW_plugin.Details = " . json_encode($details) . ";\n "); //encodage des infos et ajout de la déclaration

Tu pourras alors en javascript récupérer les valeurs sous la forme

OW_plugin.Details.id  et OW_plugin.Details.pseudo

EN espérant que cela réponde à ta question.

Salutation

Mario
Alan
Alan Jun 20 '13
Petit up du sujet en espérant qu'on pourra me répondre!


Je suis en train de créer un module et j'aimerai trouver une méthode pour récupérer les détails d'un profil.


J'ai donc testé ton code Mario, mais je n'arrive pas vraiment à l'utiliser (déjà je découvre la création de plugin, c'est pas vraiment évident!)


Alors, dans la méthode index() de mon controleur, j'ai inséré:


$id = OW::getUser()->getId();

$pseudo = BOL_UserService::getInstance()->getDisplayName($id);        

$avatar = BOL_AvatarService::getInstance()->getAvatarUrl(OW::getUser()->getId());        

$details = array('userId' => $id, 'username' => $pseudo);        

OW::getDocument()->addScriptDeclaration("window.OW_plugin.Details = " . json_encode($details) . ";\n ");


Et dans la vue en html, j'ai inséré:


<SCRIPT LANGUAGE="Javascript">

document.writeln('blabla');

str = OW_plugin.Details.id;

document.writeln(str);

</SCRIPT>


Histoire de tester au moins sur l'id, donc bah, le blabla s'affiche, mais c'est tout, je pense que je n'arrive pas à saisir le concept de la communication des variables entre la vue et le contrôleur, si quelqu'un pouvait m'aider ça serait bien cool!


Merci!

The Forum post is edited by Alan Jun 20 '13
Alan
Alan Jun 20 '13
En fait c'est bon j'ai compris comment passer des variables entre PHP et HTML et pas besoin de Javascript du coup!
smec's
smec's Feb 13 '15

  Alan -  Mario Carriere


Vous pouvez nous montrer SVP un exemple a mettre sur la page HTML
Mario Carriere
Mario Carriere Mar 28 '15
Salut smec's,

Désolé pour le délai, il semble que je ne m'étais pas abonné à ce thread... alors j'avais pas vu la question. Je suis maintenant abonné...

Si c'est toujours pertinent, tu voudrais un exemple de quoi exactement? Le code que j'ai donné à Alan était pour passer une variable PHP à une fonction Javascript. Pour ce faire, la méthode donné est d'encoder la variable dans le code HTML de la page afin que l'application javascript la récupère.

Si tu désires simplement afficher une variable PHP dans une page HTML, la méthode est différente et bien plus simple.

Tiens moi au courant...

Mario
Norias
Norias Mar 29 '15
Ha ben le forum ne m'a pas non plus indiqué qu'il y avait un nouveau post dans ce thread :/


Pour info, il est fort possible qu'il y ait des modifications de la partie "ajout de page" dans une prochaine mise à jour...

Mario Carriere
Mario Carriere Mar 29 '15
Salut Youzeur,

Tu pourrais nous en dire plus?

Mario
Norias
Norias Mar 29 '15
yep !


Ils ont commencé à en parler le 2 octobre l'an dernier dans ce post du devblog : http://blog.oxwall.org/2014/10/dev-diary-october-2-2014


"the next year and a half are shaping up to be quite exciting. Here’s why:


– Admin Panel Improvement;

Content Management System Introduction;

– Default Theme Reimagining;

– Mobile Version Enhancement;

– User Interface Facelift;

"


Puis le 30 octobre avec la réponse de Addenster à une demande sur UserVoice.com pour avoir la possibilité de faire des pages complètement intégrées à Oxwall avec widgets etc..


"As we announced in dev diary http://blog.oxwall.org/2014/10/dev-diary-october-2-2014, we have already started to develop a fully featured CMS option of Oxwall. Which includes an ability to create and customize custom pages also. 

We plan to implement CMS iteratively via a few steps next year. Follow our dev diary for updates." 


Puis le 4 février sur le devblog ils ont annoncé leurs roadmap pour 2015, et il y a tout un paragraphe consacré au "content management" : http://blog.oxwall.org/2015/02/oxwall-2015


Mais dans le dernier post, qui date d'il y a un mois, ils parlent seulement des changements dans l'interface admin :/ http://blog.oxwall.org/2015/02/dev-diary-admin-panel-changes


Donc, à mon avis la prochaine maj sera plutôt consacrée à ces changement coté admin, mais je pense qu'on peut garder un petit espoir qu'on ait enfin la possibilité de créer des pages complètes avec des widgets etc... et donc j'imagine que le passage de variables comme le nom de l'utilisateur en cours vers du code perso sera simplifié. 





Mario Carriere
Mario Carriere Mar 29 '15
Youzeur, merci pour les infos!

Mario
smec's
smec's Apr 14 '15
Bonsoir,

Désolé de ce retard les amis je tiens a vous remercier tous pour ce post 


Bien à vous

Mario Carriere
Mario Carriere Apr 14 '15
De rien, smec's...

Alors tu as réussi ce que tu voulais faire?

Mario
smec's
smec's Apr 15 '15
Bonjour mario,

Oui merci infiniment franchement j'aller changer la communauté oxwall 

parcequ'elle nous protège pas contre certains malfaiteurs et certains qui se nom ( développeur ) je vais pas citer les nom 

mais dommage un grand dommage hier j'ai vu la nouvelle version 1.7.3 cool je trouve que la communauté est bien les créateurs aussi mais STOP aux profiteur du systeme.


Mario Carriere
Mario Carriere Apr 15 '15
@smec`s

C'est malheureusement le problème des plateformes basées sur du code libre... D'un coté, Il serait très difficile pour Oxwall de surveiller tous les développeurs... Ils ne s'occupent que de la plateforme et des plugins de base ce qui, j'en suis sur, est déjà une tache importante...

Pour le reste, la meilleur protection contre les profiteurs est en autre ce forum dans lequel les usagers peuvent partager leur expérience avec les différents développeurs de plugins. C'est donc important que tout le monde partage leur expérience, quelle soit négative ou positive, afin que tous les usagers aient accès à l'information.

Plusieurs développeurs se sont fait ramasser sur le forum, à tort ou à raison. Mais ils ont eu la chance de répondre. Les usagers ont donc accès aux deux cotés de la médaille et peuvent se faire une idée... Ils on donc la possibilité de faire des choix mieux éclairés.

Salutaions,

Mario
smec's
smec's Apr 15 '15
Salut Bravo @Mario pour les explications et je comprends bien que ce forum peux nous aider a faire face contre ces profiteurs.

Bien à vous