- Statut : non résolu
- Ce sujet contient 49 réponses, 4 participants et a été mis à jour pour la dernière fois par
steph2dijon, le il y a 18 années et 11 mois.
-
AuteurMessages
-
29 juin 2006 à 18 h 16 min #576223
Désolé de n’avoir pu poster plus tôt mais mon frère faisait un pestacle avec son école 😉
Voilà où j’en suis pour le moment : capture 😎
29 juin 2006 à 20 h 11 min #576224MS-DOS_1991 wrote:Désolé de n’avoir pu poster plus tôt mais mon frère faisait un pestacle avec son école 😉Voilà où j’en suis pour le moment : capture 😎
Woooo !!! Attends, tu veux dire qu’il y a déjà la BDD et tout et tout ?
Sinon, un truc, la recherche n’est pas obligatoire dans l’interface du plugin, elle le sera surtout dans la sidebar en fait …
Mais bon c’est super
29 juin 2006 à 20 h 14 min #576225steph2dijon wrote:MS-DOS_1991 wrote:Désolé de n’avoir pu poster plus tôt mais mon frère faisait un pestacle avec son école 😉Voilà où j’en suis pour le moment : capture 😎
Woooo !!! Attends, tu veux dire qu’il y a déjà la BDD et tout et tout ?
Sinon, un truc, la recherche n’est pas obligatoire dans l’interface du plugin, elle le sera surtout dans la sidebar en fait …
Mais bon c’est super
Ah oui, un autre truc, les infos de copyright peuvent tenir sur plusieurs lignes …
Pour les auteurs, je sais pas si c’est possible, mais un truc qui serait sympa pour le multi-auteurs, c’est prendre un auteur dans la liste déroulante, cliquer sur un bouton à côté et ça l’ajoute à une liste à côté. Comme ça, on peut en mettre plusieurs. Tu vois ce que je veux dire ? Enfin je sais pas si c’est possible.
30 juin 2006 à 7 h 45 min #576226steph2dijon wrote:Woooo !!! Attends, tu veux dire qu’il y a déjà la BDD et tout et tout ?Sinon, un truc, la recherche n’est pas obligatoire dans l’interface du plugin, elle le sera surtout dans la sidebar en fait …
Voui, il y a déjà la BDD et tout et tout !! 😎
Pour la recherche dans l’interface d’admin, c’est aussi simple que dans la sidebar vu que ce sera une seule et même fonction donc autant faire « classe » et le mettre dans l’admin 😉
steph2dijon wrote:Ah oui, un autre truc, les infos de copyright peuvent tenir sur plusieurs lignes …Pour les auteurs, je sais pas si c’est possible, mais un truc qui serait sympa pour le multi-auteurs, c’est prendre un auteur dans la liste déroulante, cliquer sur un bouton à côté et ça l’ajoute à une liste à côté. Comme ça, on peut en mettre plusieurs. Tu vois ce que je veux dire ? Enfin je sais pas si c’est possible.
Pour le copyright, pas de problème : je vais juste devoir transformer mon VARCHAR (255) en TEXT 😉
Pour les auteurs, c’est exactement ce à quoi j’ai pensé hier soir avant de m’endormir
JavaScript (DOM) powered 😉30 juin 2006 à 7 h 57 min #576227MS-DOS_1991 wrote:Pour le copyright, pas de problème : je vais juste devoir transformer mon VARCHAR (255) en TEXT 😉Pour les auteurs, c’est exactement ce à quoi j’ai pensé hier soir avant de m’endormir
JavaScript (DOM) powered 😉Waaah ! T’es génial, je te remercie vraiment, t’es en train de me filer un super-méga-coup-de-main ! Par contre, j’analyserai bien le code du plug-in, je pourrai certainement apprendre des choses.
Bon, en tout cas, la capture d’écran donne trop envie de l’essayer lol 😋
Si j’arrive à comprendre et à apprendre, j’y rajouterai un truc en plus, pour les guitaristes, pianistes, … Mais ça c’est assez compliqué, et pas réalisable facilement.
30 juin 2006 à 12 h 42 min #576228Salut à tous 🙂
Voilà où j’en suis à présent 😎
query(« CREATE TABLE IF NOT EXISTS `sm_songs`
(
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` VARCHAR( 255 ) NOT NULL ,
`original_title` VARCHAR( 255 ) NOT NULL ,
`authors` VARCHAR( 255 ) NOT NULL ,
`interprets` VARCHAR( 255 ) NOT NULL ,
`lyrics` TEXT NOT NULL ,
`copyright` TEXT NOT NULL ,
`ccli` INT ( 10 ) NOT NULL ,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = InnoDB COMMENT = ‘SongManager > Songs’
« );
/** Creating SQL table sm_authors **/
$wpdb->query(« CREATE TABLE IF NOT EXISTS `sm_authors`
(
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR( 50 ) NOT NULL,
`first_name` VARCHAR( 50 ) NOT NULL
) ENGINE = InnoDB COMMENT = ‘SongManager > Authors’
« );
/** Creating SQL table sm_interprets **/
$wpdb->query(« CREATE TABLE IF NOT EXISTS `sm_interprets`
(
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR( 50 ) NOT NULL,
`first_name` VARCHAR( 50 ) NOT NULL
) ENGINE = InnoDB COMMENT = ‘SongManager > Interprets’
« );
update_option(‘is_installed_songmanager’, 1);
}
/** Creates option page in the DashBoard (Options > Song manager) **/
function init_plugin()
{
add_options_page(‘Song Manager’, ‘Song Manager’, 1,
basename(__FILE__), array($this, ‘sm_options_subpanel’));
}
/** Displays submenu page in the DashBoard **/
function sm_options_subpanel()
{
global $wpdb;
if (isset($_GET[‘search’]))
{
if ($_GET[‘search’] == ‘title’)
$this->searchLyricsFromTitle(trim(htmlentities($_GET[‘title’])));
elseif ($_GET[‘search’] == ‘original_title’)
$this->searchLyricsFromOriginalTitle(trim(htmlentities($_GET[‘original_title’])));
elseif ($_GET[‘search’] == ‘author’)
$this->searchLyricsByAuthor(trim(htmlentities($_GET[‘author’])));
elseif ($_GET[‘search’] == ‘interprete’)
$this->searchLyricsByInterprete(trim(htmlentities($_GET[‘interprete’])));
elseif ($_GET[‘search’] == ‘ccli’)
$this->searchLyricsFromCCLI(trim($_GET[‘ccli’]));
else
die(‘Erreur inconnue.’);
}
elseif (isset($_GET[‘add’]))
{
if ($_GET[‘add’] == ‘song’)
{
foreach ($_POST AS $key => $value)
$$key = trim(htmlentities($value));
$wpdb->query(« INSERT INTO sm_songs (title, original_title,
authors, interpretes,
lyrics, copyright, ccli)
VALUES (‘$title’, ‘$original_title’,
‘$authors’, ‘$interpretes’,
‘$lyrics’, ‘$copyright’, ‘$ccli’)
« );
echo ‘alert(‘Ajout Effectué !’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
elseif ($_GET[‘add’] == ‘author’)
{
if (isset($_POST[‘first_name’]) && isset($_POST[‘surname’]))
{
$this->addAuthor($_POST[‘first_name’], $_POST[‘surname’]);
echo ‘alert(‘Ajout Effectué !’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
else
die(‘Erreur: Veuillez remplir tous les champs.’);
}
elseif ($_GET[‘add’] == ‘interpret’)
{
if (isset($_POST[‘first_name’]) && isset($_POST[‘surname’]))
{
$this->addInterpret($_POST[‘first_name’], $_POST[‘surname’]);
echo ‘alert(‘Ajout Effectué !’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
else
die(‘Erreur: Veuillez remplir tous les champs.’);
}
}
elseif (isset($_GET[‘del’]))
{
if ($_GET[‘del’] == ‘author’)
{
if (isset($_POST[‘author’]))
{
$this->deleteAuthor($_POST[‘author’]);
echo ‘alert(‘Suppression Effectuée.’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
else
die(‘Erreur: Veuillez sélectionner un auteur à supprimer’);
}
elseif ($_GET[‘del’] == ‘interpret’)
{
if (isset($_POST[‘interpret’]))
{
$this->deleteInterpret($_POST[‘interpret’]);
echo ‘alert(‘Suppression Effectuée.’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
else
die(‘Erreur: Veuillez sélectionner un auteur à supprimer’);
}
}
else
{
?>
function addAuthor()
{
authors_nb = document.getElementById(‘addsong_authors_nb’).value;
authors_nb++;
if (authors_nb > document.getElementById(‘addsong_author_1’).options.length)
alert(‘Tous les auteurs ont été utilisés.’);
else
{
newSpan = document.createElement(‘span’);
newSelect = document.getElementById(‘addsong_author_1’).cloneNode(true);
newSelect.setAttribute(‘id’, ‘addsong_author_’+authors_nb);
newSpan.appendChild(newSelect);
document.getElementById(‘addsong_p_authors’).appendChild(newSpan);
document.getElementById(‘addsong_authors_nb’).value++;
}
}
function updateAuthors(id)
{
// AAAAAAAAAAAAAAAAAAAAAAAARGHHH
}
function delAuthor()
{
authors_nb = document.getElementById(‘addsong_authors_nb’).value;
if (authors_nb == 1)
alert(‘Impossible de supprimer le dernier auteur !’);
else
{
lastauthor = document.getElementById(‘addsong_p_authors’).lastChild;
while (lastauthor.firstChild)
lastauthor.removeChild(lastauthor.firstChild);
document.getElementById(‘addsong_p_authors’).removeChild(lastauthor);
document.getElementById(‘addsong_authors_nb’).value–;
}
}
<div class="wrap">
<h2>Song Manager v1.0</h2>
<h3>Rechercher des paroles de chansons</h3>
<form action="&search=title » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label> Rechercher par titre : </label>
</p>
</form>
<form action="&search=original_title » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label>Rechercher par titre original : </label>
</p>
</form>
<form action="&search=author » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label> Rechercher par auteur : </label>
</p>
</form>
<form action="&search=interprete » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label> Rechercher par interprète : </label>
</p>
</form>
<form action="&search=ccli » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label> Trouver à partir du <acronym title="Christian Copyright Licensing International">CCLI</acronym> : </label>
</p>
</form>
<h3>Dernières paroles de chanson</h3>
getLastLyrics(); ?>
<h3>Ajouter une chanson</h3>
<form action="&add=song » method= »post » style= »font-family: ‘Courier New’; »>
<p>
</p>
<p><label>Titre de la chanson : </label></p>
<p><label> Titre original : </label></p>
<p id="addsong_p_authors">
Auteur(s) :
get_results(« SELECT id, surname, first_name
FROM sm_authors
ORDER BY surname ASC
« );
foreach ($sql_authors AS $author)
echo ‘id,' »>’,$author->first_name,’ ‘,$author->surname, »;
?>
</p>
<p>
<span id="addsong_span_addauthor"></span>
<span id="addsong_span_delauthor"></span>
</p>
<p><label>Paroles (et/ou accords) :<br /><textarea name="addsong_lyrics" style="width: 85%;height: 400px"></textarea></label></p>
<p><label>Copyright : </label></p>
<p><label> CCLI : </label></p>
<p>
</form>
<h3>Nouvel Auteur</h3>
<form action="&add=author » method= »post » style= »font-family: ‘Courier New’; »>
<p><label>Prénom : </label></p>
<p><label> Nom : </label>
<p></p>
</form>
<h3>Supprimer un Auteur</h3>
<form action="&del=author » method= »post » style= »font-family: ‘Courier New’; »>
<p>
get_results(« SELECT id, surname, first_name
FROM sm_authors
ORDER BY surname ASC
« );
if ($sql_authors)
{
?>
<?php
foreach ($sql_authors AS $author)
echo 'id,' »>’,$author->first_name,’ ‘,$author->surname, »;
?>
</p>
</form>
<h3>Nouvel Interprète</h3>
<form action="&add=interpret » method= »post » style= »font-family: ‘Courier New’; »>
<p><label>Prénom : </label></p>
<p><label> Nom : </label>
<p></p>
</form>
<h3>Supprimer un Interprète</h3>
<form action="&del=interpret » method= »post » style= »font-family: ‘Courier New’; »>
<p>
get_results(« SELECT id, surname, first_name
FROM sm_interprets
ORDER BY surname ASC
« );
if ($sql_interprets)
{
?>
<?php
foreach ($sql_interprets AS $interpret)
echo 'id,' »>’,$interpret->first_name,’ ‘,$interpret->surname, »;
?>
</p>
</form>
</div>
get_results(« SELECT id, title, original_title, date, authors
FROM sm_songs
ORDER BY date DESC
LIMIT 0, $nb_to_show
« );
if ($sql_res)
{
?>
<ul>
get_results(« SELECT id, surname, first_name
FROM sm_authors
WHERE id IN ($song->authors)
ORDER BY surname ASC
« );
$authors = »;
foreach ($sql_authors AS $author)
$authors .= ‘<a>id.' »>’.$author->first_name.’ ‘.$author->name.’</a>‘.’, ‘;
?>
<li>
<strong><a href="&show_lyrics=id; ?> »>title; ?></a></strong> (original_title; ?>)<br />
Par (paroles soumises le date; ?>)
</li>
</ul>
<?php
}
else
echo '<p>Aucune chanson dans la Base de Données.</p>‘;
}
function addAuthor($first_name, $name)
{
global $wpdb;
$first_name = trim(htmlentities($_POST[‘first_name’]));
$name = trim(htmlentities($_POST[‘surname’]));
$wpdb->query(« INSERT INTO sm_authors (surname, first_name)
VALUES (‘$name’, ‘$first_name’)
« );
}
function addInterpret($first_name, $name)
{
global $wpdb;
$first_name = trim(htmlentities($_POST[‘first_name’]));
$name = trim(htmlentities($_POST[‘surname’]));
$wpdb->query(« INSERT INTO sm_interprets (surname, first_name)
VALUES (‘$name’, ‘$first_name’)
« );
}
function deleteAuthor($id)
{
global $wpdb;
if (is_numeric($id))
$wpdb->query(« DELETE FROM sm_authors
WHERE id = $id
« );
else
die(‘Erreur : Valeur incorrecte. Chiffres seulement’);
}
function deleteInterpret($id)
{
global $wpdb;
if (is_numeric($id))
$wpdb->query(« DELETE FROM sm_interprets
WHERE id = $id
« );
else
die(‘Erreur : Valeur incorrecte. Chiffres seulement’);
}
}
$SongManager = new SongManager;
add_action(‘admin_menu’, array(&$SongManager, ‘init_plugin’));
?>Mais bon c’est assez rébarbatif comme truc alors si quelqu’un voulais me coder quelques fonctions, je ne dis pas non ^^
Edit: Si vous voulez tester, il vous suffit d’installer WordPress en local (avec Wamp par exemple) et de placer le fichier songmanager.php dans le répertoire /wp-content/plugins/ 😉
30 juin 2006 à 12 h 54 min #576229MS-DOS_1991 wrote:Salut à tous 🙂Mais bon c’est assez rébarbatif comme truc alors si quelqu’un voulais me coder quelques fonctions, je ne dis pas non ^^
Edit: Si vous voulez tester, il vous suffit d’installer WordPress en local (avec Wamp par exemple) et de placer le fichier songmanager.php dans le répertoire /wp-content/plugins/ 😉
Que reste t-il à faire précisément ?
30 juin 2006 à 12 h 58 min #576230Beh en fait, ça a l’air d’être super avancé !!!
Il ne reste plus tant de choses que ça à faire, non ? T’as bossé comme un dingue 🙂
30 juin 2006 à 13 h 02 min #576231Alors comme tu peux le voir, les fonctions de recherche ne sont pas encore implémentées.
C’est tout con, il suffit d’une requête SQL qui ne change presque pas dans chaque cas, mais c’est « long » à coder 😕
Si ça te tentes, tu peux faire ça :
1. Ajouter des fonctions dans la classe (les noms sont en haut dans mes appels)
2. faire une requête de sélection selon le critère choisi par l’utilisateur :
$wpdb->get_results(« SELECT le_plus_de_trucs_possibles FROM sm_table WHERE critère LIKE ‘%$variable_postee%' »);
3. Faire un test pour savoir si on a des résultats
4. Afficher les résultats sous forme de liste avec des liens30 juin 2006 à 13 h 09 min #576232MS-DOS_1991 wrote:Alors comme tu peux le voir, les fonctions de recherche ne sont pas encore implémentées.C’est tout con, il suffit d’une requête SQL qui ne change presque pas dans chaque cas, mais c’est long à coder 😕
Ok, des requêtes SQL, donc ça, ça va encore …
Sinon, je regardais là, je l’ai installé sur un site. J’ai donc activé le plug-in.
Ensuite j’ai été dans sa page pour le tester. En dessous de Supprimer un Auteur j’ai :
WordPress database error: [Unknown column ‘surname’ in ‘field list’]
SELECT id, surname, first_name FROM sm_authors ORDER BY surname ASCet pareil sous « supprimer un interprète.
J’ai essayé de créer un auteur et j’obtiens ce message :
J’ai la fenêtre ‘Ajout effectué’ qui apparait mais le message d’erreur suivant également :
« WordPress database error : [unknown column ‘surname’ in ‘field list’]
J’ai l’impression que les tables ne se sont pas créés
30 juin 2006 à 13 h 11 min #576233MS-DOS_1991 wrote:Alors comme tu peux le voir, les fonctions de recherche ne sont pas encore implémentées.C’est tout con, il suffit d’une requête SQL qui ne change presque pas dans chaque cas, mais c’est « long » à coder 😕
Si ça te tentes, tu peux faire ça :
1. Ajouter des fonctions dans la classe (les noms sont en haut dans mes appels)
2. faire une requête de sélection selon le critère choisi par l’utilisateur :
$wpdb->get_results(« SELECT le_plus_de_trucs_possibles FROM sm_table WHERE critère LIKE ‘%$variable_postee%' »);
3. Faire un test pour savoir si on a des résultats
4. Afficher les résultats sous forme de liste avec des liensOk, je veux bien tester 🙂 Tu reliras par contre 😉
30 juin 2006 à 13 h 12 min #576234Ah je sais
C’est un bug que j’ai fixé tout à l’heure quand j’ai changé le nom de certains champs 😕
query(« CREATE TABLE IF NOT EXISTS `sm_songs`
(
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` VARCHAR( 255 ) NOT NULL ,
`original_title` VARCHAR( 255 ) NOT NULL ,
`authors` VARCHAR( 255 ) NOT NULL ,
`interprets` VARCHAR( 255 ) NOT NULL ,
`lyrics` TEXT NOT NULL ,
`copyright` TEXT NOT NULL ,
`ccli` INT ( 10 ) NOT NULL ,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = InnoDB COMMENT = ‘SongManager > Songs’
« );
/** Creating SQL table sm_authors **/
$wpdb->query(« CREATE TABLE IF NOT EXISTS `sm_authors`
(
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`surname` VARCHAR( 50 ) NOT NULL,
`first_name` VARCHAR( 50 ) NOT NULL
) ENGINE = InnoDB COMMENT = ‘SongManager > Authors’
« );
/** Creating SQL table sm_interprets **/
$wpdb->query(« CREATE TABLE IF NOT EXISTS `sm_interprets`
(
`id` INT ( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`surname` VARCHAR( 50 ) NOT NULL,
`first_name` VARCHAR( 50 ) NOT NULL
) ENGINE = InnoDB COMMENT = ‘SongManager > Interprets’
« );
update_option(‘is_installed_songmanager’, 1);
}
/** Creates option page in the DashBoard (Options > Song manager) **/
function init_plugin()
{
add_options_page(‘Song Manager’, ‘Song Manager’, 1,
basename(__FILE__), array($this, ‘sm_options_subpanel’));
}
/** Displays submenu page in the DashBoard **/
function sm_options_subpanel()
{
global $wpdb;
if (isset($_GET[‘search’]))
{
if ($_GET[‘search’] == ‘title’)
$this->searchLyricsFromTitle(trim(htmlentities($_GET[‘title’])));
elseif ($_GET[‘search’] == ‘original_title’)
$this->searchLyricsFromOriginalTitle(trim(htmlentities($_GET[‘original_title’])));
elseif ($_GET[‘search’] == ‘author’)
$this->searchLyricsByAuthor(trim(htmlentities($_GET[‘author’])));
elseif ($_GET[‘search’] == ‘interprete’)
$this->searchLyricsByInterprete(trim(htmlentities($_GET[‘interprete’])));
elseif ($_GET[‘search’] == ‘ccli’)
$this->searchLyricsFromCCLI(trim($_GET[‘ccli’]));
else
die(‘Erreur inconnue.’);
}
elseif (isset($_GET[‘add’]))
{
if ($_GET[‘add’] == ‘song’)
{
foreach ($_POST AS $key => $value)
$$key = trim(htmlentities($value));
$wpdb->query(« INSERT INTO sm_songs (title, original_title,
authors, interpretes,
lyrics, copyright, ccli)
VALUES (‘$title’, ‘$original_title’,
‘$authors’, ‘$interpretes’,
‘$lyrics’, ‘$copyright’, ‘$ccli’)
« );
echo ‘alert(‘Ajout Effectué !’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
elseif ($_GET[‘add’] == ‘author’)
{
if (isset($_POST[‘first_name’]) && isset($_POST[‘surname’]))
{
$this->addAuthor($_POST[‘first_name’], $_POST[‘surname’]);
echo ‘alert(‘Ajout Effectué !’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
else
die(‘Erreur: Veuillez remplir tous les champs.’);
}
elseif ($_GET[‘add’] == ‘interpret’)
{
if (isset($_POST[‘first_name’]) && isset($_POST[‘surname’]))
{
$this->addInterpret($_POST[‘first_name’], $_POST[‘surname’]);
echo ‘alert(‘Ajout Effectué !’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
else
die(‘Erreur: Veuillez remplir tous les champs.’);
}
}
elseif (isset($_GET[‘del’]))
{
if ($_GET[‘del’] == ‘author’)
{
if (isset($_POST[‘author’]))
{
$this->deleteAuthor($_POST[‘author’]);
echo ‘alert(‘Suppression Effectuée.’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
else
die(‘Erreur: Veuillez sélectionner un auteur à supprimer’);
}
elseif ($_GET[‘del’] == ‘interpret’)
{
if (isset($_POST[‘interpret’]))
{
$this->deleteInterpret($_POST[‘interpret’]);
echo ‘alert(‘Suppression Effectuée.’);window.location = »,$_SERVER[‘PHP_SELF’],’?page=songmanager.php’;’;
}
else
die(‘Erreur: Veuillez sélectionner un auteur à supprimer’);
}
}
else
{
?>
function addAuthor()
{
authors_nb = document.getElementById(‘addsong_authors_nb’).value;
authors_nb++;
if (authors_nb > document.getElementById(‘addsong_author_1’).options.length)
alert(‘Tous les auteurs ont été utilisés.’);
else
{
newSpan = document.createElement(‘span’);
newSelect = document.getElementById(‘addsong_author_1’).cloneNode(true);
newSelect.setAttribute(‘id’, ‘addsong_author_’+authors_nb);
newSpan.appendChild(newSelect);
document.getElementById(‘addsong_p_authors’).appendChild(newSpan);
document.getElementById(‘addsong_authors_nb’).value++;
}
}
function updateAuthors(id)
{
// AAAAAAAAAAAAAAAAAAAAAAAARGHHH
}
function delAuthor()
{
authors_nb = document.getElementById(‘addsong_authors_nb’).value;
if (authors_nb == 1)
alert(‘Impossible de supprimer le dernier auteur !’);
else
{
lastauthor = document.getElementById(‘addsong_p_authors’).lastChild;
while (lastauthor.firstChild)
lastauthor.removeChild(lastauthor.firstChild);
document.getElementById(‘addsong_p_authors’).removeChild(lastauthor);
document.getElementById(‘addsong_authors_nb’).value–;
}
}
<div class="wrap">
<h2>Song Manager v1.0</h2>
<h3>Rechercher des paroles de chansons</h3>
<form action="&search=title » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label> Rechercher par titre : </label>
</p>
</form>
<form action="&search=original_title » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label>Rechercher par titre original : </label>
</p>
</form>
<form action="&search=author » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label> Rechercher par auteur : </label>
</p>
</form>
<form action="&search=interprete » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label> Rechercher par interprète : </label>
</p>
</form>
<form action="&search=ccli » method= »post » style= »font-family: ‘Courier New’; »>
<p>
<label> Trouver à partir du <acronym title="Christian Copyright Licensing International">CCLI</acronym> : </label>
</p>
</form>
<h3>Dernières paroles de chanson</h3>
getLastLyrics(); ?>
<h3>Ajouter une chanson</h3>
<form action="&add=song » method= »post » style= »font-family: ‘Courier New’; »>
<p>
</p>
<p><label>Titre de la chanson : </label></p>
<p><label> Titre original : </label></p>
<p id="addsong_p_authors">
Auteur(s) :
get_results(« SELECT id, surname, first_name
FROM sm_authors
ORDER BY surname ASC
« );
foreach ($sql_authors AS $author)
echo ‘id,' »>’,$author->first_name,’ ‘,$author->surname, »;
?>
</p>
<p>
<span id="addsong_span_addauthor"></span>
<span id="addsong_span_delauthor"></span>
</p>
<p><label>Paroles (et/ou accords) :<br /><textarea name="addsong_lyrics" style="width: 85%;height: 400px"></textarea></label></p>
<p><label>Copyright : </label></p>
<p><label> CCLI : </label></p>
<p>
</form>
<h3>Nouvel Auteur</h3>
<form action="&add=author » method= »post » style= »font-family: ‘Courier New’; »>
<p><label>Prénom : </label></p>
<p><label> Nom : </label>
<p></p>
</form>
<h3>Supprimer un Auteur</h3>
<form action="&del=author » method= »post » style= »font-family: ‘Courier New’; »>
<p>
get_results(« SELECT id, surname, first_name
FROM sm_authors
ORDER BY surname ASC
« );
if ($sql_authors)
{
?>
<?php
foreach ($sql_authors AS $author)
echo 'id,' »>’,$author->first_name,’ ‘,$author->surname, »;
?>
</p>
</form>
<h3>Nouvel Interprète</h3>
<form action="&add=interpret » method= »post » style= »font-family: ‘Courier New’; »>
<p><label>Prénom : </label></p>
<p><label> Nom : </label>
<p></p>
</form>
<h3>Supprimer un Interprète</h3>
<form action="&del=interpret » method= »post » style= »font-family: ‘Courier New’; »>
<p>
get_results(« SELECT id, surname, first_name
FROM sm_interprets
ORDER BY surname ASC
« );
if ($sql_interprets)
{
?>
<?php
foreach ($sql_interprets AS $interpret)
echo 'id,' »>’,$interpret->first_name,’ ‘,$interpret->surname, »;
?>
</p>
</form>
</div>
get_results(« SELECT id, title, original_title, date, authors
FROM sm_songs
ORDER BY date DESC
LIMIT 0, $nb_to_show
« );
if ($sql_res)
{
?>
<ul>
get_results(« SELECT id, surname, first_name
FROM sm_authors
WHERE id IN ($song->authors)
ORDER BY surname ASC
« );
$authors = »;
foreach ($sql_authors AS $author)
$authors .= ‘<a>id.' »>’.$author->first_name.’ ‘.$author->name.’</a>‘.’, ‘;
?>
<li>
<strong><a href="&show_lyrics=id; ?> »>title; ?></a></strong> (original_title; ?>)<br />
Par (paroles soumises le date; ?>)
</li>
</ul>
<?php
}
else
echo '<p>Aucune chanson dans la Base de Données.</p>‘;
}
function addAuthor($first_name, $name)
{
global $wpdb;
$first_name = trim(htmlentities($_POST[‘first_name’]));
$name = trim(htmlentities($_POST[‘surname’]));
$wpdb->query(« INSERT INTO sm_authors (surname, first_name)
VALUES (‘$name’, ‘$first_name’)
« );
}
function addInterpret($first_name, $name)
{
global $wpdb;
$first_name = trim(htmlentities($_POST[‘first_name’]));
$name = trim(htmlentities($_POST[‘surname’]));
$wpdb->query(« INSERT INTO sm_interprets (surname, first_name)
VALUES (‘$name’, ‘$first_name’)
« );
}
function deleteAuthor($id)
{
global $wpdb;
if (is_numeric($id))
$wpdb->query(« DELETE FROM sm_authors
WHERE id = $id
« );
else
die(‘Erreur : Valeur incorrecte. Chiffres seulement’);
}
function deleteInterpret($id)
{
global $wpdb;
if (is_numeric($id))
$wpdb->query(« DELETE FROM sm_interprets
WHERE id = $id
« );
else
die(‘Erreur : Valeur incorrecte. Chiffres seulement’);
}
}
$SongManager = new SongManager;
add_action(‘admin_menu’, array(&$SongManager, ‘init_plugin’));
?>Voilà 🙂
/! C’est une version alpha, hein alors fais gaffe quand même en la mettant sur des sites 😉 /!
30 juin 2006 à 13 h 20 min #576235MS-DOS_1991 wrote:/! C’est une version alpha, hein alors fais gaffe quand même en la mettant sur des sites 😉 /!Merci 🙂
Sinon pas de prob, c’est un wordpress que j’ai installé sur Free pour faire des tests.
30 juin 2006 à 13 h 23 min #576236J’ai toujours le soucis :
Supprimer un Auteur
WordPress database error: [Unknown column ‘surname’ in ‘field list’]
SELECT id, surname, first_name FROM sm_authors ORDER BY surname ASC
Aucun auteur à supprimer.
Nouvel Interprète
Prénom :
Nom :
Supprimer un Interprète
WordPress database error: [Unknown column ‘surname’ in ‘field list’]
SELECT id, surname, first_name FROM sm_interprets ORDER BY surname ASC
Aucun interprète à supprimer.J’ai désactivé le plugin, remis le nouveau code, et réactivé le plugin …
30 juin 2006 à 13 h 23 min #576237Vivement que tu mettes ton plugin en place et qu’on puisse tester nous aussi 🙂
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.