Skip to main content Help Control Panel

Login   A+   A-

Community «   Le forum «   Besoin d'aide «  

Les actions (tâches) [Solved]

Mettre les actions de tous les membres sur la page d'acceuil ou sur une page à part
Immediate solution has been provided

Solution Manager: Bernard

Issue description

J'aimerais collecter les différentes tâches des utilisateurs (nous seront sur une seule page afin que chacun sache où en est le travail d'un coup d'oeil et ne doivent cliquer sur chaque profil.

Est-ce réalisable rapidement ou ça demande des compétences que je n'ai pas ?

Merci de votre aide

Nath

Comments

Macnana
avatar
329 posts

on Nov. 12 2007


Pas possible ?
Moi-meme
avatar
from Entre chaise et clavier...
1386 posts

on Nov. 12 2007


Je pense que tu dois créer un objet table qui va aller taper les infos que tu cherches dans la base de données, et les lister.

  • Tu mets un article de couverture disponible en page d'accueil. Tu l'édites et tu descends vers "Créer une table" et tu la crées.
  • Tu lui indiques quelque chose comme  :

SELECT actions FROM yacs_users ORDER BY edit_date

/!\ A faire compléter ou corriger par un Bernard ou un meilleur connaisseur que moi de la structure sql de yacs. Ceci n'est qu'un exemple conceptuel, et non pratique.

  • Ensuite tu colles l'ID de cette table dans le corps de ton article de couverture, et roule...

 

Macnana
avatar
329 posts

inspired from Moi-meme on Nov. 12 2007


Moi-meme : je dois être un peu courge... parce que je ne comprend pas bien
Moi-meme
avatar
from Entre chaise et clavier...
1386 posts

on Nov. 12 2007


Les infos que tu cherche à centraliser (si c'est bien ce que j'ai compris) sont forcément contenues dans la base de données. Actuellement le système yacs ne permet pas facilement (comme fonction dédiée) de faire ce que tu recherches, en revanche tu peux peut-être lister quand même ces informations dans un endroit que tu désires et sous une présentation appropriée.

Pour celà, il existe une fonction pas encore très utilisée par les usagers, parce que ça demande de connaître un peu le langage et la syntaxe mySQL. Tu peux créer une "table", comme tu peux créer une "location". A la suite de sa création elle portera un ID (comme les images, les locations etc) que yacs sait reconnaître, et que tu pourras coller partout où tu le souhaites.

  • Quel est le contenu de cet objet table ? C'est du contenu issu de ta base de donnée. En l'occurrence, si ce contenu que tu souhaites ce sont uniquement les informations "actions pour les membres", et bien en créant ta table tu dois insérer une requête conforme au langage sql qui va aller chercher les données que tu désires dans ta base de données. Chaque fois que tu colleras l'ID de cette table, le système obéira à la rquête qu'elle contient, et affichera les données en question. La question est quelle est la forme de cette requête ? Et bien je donne un exemple ci-dessus, mais ça ne marchera probablement pas. Il faut qu'un as de SQL vienne corriger.
  • Où créer un objet table ? Dans une section par exemple, si tu édites la section, dans la page d'édition tout en bas il y a "créer une table".

-----
Yacs.Info : l'atelier ordinaire des innovations
Macnana
avatar
329 posts

inspired from Moi-meme on Nov. 13 2007


Moi-meme : Il va donc falloir que je me mette aux objets table...

Par contre, petite précision ?

Je travaille pour l'instant sur mon hébergeur personnel en attendant que mon administration accepte le projet (et donc le rappatrie sur un serveur propre), est-ce possible facilement en triffouillant dans les bases msql ?

Moi-meme
avatar
from Entre chaise et clavier...
1386 posts

on Nov. 13 2007


C'est peut-être plus facile encore sur une configuration perso, tu es probablement plus libre que sur une config institutionnelle.

Mais globablement ça ne changera pas grand chose : la structure de la base (et de ses données) est la même où qu'elle se trouve.

Ce n'est pas très dur, il faut juste que tu ais la bonne requête, et ce n'est pas celle que je t'ai donné.

Bernaaaaard je crois qu'on t'appelle ...


-----
Yacs.Info : l'atelier ordinaire des innovations
Macnana
avatar
329 posts

inspired from Moi-meme on Nov. 14 2007


Moi-meme : Bon je sais que tu as dis que ce n'était pas la bonne "formule"

Mais j'ai testé quand même (au moins pour connaitre la procédure à suivre)

1. Modifier l'article page globale "Bienvenue!"

2. Créer une table

3. Donner un titre

4. Dans "Commande SQL" coller ton texte.
 J'ai remplacé le "FROM yacs_users" par "FROM sirh1_users " parceque le préfixe de table est sirh1.

Message d'erreur :

SELECT actions FROM sirh1_users ORDER BY edit_date
1054: Unknown column 'actions' in 'field list'

Erreur dans la requête de la table 2
SELECT actions FROM sirh1_users ORDER BY edit_date
1054: Unknown column 'actions' in 'field list'

Moi-meme
avatar
from Entre chaise et clavier...
1386 posts

on Nov. 14 2007


C'est à partir de là que je ne te suis plus d'aucune aide...

GnapZ étant assez réactif sur ce genre de sujet - mais off pour le moment - je ne vois pas beaucoup d'autre aides complémentaires que celles de Bernard.

Bernard yououou on a une surprise cake

 


-----
yacs-team.png
Une nouvelle rubrique dans la doc !
Yacs.Info : l'atelier ordinaire des innovations
Bernard
avatar
from nearby-an-airport
Associate, 6581 posts

on Nov. 23 2007


J'arrive j'arrive. Un début de réponse :

SELECT title, anchor, create_date as date from yacs_actions order by edit_date DESC limit 0, 50
Macnana
avatar
329 posts

inspired from Bernard on Nov. 24 2007


Bernard :

Voià le résultat 

Image Hosted by ImageShack.us
By macnana
Macnana
avatar
329 posts

inspired from Macnana on Nov. 30 2007


Macnana : up

J'ai les titres des colonnes mais rien dedans.

Macnana
avatar
329 posts

on Dec. 10 2007


Macnana : Bon, j'ai réussi à afficher dans les colonnes.

En fait, c'était mon préfixe qui n'était pas yacs_ mais sirh1_

Un autre problème est apparu, dans anchor, le nom des personne était user:1 par ex.

Du coup, j'ai résolu ça (avec l'aide de ma soeur. rendons à César... ) en liant le anchor avec l'id user dans la table _users.

Si ça peut aider quelqu'un...

SELECT distinct sirh1_actions.title as "Tâches", sirh1_users.nick_name as "Nom", sirh1_actions.create_date as "Date de création" from sirh1_actions inner join sirh1_users on SUBSTRING(sirh1_actions.anchor,6) =sirh1_users.id order by sirh1_actions.edit_date DESC limit 0,50

 Il reste un problème, les tâches terminées ne sont pas "effacées" de la liste.

Merci de votre aide

Nath

Macnana
avatar
329 posts

on Dec. 10 2007


J'ai trouvé un semblant de solution consistant à classer non plus par date mais par statut.

SELECT distinct sirh1_actions.title as "Tâches", sirh1_users.nick_name as "Nom", sirh1_actions.status, sirh1_actions.create_date as "Date de création" from sirh1_actions inner join sirh1_users on SUBSTRING(sirh1_actions.anchor,6) =sirh1_users.id order by sirh1_actions.status ASC limit 0,50

 

Macnana
avatar
329 posts

on Dec. 17 2007


Pour ceux que ça interresse voici les requêtes faites sur les tables actions et users afin de faire apparraître uniquement les actions à faire et rejetées.

SELECT distinct sirh1_actions.title as "Tâches", sirh1_users.nick_name as "Nom",case when sirh1_actions.status = 'o' then 'à faire' when sirh1_actions.status ='r' then 'rejeté' end as "Statut", sirh1_actions.create_date as "Date de création" from sirh1_actions inner join sirh1_users on SUBSTRING(sirh1_actions.anchor,6) =sirh1_users.id where  sirh1_actions.status <> 'c' order by sirh1_actions.status ASC limit 0,50

Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2007 posts

inspired from Macnana on Dec. 23 2007


Macnana : Merci pour ce retour. C'est toujours agréable de voir qu'on peut trouver des solutions relativement simples pour répondre à nos besoins.

Et bonnes fêtes de fin d'année chez toi
Macnana
avatar
329 posts

on Jan. 3


Bon maintenant que je suis arrivée à quelquechose de satisfaisant, j'aimerais savoir s'il y a moyen qu'en cliquant sur la tâche en question dans la table crée par la requête précédement postée, ça ouvre la page  "action" correspondante ?

Merci

 

Nath qui va finir par étudier le mysql

Christian
avatar
from Chonas l'Amballan
Associate, 744 posts

on Jan. 17


Je reviens sur ce sujet ma foi fort intéressant.

Pour répondre au dernier problème je dirais qu'en incorporant directement du html dans la requete SQL on devrait s'en sortir.

Par exemple : select '< a href=/actions/view.php?id='||yacs_actions.id||'>voir action</a> ....

Il existe peut etre (et surement) une solution plus simple ....

Christian
avatar
from Chonas l'Amballan
Associate, 744 posts

on Jan. 17


Je corrige ma requete sql avec une requete mysql car il faut utiliser le concat.
select CONCAT("$ a href=/actions/view.php?id=",yacs_actions.id,"$voir action$/a$"), la suite ....


Remplacer les $ par des inférieurs ou superieurs selon le cas
Macnana
avatar
329 posts

inspired from Christian on Jan. 17


Christian : malheureusement, j'ai pas tout compris

peux-tu détailler ?

 

merci 

Christian
avatar
from Chonas l'Amballan
Associate, 744 posts

on Jan. 17


le but c'est que ton ordre sql te retournes une chaine HTML.
Par exemple, au lieu de selectionner que le nom tu lui concatene la balise strong devant et /strong derriere. Du coup le nom sera en gras.
C'est le but de la fonction concat de mysql

select CONCAT("strong",le_nom,"/strong") from users.

Bernard
avatar
from nearby-an-airport
Associate, 6581 posts

on Jan. 17


La bonne solution est proche de celle proposée par Christian. En fait, il suffit de faire que la requête génère une adresse web dans la première colonne et de laisser YACS créer lui-même la balise de lien. J'ai aussi changé l'ordre à la fin pour faire apparaitre les actions par date de création décroissante (=les plus récentes en premier), comme suit :

SELECT 
CONCAT( "/actions/view.php?id=", yacs_actions.id ) AS id,
yacs_actions.title AS "Tâches",
yacs_users.nick_name AS "Nom",
CASE WHEN yacs_actions.status = 'o'
THEN 'à faire'
WHEN yacs_actions.status = 'r'
THEN 'rejeté'
END AS "Statut",
yacs_actions.create_date AS "Date de création"
FROM yacs_actions
INNER JOIN yacs_users ON SUBSTRING( yacs_actions.anchor, 6 ) = yacs_users.id
WHERE yacs_actions.status <> 'c'
ORDER BY yacs_actions.status ASC, yacs_actions.create_date DESC
LIMIT 0 , 50


La commande fournie çi-dessus est pour le cas général. Dans ton cas particulier, les préfixes de table ne sont pas les mêmes, et il faut copier-coller la chaîne suivante :

SELECT 
CONCAT( "/actions/view.php?id=", sirh1_actions.id ) AS id,
sirh1_actions.title AS "Tâches",
sirh1_users.nick_name AS "Nom",
CASE WHEN sirh1_actions.status = 'o'
THEN 'à faire'
WHEN sirh1_actions.status = 'r'
THEN 'rejeté'
END AS "Statut",
sirh1_actions.create_date AS "Date de création"
FROM sirh1_actions
INNER JOIN sirh1_users ON SUBSTRING( sirh1_actions.anchor, 6 ) = sirh1_users.id
WHERE sirh1_actions.status <> 'c'
ORDER BY sirh1_actions.status ASC, sirh1_actions.create_date DESC
LIMIT 0 , 50


Voilà, si je n'ai pas fait d'erreur de recopie cela devrait aller. Pour avoir le lien dans la table, sous forme de chevron à côté du titre, il faut configurer l'option de zoom dans la table. C'est celle par défaut normalement.
Macnana
avatar
329 posts

on Jan. 18


love ça marche impec'

J'ai juste du changer le chemin, car pour l'instant le Yacs n'est pas à la racine de mon site puisqu'il est en test.

 

Bernard
avatar
from nearby-an-airport
Associate, 6581 posts

on Feb. 7


Merci du retour positif, je ferme le problème.
Moi-meme
avatar
from Entre chaise et clavier...
1386 posts

on June 8


Envoyé à la doc... Exemple d'utilisation du code "table"

(un peu brut de décofrage mais bon, c'est mieux que rien)

-----
yacs-team.png
Plugin Firefox de recherche dans Yetanoz
Nouvelles fonctions suggérées <- centralisation perso

Rate this page
Posted by Macnana on Nov. 6 2007, commented by Moi-meme on June 8, (popular)