Comment changer ma page d'accueil en fonction de l'heure de la journée?

8

J'ai cherché haut et bas pour cela. Comment modifier ma page d'accueil en fonction de l'heure de la journée? Pour être absolument explicite, je veux:

  1. Entre 8h et 19h - Page d'accueil 1 (noeud / 4)
  2. Entre 19h et 8h - Page d'accueil 2 (noeud / 5)

Je veux donc concevoir deux pages d'accueil complètement différentes, puis elles changent en fonction de l'heure de la journée.

J'ai essayé du code mais il ne semble pas faire le travail:

$current_front = variable_get('site_frontpage');

if($current_front== 'node/4'){
    variable_set('site_frontpage','node/5');
}else{
    variable_set('site_frontpage','node/4');
}

Remarque : Je ne suis pas un expert en code, donc je ne saurais pas par où commencer avec les hooks et je suis à un million d'années de la création de mes propres modules.

Rich Stevens
la source
1
voir cette question ( drupal.stackexchange.com/questions/1884/… ) pour plus d'informations sur la modification par programme de la page d'accueil.
Geoff

Réponses:

6

Pensez à utiliser le module Rules pour définir le nœud approprié comme page d'accueil.

Sur la base de l'échantillon de la question, je suppose que le nœud / 4 est la valeur site_frontpage. Voici la règle à créer qui pourrait fonctionner dans votre cas:

  1. Créer une nouvelle règle
  2. Événement = Le contenu est affiché
  3. Condition: comparaison de données -> node:nidégal4
  4. Ajoutez une condition supplémentaire pour vérifier si l'heure actuelle est comprise entre 19h et 8h.
  5. Action: rediriger la page vers node/5

Pour ceux qui ne connaissent pas (assez / encore) les règles , consultez les 32 (!!!) super tutoriels vidéo (+ gratuits) Apprenez le cadre des règles . Peut-être aussi l' ensemble similaire de 8 didacticiels vidéo sur le module Flag , souvent considéré comme un complément naturel au module Rules. Peut-être aussi passer en revue l' ensemble de 30 didacticiels vidéo sur le module Vues ... La familiarité avec seulement ces 3 modules ( vues , règles et drapeau ) peut vous aider assez loin dans la plupart des sites Drupal (en tant que constructeur de site).

Pierre.Vriens
la source
Je ne suis pas sûr d'avoir les compétences pour cela, mais merci. J'ai trouvé ceci qui semble fonctionner comme règle de sélection dans un panneau: code$ now = time (); $ jour = date ("D", $ maintenant); return $ day == "Tue"; codeJ'ai juste besoin que ce soit entre 8 heures-19 heures maintenant, si quelqu'un sait comment je peux le faire, je vous en serais reconnaissant.
Rich Stevens
Finalement, cela a fonctionné; ajouté ceci à ma règle de sélection de panel: code$ now = time (); $ jour = date ("G", $ maintenant); return $ day <"15"; codePour toute personne aussi inutile que moi, cela signifie que je vérifie si l'heure est avant 15h00, si c'est le cas, cette règle passe donc mon panneau s'affiche. Merci.
Rich Stevens
3

Je suggérerais un module personnalisé avec quelques crochets cron (dans une fonction hook_cron ).

  • Définissez un crochet cron (A) pour changer la page d'accueil en noeud / 4.
  • Définissez l'autre crochet cron (B) pour changer la page d'accueil en noeud / 5.
  • Installez Ultimate Cron et utilisez le planificateur Crontab.
  • Réglez le crochet A sur * 8 * * *
  • Réglez le crochet B sur * 19 * * *

Bien sûr, cela ne fonctionnera qu'en fonction de l'horloge de votre serveur et ne changera pas en fonction du fuseau horaire de l'utilisateur. Si vous voulez que ce soit plus compliqué.

Darvanen
la source
Malheureusement, je ne suis pas un génie du code, donc je ne saurais pas par où commencer avec ces crochets. On dirait que je vais devoir payer quelqu'un. Merci pour votre réponse dans tous les cas, cela pourrait aider quelqu'un de plus doué techniquement!
Rich Stevens
Vous n'avez pas besoin d'être intelligent, Drupal et PHP sont assez faciles à apprendre. Payer quelqu'un est une option, mais apprendre à créer des modules personnalisés =)
Darvanen
Je ne sais pas ce que cela signifie "Définir un crochet cron (A) pour changer la page d'accueil en noeud / 4." Je suis à un million d'années de la création de mes propres modules.
Rich Stevens
Assez juste, il est bon de connaître vos limites.
Darvanen
3

Jetez un œil au module Thème clé . Plus de détails à ce sujet, à partir de sa page de projet:

ThemeKey vous permet de définir des règles de changement de thème simples ou sophistiquées qui permettent la sélection automatique d'un thème en fonction du chemin d'accès actuel, des termes de taxonomie, de la langue, du type de nœud et de nombreuses autres propriétés. Il peut également être facilement étendu pour prendre en charge des propriétés supplémentaires exposées par d'autres modules. En combinaison avec l'héritage de thème de Drupal, vous pouvez facilement obtenir des fonctionnalités telles que:

  • canaux de style individuel
  • un écran de première page / "splash"
  • un thème de Noël sélectionné par date / heure
  • thèmes mobiles pour différents appareils mobiles auto-détectés
  • thèmes spéciaux pour les navigateurs "limités" ou "anciens"
  • thèmes spécifiques au contenu, à l'utilisateur ou au rôle
  • indiquant votre environnement (production, mise en scène, test, bac à sable,…)
  • tester votre refonte en toute sécurité sur un serveur en direct
Mike Barkas
la source