Forum CMS Made Simple FR

Version complète : Formulaire et base de donnée
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.9
#~ Url du site :
#~ Hébergeur / Soft : 1&1
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~


Bonjour je me demandais si l'on pouvait injecter les résultats d'un formulaire(formbuilder) dans une bdd deja existante ?
quel est le moyen le plus logique pour y parvenir?

Merci , :p
Salut,

Si la DB existe déjà, alors tu peux soit utiliser formbuilder + une balise utilisateur appelée à la sauvegarde, ce qui me semble le plus rapide à mettre en oeuvre, soit tu codes un module toi-même.

Sinon avec FormBuilder, si y avait pas de DB je t'aurais conseillé de coupler cela avec une liste de ListIt2 pour lequel un couplage est possible depuis la version 0.7.4 de FormBuilder.

Tiens nous au courant de ta méthode ca peut toujours intéresser du monde...
après réflection je pense utiliser ListIt2 merci pour ta réponse. Je vous tiens au courrant
bonjour,

J'ai un soucis, je souhaite afficher seulement un article suivant un alias que j'ai volontairement ajouté en correspondance avec l'id d'une images du module gallery.

Code :
{$image->fileid assign=imgid}
{ListIt2Prix action="detail" item=$imgid }

Et il m'affiche rien!
J'ai activé le mode débug de ListIt2 et voilà ce qu'il me renvoi:
Citation :ListIt2Item Object
(
[item_id] => 253
[alias] =>
[title] =>
[position] => -1
[active] => 1
[create_time] =>
[modified_time] =>
[start_time] =>
[end_time] =>
[owner] =>
[key1] =>
[key2] =>
[key3] =>
[fielddefs] => ListIt2FielddefArray Object
(
[_parent_item:ListIt2FielddefArray:private] => ListIt2Item Object
*RECURSION*
[storage:ArrayObject:private] => Array
(
[3] => listit2fd_TextInput Object
(
[id:ListIt2FielddefBase:private] => 3
[name:ListIt2FielddefBase:private] => prix
[alias:ListIt2FielddefBase:private] => prix
[description:ListIt2FielddefBase:private] =>
[type:ListIt2FielddefBase:private] => TextInput
[friendlytype:ListIt2FielddefBase:private] => Text Input
[value:ListIt2FielddefBase:private] => ListIt2FielddefValue Object
(
[storage:ArrayObject:private] => Array
(
)

)

[originator:ListIt2FielddefBase:private] => ListIt2
[active:ListIt2FielddefBase:private] => 1
[disabled:ListIt2FielddefBase:private] =>
[path:ListIt2FielddefBase:private] => /homepages/14/d434117253/htdocs/skins2lol/modules/ListIt2/lib/fielddefs/TextInput
[position:ListIt2FielddefBase:private] => 1
[required:ListIt2FielddefBase:private] => 0
[options:ListIt2FielddefBase:private] => Array
(
[max_lenght] => 255
[size] => 20
)

[caller:ListIt2FielddefBase:private] =>
[item_id:ListIt2FielddefBase:private] => -1
[parent_array:ListIt2FielddefBase:private] => ListIt2FielddefArray Object
*RECURSION*
[event_handler:protected] =>
)

)

)

)
1

Pourtant j'avais cru comprendre que le paramètre item="" de list2 appelais l'objet par l'alias et la il est vide.
Salut,

En principe tu dois ouvrir un nouveau fil de discussion pour cet autre problème...

Tu es certain que l'ID que tu passes est le bon ?
Ah oui désolé je vais le faire! bein le soucis c'est que dans la documentation de List2 il dise que item="alias" or la je vois qu'il me le renvoi entant qu'id ?
Citation :ListIt2Item Object
(
[item_id] => 253
[alias] =>
essaie de mettre item='un_alias_existant_voir_le_champs_alias_de_listit2' (en dur pour tester)

plutot qu'un id
Oui je l'ai fait 253 étant un alias! mais dans le debug je vois l'alias vide mais l'id qui prend le paramétre 253 ! [Image: CaptureAlias_zpsd94de10c.png]
Ah bon... alors je vois pas...
Je viens d'aller voir dans ma base de donnée l'id de l'alias "253" c'est 4 j'ai donc remplacer item="253" par item="4" cela fonctionne.

Donc il n'y a aucun moyen d'appeler l'objet par son alias? pourtant la documentation dit :
(optional) item="alias" - This parameter is only applicable to the detail view. It allows specifying which item to display in detail mode. Must be an item alias.
Et si tu essayais avec des alias non numériques ? Il y a peut-être une restriction de nommage comme dans la plupart des langages.
c'est peut être sa je vais faire un essai juste pour l'info! Sinon pour mon problème de base du post j'ai finalement opter pour un udt!
Jean le Chauve a écrit :Et si tu essayais avec des alias non numériques ? Il y a peut-être une restriction de nommage comme dans la plupart des langages.
Je viens de faire un test avec un alias non numérique et en effet c'etait le soucis "bon à savoir" merci.
En ce qui concerne l'udt. J'ai eut un soucis avec la connection sql de CMSMS j'ai du rentrer les codes à la main!

CMSMS ne prend pas en charge le PDO?

Code :
[== PHP ==]
$id=$params['id'];
$prix=$params['prix'];
$fid='2';
$retour=$_SERVER['HTTP_REFERER'];

$db = new PDO('mysql:host=*****;dbname=*****', '*****', '******');
$req = $db->prepare('INSERT INTO '.cms_db_prefix().'module****(fileid, fieldid, value) VALUES(:id, :fid, :prix)');

$req->execute(array(
'id' =>$id,
'fid' =>$fid,
'prix' =>$prix
));

header('Location: '.$retour.'');
Euuuuuh doucement là... pour avoir la connexion db, tu fais $db = cmsms()->getDb() (ou un truc du genre) puis tu utilises adodb et surtout l'API cmsms... voir la doc en ligne. Ou voir simplement dans un module comment faire.

Et pour ce qui est de l'alias numérique, il n'est pas impossible que dans le code de listit2, il y ait un test qui considère un alias numérique comme un ID si c'est de l'integer. Dans ce cas ce n'est pas une erreur mais 2 cas d'usage... A voir dans la doc du module ou dans le code directement.
Citation :adodb
adodb_lite :p
Oui oui certes Wink.

Par contre lapko j'espère que tu fais un insert dans une table d'un de tes propres modules... au vu de ta requête j'ai un doute...
heriquet a écrit :Oui oui certes Wink.

Par contre lapko j'espère que tu fais un insert dans une table d'un de tes propres modules... au vu de ta requête j'ai un doute...

Bein pour le coup tu as à moitié raison! dans le sens ou oui c'est un formulaire en ligne ! mais c'est provisoire c'est juste pour qu'une personne rentre des infos dans la base de donnée. Le site étant en maintenance et le formulaire sera supprimé à l'ouverture du site grand public! ^^

sinon c'est lakpo pas lapko ! Wink (polak inversé)

pour le : $db = cmsms()->getDb()
c'est bien ce que j'ai voulu utilisé à la base mais je n'ais pas tout compris donc pour des raisons de rapidité j'ai rentré la connexion en dur
Si c'est provisoire, pourquoi ne demandes-tu pas un fichier Excel avec les données à encoder que tu importes ensuite d'un coup avec phpmyadmin ?
parce que pour la personne c'est plus compliquer de retrouver l'identifiant à chaque fois! plutot que de voir l'image et d'entrée l'info correspondante!
Ah ok de fait s'il y a des données liées...

Par contre dans ton cas j'aurais pas chipoté, j'aurais fait un petit module perso avec un formulaire tout simple (Gallery fournit des méthodes pour lister les galeries) et une/des table(s) dans la DB...

Ca aurait été plus rapide que d'essayer de bricoler avec les modules existants mais encore faut-il savoir comment faire un module perso tout simple. Avec les questions que tu as posées, je me risquerais à dire que c'est à ta portée. Et c'est franchement bien pratique de savoir coder ses modules perso crois moi Smile.
pour le coup j'avoue que j'ai mal réfléchi à ma méthode de travail du départ du coup une fois la moitié du travail fait je ne voulais pas reprendre tout! je pense que j'aurais pu le faire aussi entièrement avec List2.
Enfaite à la base je devais juste faire des gallery(117) avec en moyenne 5 photos par gallery! Donc je suis partie sur le module gallery ensuite j'ai du rajouter deux informations supplémentaires pour les images! J'ai donc rajouté des champs personnalisé pour ces deux infos mais pour la personne c'est assez contraignants de devoir a chaque fois cliquer sur chaque images pour rentrer l'info de ces champs!
Certes...

Mais listit2 est pratique pour des petites quantités de données. Des petites listes, sans plus. (avis perso)

Avec un module perso, tu fais réellement ce que tu veux. Franchement si tu connais un peu PHP, et que tu es parvenu(e?) à coder ton UDT, tu ne perdrais pas le peu de temps investi dans un peu de formation à ce sujet. En quelques lignes de code on peut gérer les accès DB (merci le module Orm, et en quelques autres lignes tu peux gérer les templates de ton module -merci CGExtensions).

Et les interactions avec les autres modules sont tout à fait possible : je viens de terminer 2 modules qui utilisent les 2 modules cités et sont couplés avec FrontEndUsers : un calendrier et un module de news qui ont des données bien spécifiques et qui doivent être filtrées suivant le profil utilisateur connecté... un jeu d'enfant avec CMSMS !
Oui tu as entièrement raison il faudrait que je m'y penche! après il faut que je me remette à la programmation (obj j'imagine) parce qu'a la base je ne suis que graphiste ^^ !
Pages : 1 2