Aide au projet spx : plugins pour pluxml - Forums pluxml
Vous n'êtes pas identifié(e).
Ok pas de soucis. Tu me tiens au courant. a+
Tu peux me donner le package par email, je voir ce qui ne vas pas (avec le login pass) stp
Bonjour,
tu as la version 1.78 et tu es en https ?
Pour info la version 1.78 fix l'issue concernant l'https
**** v 1.78 ****
- fix https issue for post request protect referer
Hello,
Excuse pour cette réponse tardive mais j'avais pas de boulot.
Je vais rendre optionnel l'affichage du blog (en décalé ou non) dans une version 0.8 je pense.
Donc pas de soucis.
Merci !!!!
Juste pour ouvrir le débat
Comme vous avez déjà constaté, après un certain moment d'inactivité, PluXml se déconnecte.
Si on était en train de rédiger un article et qu'on est allé faire un tour, quand on revient, on est déconnecté et on perd tout.
Comment faire pour pouvoir récupérer le texte.
Comment faire quand on utilise un éditeur wysiwyg qui n'utilise pas de zone textarea mais des iframes ?
Comment implémenter une sauvegarde de ce qu'on est en train de rédiger et que cela fonctionne quelque soit le type d'éditeur utilisé ?
L'idée ici est discuter pour trouver un système de sauvegarde temporaire des articles en cours de rédaction pour faire une récup en cas de déconnexion ou de rafraîchissement de la page involontaire et que cela fonction quelque soit le wysywig utilisé.
un lien ici :
autosaving-localstorage-textfield-from-iframe-doesnt-work
Un plugin existant : plugin-autosave
Pour une réflexion commune.
Hello,
Un petit shortcode qui va vous permettre d'afficher des post facebook directement dans vos pages :
[== Indéfini ==]
function facebook_php_func($atts, $content = null) {
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$s='<section>
<p>';
$s.= '
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/fr_FR/sdk.js#xfbml=1&version=v2.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));</script>
<div class="fb-comments" data-href="'.$actual_link.'" data-width="100%" data-numposts="10" data-colorscheme="light"></div>
';
$s.='</p>
</section>';
return $s;
}
add_shortcode('WFACEBOOK', 'facebook_php_func');
code a mettre dans le fichier de config.php du thème
usage : n'importe ou par declaration de la balise [WFACEBOOK].
exemple ici en bas de page
tu utlises spxtynimce pour l'import des gif ?
Pas de soucis mon petit. je vais prendre le soleil dans le jardin.
J'ai rien touche tu peux y aller.
Non. Il faut d'abord recopie le contenu des dossiers de spxdatas de la démo avant de mettre a jour le plugin. Pour les mises ajours suivantes tu auras juste a remplacer le plugin.
En fait tu as recopier les dossiers de spxdatas v 1.60 au lieu des dossiers spxdatas do projet SPD 4. Non ?
Hello'
Entre artiste on se comprend .
Le chemin est bon. Il faut vérifier maintenant physiquement la copie. Tu dois vérifier qu'il y a bien la base sp3.php dans data/spxdatas/table/
Si ça marche toujours pas il me faudra me connecter en FTP a ton site pour comprendre.
T'inquiète donc pas je suis la pour t'aider.
A+
Jeje
hello,
dans spxdatas.php ligne 220
tu peux me tracer la valeur du retour
[== Indéfini ==]
public function getBaseURL() {
$filename=$this->getPathTable().$this->getParam('file_table').".php";
return $filename;
}
en faisant :
[== Indéfini ==]
public function getBaseURL() {
$filename=$this->getPathTable().$this->getParam('file_table').".php";
echo ($filename);
return $filename;
}
et me renvoyer le retour stp (ce sera plus facile).
Tu n'as pas modifié le nom de la base ?
Hello,
Essaye de mettre à jour spxdatas avec la version 1.60 stp.
Tu me tiens au courant.
jéjé
Il y a un bug dans spxdatas dans la version 4 de spx pour le setData.
La version 1.46 de spxdatas corrige ce problème.
Remplace la fontion de spxdatas
[== Indéfini ==]
private function __getTableAutorized($table) {
$b=false;
$id_user = $_SESSION['user'];
# 0 to 4
$level_user = $_SESSION['profil'];
$auserlevel= $this->aTables[$table]["user"]["tableuserlevel"];
$auserinclude=$this->aTables[$table]["user"]["tableuserinclude"];
$auserexclude=$this->aTables[$table]["user"]["tableuserexclude"];
for ($i=0;$i<count($auserlevel);$i++){
if ($level_user == $auserlevel[$i]) $b=true;
}
for ($i=0;$i<count($auserinclude);$i++){
if ($id_user == $auserinclude[$i]) $b=true;
}
for ($i=0;$i<count($auserexclude);$i++){
if ($id_user == $auserexclude[$i]) $b=false;
}
return $b;
}
Par celle-ci version 1.46 : Cette fonction autorize dans tous les cas l'écriture d'une table coté client via setData (not PLX_ADMIN)
[== Indéfini ==]
private function __getTableAutorized($table) {
if(defined('PLX_ADMIN')) {
$b=false;
$id_user = $_SESSION['user'];
# 0 to 4
$level_user = $_SESSION['profil'];
$auserlevel= $this->aTables[$table]["user"]["tableuserlevel"];
$auserinclude=$this->aTables[$table]["user"]["tableuserinclude"];
$auserexclude=$this->aTables[$table]["user"]["tableuserexclude"];
for ($i=0;$i<count($auserlevel);$i++){
if ($level_user == $auserlevel[$i]) $b=true;
}
for ($i=0;$i<count($auserinclude);$i++){
if ($id_user == $auserinclude[$i]) $b=true;
}
for ($i=0;$i<count($auserexclude);$i++){
if ($id_user == $auserexclude[$i]) $b=false;
}
return $b;
}else{
return true;
}
}
Config.php
[== Indéfini ==]
function youtube_function($atts) {
extract(shortcode_atts(array(
"src" => 'http://',
"width" => '475',
"height" => '350',
"origin" => 'http://',
"controls"=> '1',
"frameborder"=> '0',
"autoplay"=> '1',
"loop"=> '1',
), $atts));
return '<iframe id="ytplayer" type="text/html" width="'.$width.'" height="'.$height.'"
src="'.$src.'?autoplay='.$autoplay.'&origin='.$origin.'&loop='.$loop.'&control='.$control.'"
frameborder="'.$frameborder.'"/>';
}
// Optional attributes: width, height, name, allowFullScreen, allowScriptAccess, controls
// [youtube src="http://www.youtube.com/embed/M7lc1UVf-VE" width="600" height="450"]
add_shortcode("youtube", "youtube_function");
Usage
[== Indéfini ==]
[youtube src="http://www.youtube.com/embed/M7lc1UVf-VE" width="600" height="450"]
Voici une liste de liens intéressante :
supreme-shortcodes
bootstrap-3-shortcodes
shortcode-reference
easy-bootstrap-shortcodes : très intéressant il permet de rajouter les boutons dans tynimce (on peux presque copier coller le code)
wordpress TinyMCE_Custom_Buttons
guide-to-creating-your-own-wordpress-editor-buttons
wordpress-shortcodes-page-builders
siteorigin-panels -> un builder gratuit
3-wordpress-page-builder-plugins
les-widgets-wordpress
Une service bien pratique est Google Charts. IL permet d'afficher un graphique camembert. exemple ici
Déclaration config.php
[== Indéfini ==]
function googlechart_function( $atts ) {
extract(shortcode_atts(array(
'data' => '',
'type' => 'pie',
'title' => 'Chart',
'labels' => '',
'size' => '640x480',
'advanced' => '',
'bg' => 'FFFFFF',
'colors' => '',
), $atts));
switch ($type) {
case 'line' :
$chartype = 'lc';
break;
case 'pie' :
$chartype = 'p3';
break;
case 'xline' :
$chartype = 'lxy';
break;
case 'sparkline' :
$chartype = 'ls';
break;
case 'meter' :
$chartype = 'gom';
break;
case 'scatter' :
$chartype = 's';
break;
case 'venn' :
$chartype = 'v';
break;
case 'vpied' :
$chartype = 'p';
break;
default :
$chartype = $type;
break;
}
$attributes = '';
if ($title) $attributes .= '&chtt='.$title.'';
if ($labels) $attributes .= '&chl='.$labels.'';
if ($colors) $attributes .= '&chco='.$colors.'';
$attributes .= '&chs='.$size.'';
$attributes .= '&chd=t:'.$data.'';
$attributes .= '&chf='.$bg.'';
return '<img title="'.$title.'" src="http://chart.apis.google.com/chart?cht='.$chartype.''.$attributes.$advanced.'" alt="'.$title.'" />';
}
add_shortcode('googlechart', 'googlechart_function');
?>
Usage:
Population d'australie :
[== PHP ==]
<?php
[googlechart data="7238819,5547527,4516361,1644642,507626,229675,127532,2296411,358894" bg="F7F9FA" labels="NSW|Victoria|Queensland|South Australia|Tasmania|Northern+Territory|Darwin|Western Australia|ACT" colors="058DC7,81feb6,ff8080,1601d1,50B432,ff0f0f,800040,ED561B,EDEF00" size="445x200" title="Australian Population" type="pie"]
Sparkline (sparkline)
[== Indéfini ==]
[googlechart data="0,22,24,26,28,100,90,80,70,65,20,80,30,50,20,30" bg="F7F9FA" size="445x100" type="sparkline"]
Google o meters
[== Indéfini ==]
[googlechart data="30" bg="F7F9FA" labels="low" colors="00ff40,009d27,ffc22f,d89b07,ffa346,d89b07,ff6666,ff0f0f" size="445x200" title="Fire Danger" type="gom"]
Je me permets de déposer le premier shortcode (créé par francis)
Ce shortcode permet d'appeler n'importe quel plugin actif à l'intérieur d'une page, en écrivant un code du type :
[== Indéfini ==]
[plxplugin plugin="nom_du_plugin" param1="..." param2="..." param3="..."]
Code a insérer dans config.php du thème :
[== PHP ==]
<?php
/* ---------------------------- FONCTION SHORTCODE plxplugin ---------------------------------*/
// Ce shortcode permet d'appeler n'importe quel plugin actif à l'intérieur d'une page,
// en écrivant un code du type :
// [plxplugin plugin="nom_du_plugin" param1="..." param2="..." param3="..."]
//
// Si le plugin affiche un contenu avec echo, celui-ci est récupéré et retourné par le shortcode
// Sinon, si le plugin renvoie une valeur, celle-ci est retournée directement
// => pour différencier ce dernier cas (moins courant), écrire plugin="val-nomduplugin" au lieu de plugin="nomduplugin"
function plxplugin_func($tab_atts) {
$atts = shortcode_atts(array("plugin" =>"", "txtdebut"=>"", "txtfin"=>""), $tab_atts);
extract($atts, EXTR_OVERWRITE);
unset($tab_atts["plugin"], $tab_atts["txtdebut"], $tab_atts["txtfin"]); // attributs inutiles à transmettre au plugin
$plxShow = plxShow::getInstance(); // pour appeler les fonctions de la classe plxShow
// Si le nom du plugin est précédé de "val-", c'est qu'il renvoie une valeur qui sera retournée directement
// Sinon, le plugin affiche lui-même le contenu, qu'il faut intercepter pour pouvoir la retourner
if (substr($plugin, 0, 4)=="val-") {
$plugin_retourne_valeur = true;
$plugin = substr($plugin, 4); // suppression des 4 premiers caractères "val-" qui précèdent le nom du plugin
}
else { $plugin_retourne_valeur = false; }
// Vérification de l'existence du plugin, avant de l'appeler, pour éviter tout message d'erreur
if ( ! empty($plxShow->plxMotor->plxPlugins->aPlugins[$plugin]) ) {
// Appel de la fonction du plugin par son nom $plugin avec transfert du tableau de paramètres $tab_atts
if ($plugin_retourne_valeur) { // Si le plugin renvoie le contenu sous forme de variable
$resultplugin = $plxShow->plxMotor->plxPlugins->aPlugins[$plugin]->$plugin($tab_atts);
return $txtdebut . $resultplugin . $txtfin;
}
else { // Si le plugin affiche directement le contenu avec "echo"
ob_start();
$plxShow->plxMotor->plxPlugins->aPlugins[$plugin]->$plugin($tab_atts);
$resultplugin = ob_get_clean();
return $txtdebut . $resultplugin . $txtfin;
}
}
else { return ""; } // Fin du if ... else ... testant l'existence ou non du plugin
}
add_shortcode( 'plxplugin', 'plxplugin_func' );
/*
Exemple d'utilisation :
[plxplugin plugin="monplugin" param1="..." param2="..."]
Les noms des paramètres param1, param2, ... sont à remplacer par ceux utlisés dans le plugin.
Il est possible de fournir un texte à afficher, avant et après : paramètres txtdebut="..." et txtfin="..."
Si le plugin renvoie un contenu au lieu de l'afficher, il est possible d'afficher ce contenu avec echo,
en ajoutant "echo-" avant le nom du plugin, comme par exemple pour le plugin "test" :
[plxplugin plugin="echo-test" param1="..." param2="..."]
/* -----------------------------------------------------------------------------------------------*/
?>
Pour le tester depuis n'importe quelle page :
Exemple d'utilisation :
[== Indéfini ==]
[plxplugin plugin="monplugin" param1="..." param2="..."]
Les noms des paramètres param1, param2, ... sont à remplacer par ceux utlisés dans le plugin.
Il est possible de fournir un texte à afficher, avant et après : paramètres txtdebut="..." et txtfin="..."
Si le plugin renvoie un contenu au lieu de l'afficher, il est possible d'afficher ce contenu avec echo,
en ajoutant "val-" avant le nom du plugin, comme par exemple pour le plugin "test" :
[plxplugin plugin="val-test" param1="..." param2="..."]
Hello je regarde ça et je te dis ça Francis. Merci encore. J'ai loupé le coche (vacances + petit break désolé)
La version 1.56 ou supérieure de spxdatas permet de faire des enregistrements de table en json mais aussi des requêtes coté clients comme en sql :
spxdatas peux être vu comme un outil qui permet de gérer une sorte de base de données json
où on peut faire des requetes genre select, insert, delete, etc... comme si on avait une base mysql
- un enregistrement de table en json
- un insert coté client (en requete) ou admin (via l'admin du plugin)
- un delete coté client (en requete) ou admin (via l'admin du plugin)
- un update coté client (en requete) ou admin (via l'admin du plugin)
- un select (en requete)
Pour enregistrer en json voici comment faire avec la version 1.56 ou supérieure
[== Indéfini ==]
<table name="auteur" dataformat="json">
Voici un exemple de description de base avec une table qui sera enregistré en json (dataformat) :
[== Indéfini ==]
<?xml version="1.0" encoding="UTF-8"?>
<document>
<table name="link" maxparam="4" groupe="Liens" tableuserlevel="0,1,2,3,4" datauserlevel="0,1,2,3,4" dataformat="json" >
<description><![CDATA[<p>Vos liens.</p>]]></description>
<column>
<parameter name="name" type="cdata" option="textinput/20/30"></parameter>
<parameter name="url" type="cdata" option="textinput/20/30"></parameter>
<parameter name="description" type="cdata" option="textarea/20/5"></parameter>
</column>
</table>
</document>
Select sur la table :
[== Indéfini ==]
<?php
global $plxShow;
$o= array();
$o["table"]="link";
$o["out"]="html";
$o["format"]='<li><a href="#url" title="#description">#name</a></li>';
echo ("<u1>".$plxShow->callHook('spxdatas::getData',$o)."</u1>");
?>
select sur la table avec filtre sur le nom: name
[== Indéfini ==]
<?php
global $plxShow;
$o= array();
$o["table"]="link";
$o["filter"]="name=toto";
$o["out"]="html";
$o["format"]='<li><a href="#liens" title="#description">#nom</a></li>';
echo ("<u1>".$plxShow->callHook('spxdatas::getData',$o)."</u1>");
?>
Select sur la table par l'id avec sortie en tableau php (le filter par id est de la forme : nomtable_id
[== Indéfini ==]
<?php
global $plxShow;
$o= array();
$o["table"]="link";
$o["filter"]="link_id=001";
$o["out"]="array";
print_r($plxShow->callHook('spxdatas::getData',$o)
?>
a noter : pour le select le filter accepte le "and" --> $o["filter"]="actif=1 and category=001";
Update de l'id 001 de la table link
[== Indéfini ==]
<?php
global $plxShow;
$o=array();
$o["table"]="link";
$o["id"]="001";
$o["column"]=array("url");
$o["value"]=array("http://plumxml.org");
$plxShow->callHook ('spxdatas::setData',$o);
?>
Insert dans la table link (on laisse l'id vide)
[== Indéfini ==]
<?php
global $plxShow;
$o=array();
$o["table"]="link";
$o["id"]="";
$o["column"]=array("name","url");
$o["value"]=array("test","http://test.fr");
$plxShow->callHook('spxdatas::setData',$o);
?>
delete d'un id de la table link (ex 001)
[== Indéfini ==]
<?php
global $plxShow;
$o=array();
$o["table"]="link";
$o["id"]="001";
$plxShow->callHook ('spxdatas::delData',$o);
?>
Essaye plutot ça :
[== Indéfini ==]
.container-full {
margin: 0 auto;
width: 100%;
}
Elle est bien Jack ! Comment vas tu depuis tout ce temps ?