Bonjour, il y a 2 tables utilisées pour le contenu : cms_content, cms_content_props plus les 2 suivantes mais que tu n'as pas besoin de modifier.
Examine-les, tu devrais facilement les comprendre.
J'ai créé plus de 900 pages il y a une semaine, je te met l'udt que j'ai utilisé, il n'est pas professionnel ni optimisé, mais il m'a suffit et prend en compte le SEO (seulement quelques petites modif à la main dans l'éditeur quand il reste quelque problème d'accent.)
Je te le met tel quel.
J'espère que cela pourra te mettre sur la voie.
J'ai une table (zoom_candidat08) où se trouvent les infos à insérer dans le cms et une table supplémentaire (rel_id_zoom_candidat_id_cms_content) car j'ai encore besoin de certaines variables et dois donc relier les id de zoom_candidat08 et cms_content
Merci aux gourous s'ils peuvent corriger mes erreurs.
Code: Select all
function stripAccents($string){
return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
}
$remplacements = array('’' => '-', '\"' => '-', '_' => '-', ';' => '', ':' => '', '\"' => '', '!' => '', '?' => '', ',' => '', 'à' => 'a', 'â' => 'a', 'ä' => 'a', 'é' => 'e', 'è' => 'e', 'ë' => 'e', 'ê' => 'e', 'î' => 'i', 'í' => 'i', 'ï' => 'i', 'ô' => 'o', 'ö' => 'o', 'ù' => 'u', 'û' => 'u', 'ü' => 'u', '(' => '-', ')' => ' ', '\'' => '-', '.' => '-', '..' => ' ', '...' => '-', '/' => '-','\&' => '-', '&' => '-', 'à' => 'a', 'â' => 'a', 'é' => 'e', 'è' => 'e', 'ê' => 'e', 'ë' => 'e', 'ï' => 'i', 'î' => 'i', 'ô' => 'o', 'ù' => 'u', 'û' => 'u', 'À' => 'a', 'Â' => 'a', 'É' => 'e', 'Î' => 'i', 'Ô' => 'o', 'Ù' => 'u', 'Û' => 'u', '---' => '-', '--' => '-', '%' => 'pour-cent', '+' => 'plus', '"' => '-', ''' => '-' );
$replacePhoto = array('é' => 'e', 'è' => 'e', 'û' => 'u', 'JPG' => 'jpg', 'JPEG' => 'jpg', 'jpeg' => 'jpg', 'GIF' => 'gif', 'BMP' => 'bmp', '\'' => '-', ' ' => '-', '(1)' => '', '(2)' => '', '[1]' => '', '[2]' => '', ':' => '-' );
$remplacements1 = array('\"' => '-', '_' => '-', ';' => '', ':' => '', '\"' => '', '!' => '', '?' => '', ',' => '', 'à ' => 'a', 'â' => 'a', 'ä' => 'a', 'ç' => 'c', 'î' => 'i', 'í' => 'i', 'ô' => 'o', 'ö' => 'o', 'ù' => 'u', 'û' => 'u', 'ü' => 'u', '(' => '-', ')' => ' ', '\'' => '-', '.' => '-', '..' => ' ', '...' => '-', '/' => '-','\&' => '-', '&' => '-', 'à' => 'a', 'â' => 'a', 'é' => 'e', 'è' => 'e', 'ê' => 'e', 'ë' => 'e', 'î' => 'i', 'ô' => 'o', 'ù' => 'u', 'û' => 'u', 'À' => 'a', 'Â' => 'a', 'É' => 'e', 'Î' => 'i', 'Ô' => 'o', 'Ù' => 'u', 'Û' => 'u','&cecedil;' => 'ç', '---' => '-', '--' => '-', '%' => 'pour-cent', '+' => 'plus', '"' => '-', ''' => '-' );
//variables pour l'insertion dans cms_content et cms_content_props
//à toi de les adapter
$content_id = 1000;
$item = 1;
$owner_id = 1;
$parent_id = 97;
$template_id = 25;
$default_content = 0;
$show_in_menu = 1;
$collapsed = "";
$markup = "html";
$active = 1;
$cachable = 1;
$prop_names = "content_en,target,pagedata,extra1,extra2,extra3";
$tabindex = "";
$accesskey = "";
$last_modified_by = "1";
$modified_date = "2008-09-07 12:28:56";
//on va chercher les infos dans zoom_candidat08
global $gCms;
$db = &$gCms->GetDb();
//mettre l'id
$query = "SELECT * FROM zoom_candidat08 WHERE display = 1";
$dbresult = &$db->Execute($query);
while ($dbresult && !$dbresult->EOF)
{
$id = $dbresult->fields['id_candidature'];
$pass = $dbresult->fields['pass'];
//mise en relation des champs avec function/array.php de l'ancien site
if ($dbresult->fields['sujet_candidature'] == 0) $sujet_candidature = "projet";
elseif ($dbresult->fields['sujet_candidature'] == 1) $sujet_candidature = "talent";
else ($sujet_candidature = "projet+talent");
echo "<p>";
$type_groupe = $dbresult->fields['type_groupe'];
switch ($type_groupe[0])
{
case "0":
$type_groupe = "Asbl";
break;
case 1:
$type_groupe = "Association de fait";
break;
case 2:
$type_groupe = "Groupe informel";
break;
case 3:
$type_groupe = "S.A.";
break;
case 4:
$type_groupe = "Sprl";
break;
case 5:
$type_groupe = "Classe";
break;
case 6:
$type_groupe = "École";
break;
case 7:
$type_groupe = "Mouvement de jeunesse";
break;
case 8:
$type_groupe = trim($dbresult->fields['typeAutre_groupe']);
break;
case 9:
$type_groupe = "s.a. - s.p.r.l.";
break;
case 10:
$type_groupe = "coopérative";
break;
case 11:
$type_groupe = "classe - école";
break;
case 12:
$type_groupe = "Asbl";
break;
default: $type_groupe = "non";
}
$theme_candidature = $dbresult->fields['theme_candidature'];
switch ($theme_candidature[0])
{
case 0:
$theme_candidature = "arts et culture";
break;
case 2:
$theme_candidature = "sport";
break;
case 3:
$theme_candidature = "santé";
break;
case 4:
$theme_candidature = "citoyenneté action sociale";
break;
case 8:
$theme_candidature = "enseignement et formation";
break;
case 10:
$theme_candidature = trim(strToLower($dbresult->fields['themeAutre_candidature']));
break;
case 11:
$theme_candidature = "science environnement NTIC";
break;
case 12:
$theme_candidature = "entreprenariat économie emploi";
break;
default: $theme_candidature = "";
}
$theme_categorie = trim(rtrim($dbresult->fields['theme_categorie'], " - "));
$theme_autreCategorie = trim($dbresult->fields['theme_autreCategorie']);
$theme_categorie = str_replace("- Autre", strToLower($theme_autreCategorie), $theme_categorie);
if(trim($theme_categorie) == "Autre") $theme_categorie = strToLower(trim($dbresult->fields['theme_autreCategorie']));
$theme_sousCategorie = $dbresult->fields['theme_sousCategorie'];
if(trim($theme_sousCategorie) == "Autre -") $theme_sousCategorie = strToLower(trim(rtrim($dbresult->fields['theme_autreSousCategorie'], "- ")));
//les photos
$photo = trim(strtr($dbresult->fields['photo_candidat'], $replacePhoto));
$photo2 = trim(strtr($dbresult->fields['photo2_candidat'], $replacePhoto));
//titre_candidature
$titre_candidature = trim($dbresult->fields['titre_candidature']);
//nom et prenom
$email_inscrivant = trim(strToLower($dbresult->fields['email_inscrivant']));
$nom_candidat = $dbresult->fields['nom_candidat'];//1ère lettre de chaque mot en maj.
$prenom_candidat = $dbresult->fields['prenom_candidat'];//idem
$adresse_candidat = trim($dbresult->fields['adresse_candidat']);
$numeroRue_candidat = $dbresult->fields['numeroRue_candidat'];
$cp_candidat = $dbresult->fields['cp_structure'];
$localite_candidat = $dbresult->fields['localite_candidat'];
$province_candidat = $dbresult->fields['province_candidat'];
$email_candidat = trim(strToLower($dbresult->fields['email_candidat']));
$telephone_candidat = trim($dbresult->fields['telephone_candidat']);
$site_candidat = trim($dbresult->fields['site_candidat']);
$site_candidat = str_replace("\'", "?", $site_candidat);
$site_candidat = str_replace("&", "&", $site_candidat);
$site_candidat = str_replace("http://", "", $site_candidat);
//structure
$nom_groupe = trim($dbresult->fields['nom_groupe']);;
$contact_groupe = trim($dbresult->fields['contact_groupe']);
$adresse_groupe = trim($dbresult->fields['adresse_groupe']);
$numeroRue_groupe = trim($dbresult->fields['numeroRue_groupe']);
$nom_structure = trim($dbresult->fields['nom_structure']);
$contact_structure = $dbresult->fields['contact_structure'];
$telephone_structure = $dbresult->fields['telephone_structure'];
$adresse_structure = $dbresult->fields['adresse_structure'];
$numeroRue_structure = $dbresult->fields['numeroRue_structure'];
$cp_structure = $dbresult->fields['cp_structure'];
$localite_structure = $dbresult->fields['localite_structure'];
$province_structure = $dbresult->fields['province_structure'];
$email_structure = trim($dbresult->fields['email_structure']);
$sexeContact_structure = $dbresult->fields['email_structure'];
if($sexeContact_structure == 0) $sexeContact_structure = "Mr. ";
if($sexeContact_structure == 1) $sexeContact_structure = "Mme. ";
$site_structure = $dbresult->fields['site_structure'];
$site_structure = str_replace("http://", "", $site_structure);
//portee candidature
$portee_candidature = trim($dbresult->fields['portee_candidature']);
//public ciblé
$public_candidature = trim($dbresult->fields['public_candidature']);
//description du rédacteur
$description_admin = nl2br(trim($dbresult->fields['description_admin']));
$qualite_candidature = nl2br(trim($dbresult->fields['qualite_candidature']));
//implémentation de l'id
$param1 = $dbresult->fields['id_candidature'];//pour recherche cms_content, zoom_candidat
//type candidat
$type_candidat = $dbresult->fields['type_candidat'];
if($type_candidat == "0") {$type_candidat = "jeune";}
elseif ($type_candidat == "1") {$type_candidat = "groupe de jeunes";}
else {$type_candidat = "structure";}
//1ère balise <h3>$content_name</3> , $menu_text, $content_name
if($titre_candidature != "") {$content_name = trim($titre_candidature);}
elseif($nom_groupe != "") {$content_name = $nom_groupe;}
else {$content_name = $nom_candidat." ".$prenom_candidat;}
$age_candidat = $dbresult->fields['age_candidat'];
//alias
$content_alias = str_replace(""", "-", $content_name);//tout les mots minuscules séparés par un trait d'union
$content_alias = str_replace("'", "-", $content_alias);
$content_alias = str_replace("’", "-", $content_alias);
$content_alias = str_replace("\';", "-", $content_alias);
$content_alias = strtr($content_alias, $remplacements);//on élimine les accents, ...
$content_alias = strtr($content_alias, $remplacements1);//on élimine les accents, ...
$content_alias = strToLower(stripAccents($content_alias));//on élimine les accents, ...
$content_alias = str_replace(" ", "-", $content_alias);//on remplace les espaces s'il en reste
$content_alias = str_replace("---", "-", $content_alias);//on nettoie les traits d'union
$content_alias = str_replace("--", "-", $content_alias);//idem
$content_alias = rtrim($content_alias, "-");//s'il traine un - au bout
//on affiche
$content = "<div class='candidat'><h1>".$content_name."</h1>";
if($photo != "")
{
$content.= "<div class='image_candidat'><img class='img-candidat' src='uploads/images/".$photo."' title='".$content_name."' alt='".$content_name."' /></div>";
}
if($photo2 != "")
{
$content.= "<div class='image2_candidat'><img class='img2-candidat' src='uploads/images/".$photo2."' title='".$content_name."' alt='".$content_name."' /></div>";
}
if($email_candidat != "" || $site_candidat != "") $content .= "<address class='vestibulum'>";
if($email_candidat != "")
{
$content .= "{mailto address='".$email_candidat."' encode='javascript' subject='Concerne votre ".$sujet_candidature." ZoomJeunes 2008'}";
}
if($site_candidat != "" && $email_candidat != "") $content .= "<br />";
if($site_candidat != "")
{
$content .='<a class="a-orange external" href="http://'.$site_candidat.'" title="'.$site_candidat.'" target="_blank">Site du candidat</a>';
}
if($email_candidat != "" || $site_candidat != "") $content .= "</address>";
if($theme_candidature != "") $content .= "<h2>Thématique de la candidature</h2><p>".$theme_candidature."</p>";
if($theme_categorie != "") $content .= "<h3>Catégorie</h3><p>".$theme_categorie;
if($theme_sousCategorie != "") $content .= "<br />".$theme_sousCategorie;
$content .= "</p>";
if($nom_structure != "")
{
$content .= "<h2>Structure de soutien</h2><p>".trim($nom_structure)."</p>";
$content .= "<address class='vestibulum'>";
if($contact_structure != "") $content .= $sexeContact_structure.trim(ucWords($contact_structure));
if($telephone_structure != "" && $contact_structure != "") $content .= "<br />";
if($telephone_structure != "") $content .= $telephone_structure;
if($email_structure != "" && ($contact_structure != "" || $telephone_structure != "")) $content .= "<br />";
if($email_structure != "")
{
$content .= '{mailto address="'.$email_structure.'" cci="webmaster-zoomjeunes@promojeunes.be" encode="javascript" subject="Concerne le '.$sujet_candidature.' ZoomJeunes 2008"}';
}
if($site_structure != "" && ($contact_structure != "" || $telephone_structure != "" || $email_structure != "")) $content .= "<br />";
if($site_structure != "") $content .='<a class="a-orange external" href="http://'.$site_structure.'" title="'.$site_structure.'" target="_blank">Site internet</a>';
$content .="</address>";
}
if($public_candidature != "") $content .= "<h2>Public ciblé</h2><p>".$public_candidature."</p>";
$content .= "<h2>Présentation du ".$sujet_candidature."</h2><p>".$description_admin."</p>";
$content .= "<h2>Pourquoi allez-vous gagner ? Que ferez-vous avec votre prix ?</h2><p>".$qualite_candidature."</p>";
$content .= "<h2>Votez</h2>";
$content .= "<p>Vous pouvez voter une fois par jour/par candidat</p>";
$content .= "<p>Recopiez ce lien dans les forums, sites internet, e-mail, etc. afin d'augmenter les votes pour votre candidature : http://www.zoomjeune.be/candidats/candidats-2008/".$content_alias.".html</p>{cms_module module='RateThis' lang='fr_FR'}</div>";
$content_name = addSlashes($content_name);
$menu_text = $content_name;
$item_order = $item;
$hie = number_format($item/10000, 4, '', '');
$hierarchy = "00004.00001.".$hie;
$id_hierarchy = "93.97.".$content_id;
$hierarchy_path = "candidats/candidats-2008/".$content_alias;
$titleattribute = $menu_text;
$detail = str_replace("\"", "'", $description_admin);
$detail = str_replace(""", "&apos", $detail);
$metadatas = '<meta name="Description" content="Candidature de '.$content_name.' au concours ZoomJeunes 2008. '.$detail.'" />';
if(strlen($metadatas) > 300) $metadatas = substr_replace($metadatas, "...", 290)."\" />";
$metadatas = addSlashes($metadatas);
$create_date = $dbresult->fields['datein'];
//on teste
echo "<h3>Vérification des paramètres de création de page</h3>";
echo "<p>content_id = ".$content_id."<br />";
$content = addSlashes($content);
echo "content_name = ".$menu_text."<br />";
echo "type = content<br />";
echo "owner_id = ".$owner_id."<br />";
echo "parent_id = ".$parent_id."<br />";
echo "template_id = ".$template_id."<br />";
echo "item_order = ".$item_order."<br />";
echo "hierarchy = ".$hierarchy."<br />";
echo "default_content = ".$default_content."<br />";
echo "menu_text = ".$menu_text."<br />";
echo "content_alias = ".$content_alias."<br />";
echo "show_in_menu = ".$show_in_menu."<br />";
echo "collapsed = ".$collapsed."<br />";
echo "markup = ".$markup."<br />";
echo "active = ".$active."<br />";
echo "cachable = ".$cachable."<br />";
echo "id_hierarchy = ".$id_hierarchy."<br />";
echo "hierarchy_path = ".$hierarchy_path."<br />";
echo "prop_names = ".$prop_names."<br />";
echo "metadata = ".$metadatas."<br />";
echo "titleattribute = ".$titleattribute."<br />";
echo "tabindex = ".$tabindex."<br />";
echo "accesskey = ".$accesskey."<br />";
echo "last_modified_by = ".$last_modified_by."<br />";
echo "create_date = ".$create_date."<br />";
echo "modified_date = ".$modified_date."<br />";
echo "param1 ".$param1."<br />";
echo "photo ".$photo."<br />";
echo "photo2 ".$photo2."<br />";
echo $content;
//iteration
echo "</p>";
//insertion dans cms_content
$query = "INSERT INTO promojeuzoombo.cms_content (content_id, content_name, type, owner_id, parent_id, template_id, item_order, hierarchy, default_content, menu_text, content_alias, show_in_menu, collapsed, markup, active, cachable, id_hierarchy, hierarchy_path, prop_names, metadata, titleattribute, tabindex, accesskey, last_modified_by, create_date, modified_date) VALUES ('$content_id', '$content_name', 'content', '$owner_id', '$parent_id', '$template_id', '$item_order', '$hierarchy', '$default_content', '$menu_text', '$content_alias', '$show_in_menu', '$collapsed', '$markup', '$active', '$cachable', '$id_hierarchy', '$hierarchy_path', '$prop_names', '$metadatas', '$titleattribute', '$tabindex', '$accesskey', '$last_modified_by', '$create_date', '$modified_date')";
$db->Execute($query);
//insertion dans cms_content_props
$query = "INSERT INTO promojeuzoombo.cms_content_props (content_id, type, prop_name, content) VALUES ('$content_id', 'string', 'content_en', '$content')";
$db->Execute($query);
$query = "INSERT INTO promojeuzoombo.cms_content_props (content_id, type, prop_name) VALUES ('$content_id', 'string', 'target')";
$db->Execute($query);
$query = "INSERT INTO promojeuzoombo.cms_content_props (content_id, type, prop_name) VALUES ('$content_id', 'string', 'pagedata')";
$db->Execute($query);
$query = "INSERT INTO promojeuzoombo.cms_content_props (content_id, type, prop_name) VALUES ('$content_id', 'string', 'extra1')";
$db->Execute($query);
$query = "INSERT INTO promojeuzoombo.cms_content_props (content_id, type, prop_name) VALUES ('$content_id', 'string', 'extra2')";
$db->Execute($query);
$query = "INSERT INTO promojeuzoombo.cms_content_props (content_id, type, prop_name) VALUES ('$content_id', 'string', 'extra3')";
$db->Execute($query);
$query = "INSERT INTO rel_id_zoom_candidat_id_cms_content (id_zoom_candidat, id_cms_content) VALUES ('$param1', '$content_id')";
$db->Execute($query);
//enregistrement suivant
$content_id ++;
$item ++;
$hie += 1/10000;
$dbresult->MoveNext();
}
if ($dbresult) $dbresult->Close();