2009-10-23 9 views
3

J'ai hérité d'un site Druapl5 et son contenu affiché n'est pas coché dans la section Options de publication du formulaire Modifier le contenu.Drupal permet l'affichage de contenu non publié

J'ai confirmé que l'état est 0 dans le DB pour le noeud. Donc, ça ne devrait pas être visible. Ma première supposition était que j'étais connecté et c'est pourquoi je pouvais le voir, mais je me suis déconnecté et je pouvais encore le voir. J'ai essayé un navigateur différent et la même chose donc ce n'est pas ça.

En outre, les nœuds non publiés apparaissent dans les résultats de recherche que je pensais initialement être un cache de recherche obsolète, mais peuvent être quelque chose de différent.

Vous avez déjà vu quelque chose comme ça? Des idées?

+0

Êtes-vous les noeuds directement la visualisation ou comment pouvez-vous les voir? – googletorp

Répondre

3

Vous avez mentionné dans un commentaire que Content Access est installé sur le site. Ce module (ainsi que plusieurs autres, par exemple ACL) remplace le mécanisme d'accès au nœud Drupal par défaut afin de fournir des paramètres d'autorisation supplémentaires/plus précis.

Donc, je suppose que les configurations d'autorisation dans ce module sont mal configurées pour vos résultats souhaités. Autant que je me souvienne, il permet des ensembles d'autorisations distincts par type de contenu (défini pour les auteurs et les rôles). Vous devriez regarder les pages d'édition/définition de votre type de contenu - il devrait y avoir un onglet ajouté par ce module pour configurer les permissions. Vérifiez également le readme.txt du module, car il pourrait donner quelques conseils supplémentaires.

Si cela ne vous aide pas, vous devez vérifier si d'autres modules d'accès aux nœuds sont également installés. Comme mentionné, il y en a un certain nombre, et leurs interactions ne sont pas faciles à déterminer (il faut viser à n'en utiliser qu'une, si possible).

+0

juste pour l'enregistrement ... cela m'est également arrivé et a fini par être parce que j'avais 2 modules qui contrôlaient le statut publié: [Moder8] (http://drupal.org/project/modr8) et [LM Paypal] (http://drupal.org/project/lm_paypal). Les nœuds étaient approuvés avec Moder8 et donc _published_ mais LM Paypal disait toujours qu'ils n'étaient pas publiés alors qu'en fait ils l'étaient, donc les nœuds étaient publiés sans payer. –

1

Plutôt étrange. Pas de réponse, seulement des suppositions:

Essayez d'accéder à admin/content/node-settings et cliquez sur Reconstruire les autorisations.

Et peut-être effacer le cache admin/paramètres/performances

+0

Malheureusement, ni travaillé. – easement

1

Vérifiez vos autorisations pour les utilisateurs anonymes. On dirait que quelque part ils ont les mauvaises permissions.

+0

En ce qui concerne les autorisations, la seule option pour les utilisateurs anonymes cochée dans le module de noeud est l'accès au contenu. – easement

+0

Il existe également un module appelé Accès au contenu, mais il fournit uniquement l'accès et non l'édition. D'autres idées? – easement

2

Utilisez-vous Views? Si c'est le cas, assurez-vous d'avoir un jeu de filtres à afficher Publié uniquement.

J'ai rencontré un problème similaire avec des commentaires, ce qui a conduit à d'excellentes opportunités de spam jusqu'à ce que je le découvre.

+0

Ce qui est bizarre, c'est que je peux aussi aller sur la page non publiée. – easement

+0

Dans notre configuration, il y a une vue de recherche, mais aucun filtre publié n'est disponible. – Andy

0

Tous les modules d'accès remplacent les paramètres par défaut lors de l'utilisation de hook_node_access(). Très probablement c'est le problème. Vous devez donc modifier ces paramètres dans la partie relative à l'accès au contenu.

Et ce n'est pas la meilleure solution. Mais si vous avez besoin dans l'intervalle, vous pouvez toujours mettre ce code dans le fichier node.tpl.php:

if(!$node->status && $user->uid != 1){ 

avec le code ajouté:

<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?> clear-block"> 

<?php print $picture ?> 
<?php 

if(!$node->status && $user->uid != 1){ 

?> 
<?php if ($page == 0): ?> 
    <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2> 
<?php endif; ?> 

    <div class="meta"> 
    <?php if ($submitted): ?> 
    <span class="submitted"><?php print $submitted ?></span> 
    <?php endif; ?> 

    <?php if ($terms): ?> 
    <span class="terms"><?php print $terms ?></span> 
    <?php endif;?> 
    </div> 

    <div class="content"> 
    <?php print $content ?> 
    </div> 

<?php 
    if ($links) { 
    print $links; 
    } 
}//if for published node 
?> 

</div> 
+1

Autoriser uniquement l'utilisateur 1 est un mauvais hack. – googletorp

+0

Ceci est censé être une solution provisoire. Comme indiqué dans mon message. Si vous vouliez transformer ceci en une solution utilisable à long terme, vous changeriez && $ user-> uid == 1 pour autoriser tout utilisateur autorisé à administrer des nœuds. – lilott8