Bonjour a tous !
Je viens vers vous pour un petit problème de portage.
Voila deux jours que je tente de porter un module drupal 5.x sur la version 6.x.
Lorsque j’active le module, tout se passe normalement. Enfin presque : lorsque j’essaie d’ajouter une photo dans celui ci, il m’affiche une erreur comme quoi les tables n’existent pas. J’aimerais savoir ce que j’ai mal fait, pour en tirer les leçons ;) ( J’ai suivi la doc de drupal pour en arriver la )
<?php
/<strong>
* Script d'installation pour le module diaporama.
*/
/</strong>
* Implementation of diaporama_install().
*/
function diaporama_install() {
// Create tables.
drupal_install_schema('
diaporama');
}
/<strong>
* Implementation of hook_uninstall().
*/
function diaporama_uninstall() {
// Remove tables.
drupal_uninstall_schema('
diaporama');
variable_del('
diaporama');
variable_del('diaporama_photos');
}
/</strong>
* Implementation of hook_schema().
*/
function diaporama_schema() {
$schema['
diaporama'] = array(
'fields' => array(
'nid' => array(
'type' => 'int',
'length' => 10,
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0
),
'submissions_allowed' => array(
'type' => 'enum',
'not null' => TRUE,
'default' => no
),
'submissions_moderated' => array(
'type' => 'enum',
'not null' => TRUE,
'default' => yes
)
),
'indexes' => array(
'requires_moderation' => array('requires_moderation'),
'submissions_allowed' => array('submissions_allowed')
),
'primary key' => array('nid'),
);
$schema['
diaporama_photos'] = array(
'fields' => array(
'nid' => array(
'type' => 'int',
'length' => 10,
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0
),
'did' => array(
'type' => 'int',
'length' => 10,
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0
),
'author' => array(
'type' => 'varchar',
'length' => 80,
'not null' => TRUE,
'default' => ''
),
'location' => array(
'type' => 'varchar',
'length' => 80,
'not null' => TRUE,
'default' => ''
),
'taken' => array(
'type' => 'date',
'not null' => TRUE,
'default' => '000-00-00'
),
'cleared' => array(
'type' => 'enum',
'not null' => TRUE,
'default' => yes
),
'pos' => array(
'type' => 'int',
'length' => 10,
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0)
),
'indexes' => array (
'did' => array('did'),
'cleared' => array('cleared'),
'pos' => array('pos'),
),
'primary key' => array('nid),
);
return
$schema;
}
?>Merci d’avance pour vos remarques !
Cesky.
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Une suggestion : désactive le module, desinstalle le (avec le tab «Desinstaller») et réactive le.
Damien Tournoud
808
Je viens d’essayer. Mais toujours pareil :
* user warning: Table 'fgc.diaporama' doesn't exist query: INSERT INTO diaporama (nid, submissions_allowed, submissions_moderated) VALUES (93, 'no', 'no') in C:\www\modules\diaporama24\diaporama.module on line 1596.* user warning: Table 'fgc.diaporama' doesn't exist query: SELECT * FROM diaporama WHERE nid = 93 in C:\www\modules\diaporama24\diaporama.module on line 1751.
* user warning: Table 'fgc.diaporama_photos' doesn't exist query: SELECT node.nid, photos.did, photos.cleared FROM node, diaporama_photos AS photos WHERE node.nid=photos.nid AND node.type = 'photo' AND photos.did = 93 AND photos.cleared = 'yes' ORDER BY photos.pos ASC LIMIT 0,1 in C:\www\modules\diaporama24\diaporama.module on line 734.
* user warning: Table 'fgc.diaporama_photos' doesn't exist query: SELECT node.*, photos.* FROM node LEFT JOIN diaporama_photos AS photos ON node.nid = photos.nid WHERE node.type='photo' AND photos.cleared = 'yes' AND photos.did = 93 ORDER BY photos.pos ASC in C:\www\modules\diaporama24\diaporama.module on line 687.
Cesky
3
Je sèche….
J’ai même remplacé la structure de tes tables par celle d’un de mes fichier .install.
Quand tu désinstalles un module, essaie de supprimer l’enregistrement correspondant à ton module dans la table system.
Le problème est tellement évident, qu’on ne le voit pas…..
essaie peut être de tracer avec des print, pour voir si drupal passe dedans.
Mais j’ai l’impression que drupal n’a pas «conscience» de la présence de ce fichier et ne s’en sert pas.
Le réponse m’intéresse. Si tu la trouves , reviens nous la donner.
David.
Tahitibob35
63
Il semblerait que » enum » ne soit pas supporté par l’API de Drupal en fait …
Cesky
3
Ca n’explique pas pourquoi quand je mets mon schéma dans ton fichier .install, ça ne marche pas.
Puisque mon schéma fonctionne bien dans mon module.
Tahitibob35
63