Astuces et PHP

Erreurs

Rien pour l’instant

Pour sauvegarde phpMyAdmin

vider les tables :

TRUNCATE `cache`;
TRUNCATE `cache_admin_menu`;
TRUNCATE `cache_block`;
TRUNCATE `cache_bootstrap`;
TRUNCATE `cache_content`;
TRUNCATE `cache_field`;
TRUNCATE `cache_filter`;
TRUNCATE `cache_form`;
TRUNCATE `cache_image`;
TRUNCATE `cache_l10n_update`;
TRUNCATE `cache_location`;
TRUNCATE `cache_menu`;
TRUNCATE `cache_page`;
TRUNCATE `cache_path`;
TRUNCATE `cache_token`;
TRUNCATE `cache_update`;
TRUNCATE `cache_views`;
TRUNCATE `cache_views_data`;
TRUNCATE `search_dataset`;
TRUNCATE `search_index`;
TRUNCATE `search_node_links`;
TRUNCATE `search_total`;
TRUNCATE `sessions`;
TRUNCATE `watchdog`;

Utilisation des tables

locales_source = chaînes originales anglaises
locales_target = traductions des chaînes
watchdog = journal d’événement
accesslog = leste des acces
node_counter = les statistiques
  Rapports (Administration) / Paramètres du journal des accès / Compter les visualisations de contenu

PHP

Dans un bloc

<a href="/a-propos" title="À propos">À propos </a>
<?php
if (user_is_logged_in()) {
 echo <a href="/user" title="'| Mon compte">Mon compte</a>';
} else {
 echo '| coucou';
}
echo '.';
?>

<?php
global $user;
$uid = $user->uid;
$name = $user->name;

echo "<a href='http://info.dialoguesenhumanite.org/dialogues_pm/DEH_connect.php?userid=" .$name. "'>Gestion Contact Mail</a><br>";

if ($uid<2){
 echo "<a href='http://info.dialoguesenhumanite.org/admin/admin.php' target='_blank'>Admin Wanewsletter</a><br>";
 echo "<a href='http://dialoguesenhumanite.org/book/44/jjancel'>44/jjancel</a><br>";
}
?>

Afficher le contenu d’un vocabulaire dans un popup avec lightbox2

1 - Créer un bloc nommer PHP « Test PHP » avec le code php de lecture du vocabulaire utilisé

if ( arg(0) == 'node' and is_numeric(arg(1)) and arg(2) == FALSE ) {
$node = node_load(arg(1));
if ( isset( $node->field_connaissances_requises['und'])) {
  foreach($node->field_connaissances_requises['und'] as $term) {
   echo "<a href='/?q=connaissances-prealable/" .$term['tid']. "/lightbox2&lightframe' rel='lightframe' title='" .$term['taxonomy_term']->name. "'> " .$term['taxonomy_term']->name. "</a><br>";
  }
}
}

Le résultat est la liste des termes avec un lien vers une page Views de la forme :
NomPageViews/N°Term/lightbox2&lightframe

2 – créer une Views de type Term avec :
Chemin: /connaissances-prealable
Champs
Terme de taxonomie : Nom
Terme de taxonomie : Description du terme
Filtres contextuels
Terme de taxonomie : Identifiant (ID) du terme

3 - Recopier dans le répertoire templates du thème page.tpl.php nommé page–(type de contenu).tpl.php

<?php if (isset($_GET['lightframe'])): ?>
  <?php if ($title): ?><h2 class="page-title"><?php print $title; ?></h2><?php endif; ?>
  <?php print render($page['content']); ?>
<?php else: ?>
A la fin
<?php endif; ?>

Afficher un block dans une page d’un type de contenu

1 – ajouter dans template.php sous la function

professional_theme_preprocess_page(&$vars) {
  if (isset($vars['node'])) {
    $vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type ;
  }

2 – Recopier dans le répertoire templates du thème node.tpl.php en node—TYPECONTENU.tpl.php
exemple node—cas_ecole.tpl.php
Ajouter juste avant print render($content);

$block = module_invoke('block', 'block_view', '6');
?>
<p style="float: right;"> <?php print render($block['content']);?> </p>
<h4 style="text-align:left;float:left;">Connaissances Pr&eacute;alables:</h4>
<hr style="clear:both;"/>
<?php

Plus facile

Afficher le contenu d’un vocabulaire dans un popup avec colorbox et colorbox-node
<a class=»colorbox-node» href=»/node/17?width=600&height=600»>Mon Example</a>
echo «<a class=’colorbox-node’ href=’ /?q=connaissances-prealable/» .$term[‹tid›]. » ’?width=600&height=600’ rel=›lightframe› title=›» .$term[‹taxonomy_term›]->name. «›> » .$term[‹taxonomy_term›]->name. «</a><br>»;
Avec colorbox-node pas besoin de modifier les templates

Views Tag avec un seul type de contenu

1) In view edit, set «Page settings -> Path» to «node/%/my_view»
2) Add a contextual filter:
  2.1) Relationship: none
  2.2) When the filter value is NOT in the URL: Display all results for the specified field
  2.3) When the filter value IS in the URL or a default is provided: check «Specify validation criteria», in validator select «Content» and check the custom content type.
  2.4) Filter value format: Node ID

Récupérer (extraire) les données d’un noeud

<?php
$nid = 412;
$node = node_load($nid);
print_r($node);
?>

Afficher la date de création du noeud

<?php
$nid = 412;
$node = node_load($nid);
$timestamp = $node->created;
$date = date("d-m-Y", $timestamp);
echo $date;
?>

Afficher le contenu

<?php
$nid = 412;
$node=node_load($nid);
print $node->body['und']['0']['value'];
?>

Drupal 6, l’affichage du contenu

<?php
$nid = 412;
$node=node_load($nid);
print $node->body;
?>

Afficher l’arborescense d’un Book si node = Book

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
 $nid = arg(1);
 $node = node_load($nid);
 if (isset($node->book['bid'])) {
  $book_top_page= $node->book['bid'];
  $tree = menu_tree_all_data(book_menu_name($book_top_page));
  $menutree=menu_tree_output($tree);
  print drupal_render($menutree);
 }
}
?>

Architecture du site

Il y a deux sortes de personnes qui visiteront le site : ceux qui connaissent déjà les Dialogues et qui les aiment, c’est-à-dire ceux qui sont fans, et ceux qui ne le sont pas encore. Nous devons satisfaire chacun de ces deux groupes de manières différentes. Nous devons convaincre les fans potentiels, tandis que les fans actuels veulent assouvir leur passion, c’est-à-dire discuter. Quel genre d’informations chacun de ces groupes va-t-il chercher ?

Voici un aperçu :

     (Visiteurs)
          |
J'aime les Dialogues → (Non) → Au revoir
               |         |
               |         °- (Oui) → (Plus d'infos)
               |                  → Contact,
               |                  → Agenda,
               |                  → …
               |
               °- (Peut-être) → A propos des Dialogues,
                              → Historique,
                              → trombinoscope,
                              → Photos,
                              → Vidéo,
                              → Audio,
                              → …

. À partir de cela, la liste des pages nécessaires, et des liens entre elles.
O- Les Dialogues dans le Monde        (racine du site)
   |-- Continents pays                (catégorie)
   |  |°-- Choisir une recette        (article)
   |  |-- Livres                      (catégorie)
   |  |   |-- Faire sauter une viande (article)
   |  |   °-- Gâteau au chocolat      (article)
   |  °-- Publications                (catégorie)
   |  |   °-- Petits légumes du midi  (article)
   °-- Matériel                       (catégorie)
          |-- Le robot ménager        (article)
          °-- Les spatules            (article)

Page d’accueil des Dialogues

Cette page est cruciale pour « vendre » les Dialogues aux nouveaux fans. Elle doit vraiment refléter ce que sont les Dialogues. Elle doit inclure les point suivants :

  • un élément visuel (logo, image, icône symbolique) pour l’aspect attractif.
  • le nom ou le titre du site et son objet.
  • un sommaire (détaillé ou synthétique) qui donnera une vue d’ensemble du contenu et amorcera les outils de navigation.
  • un court texte qui reprend le descriptif fourni aux moteurs de recherche (excellent pour le référencement et le classement).
  • le nom de l’auteur du site et un lien vers l’adresse électronique de celui-ci.
  • la date de réalisation ou de la dernière mise à jour.
  • Qu’est ce que les Dialogues et qui sont-ils ?
  • Où puis-je rencontrer les Dialogues ?
  • Prochains  Dialogues
  • Quoi de neuf
  • De super photos des Dialogues en action, et un accès facile aux différents  Dialogues.