Site inutilisable après activation du cache

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Mon problème est le suivant:

Tout content d'avoir fini mon site, je passe à la configuration des performances et j'active le cache ( pas en mode agressif), je me déconnecte, quelques instants plus tard, je tente de me connecter à nouveau.
Et là ... au lieu de ma chatoyante page d'accueil, ce satané site m'affiche très sobrement :
Fatal error : Call to indefined function drupal_get_path() in home/......./sites/all/modules/cck_map/cck_map.module on line 7

et line 7 il y a : include_once(drupal_get_path('module', 'cck_map') .'/cck_map.inc')

Je n'y comprend rien, alors si quelqu'un pouvait m'éviter d'avoir perdu 6 heures de bouleau je lui en serais vraiment reconnaissant.

Merci

Version de Drupal : 

Il s'agit d'un bug de cck_map. Il faudrait le remonter à son auteur sur drupal.org.

En attendant, vous pouvez déplacer l'include_once() dans cck_map_menu() comme suit :

<?php
function cck_map_menu($may_cache) {
  if (
$may_cache) {
   
$items[] = array(
     
'path' => 'admin/settings/cck_map',
     
'title' => t('CCK Map Settings'),
     
'description' => 'Edit CCK Map Settings',
     
'callback' => 'cck_map_admin_menu',
     
'access' => user_access('administer CCK Maps'),
     
'type' => MENU_NORMAL_ITEM,
    );
  }
  else {
    include_once(
drupal_get_path('module', 'cck_map') .'/cck_map.inc');
  }
  return
$items;
}
?>

.. et supprimer complètement la fonction cck_map_init().

Damien

Merci beaucoup pour l'intérêt que vous avez porté à mon problème.

Je vais tenter ce que vous proposez de ce pas. ( et remonter le bug à l'auteur ).

Cela dit, j'ai quand même réussi à reprendre la main sur mon site en invoquant ma page d'accueil par Monsite/node ( Monsite/?q=user me renvoyait le message d'erreur), j'ai donc pu faire une sauvegarde de mon site sans CCK map et sans cache.

Merci encore.

Will

Voilà, j'ai mis en oeuvre ce que vous préconisiez et ça fonctionne apparamment sans problème.

Merci à vous, merci à Dries Buytaert et à tous les contributeurs.
La vie est belle, j'aime tout le monde ...

Bon, en postant le bug, j'ai vu qu'il était signalé ( sans que l'activation du cache soit évoquée ).
ici

Une solution est proposée. Il s'agit de remplacer la fonction init originale par

function cck_map_init() {
  if (function_exists('drupal_get_path')) {
  include_once('./'. drupal_get_path('module', 'cck_map') .'/cck_map.inc');
  }
}

A votre avis, est-ce que je dois la préférer à la vôtre ?