Page 1 of 1

[resolu] Comment créer un GCB (global content bloc) via UDT ?

Posted: Thu Apr 08, 2010 11:57 am
by athena_pallas
Bonjour,

Tout est dans le titre  ;D

Je cherche depuis des jours dans les forums tant EN que FR pour trouver les instructions nécessaires pour créer automatiquement un bloc de contenu global et l'alimenter via un tag défini par l'utilisateur.

Via le gestionnaire d'événements, lorsque l'administrateur crée un nouvel utilisateur FEU, j'ai un UDT qui crée automatiquement une page au nom de cet utilisateur.  Ensuite, il faut créer un BCG qui porte le même nom et c'est là que ça cale.

Voici un UDT qui ne s'occupe que de la création du GCB  et qui fonctionne parfaitement

Code: Select all

global $gCms;
$db = &$gCms->GetDb();
$sql = "INSERT INTO `cms_htmlblobs` (`htmlblob_name` , `html` ) VALUES ( 'htmlblob_name', 'contenu html')";
$result = $db->Execute($sql);
Voici l'UDT qui ne s'occupe que de la création de la page et qui fonctionne également parfaitement

Code: Select all

global $gCms;
// Lets add a new page of content for the user
$alias = $params['name'];

$content= $alias;
 $parentid = -1;
  $contentops =& $gCms->GetContentOperations();
  $contentobj = $contentops->CreateNewContent('content');
  $contentobj->SetOwner("1");
  $contentobj->SetCachable(true);
  $contentobj->SetActive(true);
  $contentobj->SetShowInMenu(true);
  $contentobj->SetLastModifiedBy("1");
  $contentobj->SetMetadata('');
$contentobj->SetHierarchyPath('prive/' . $alias);

  $contentobj->SetName($alias);
  $contentobj->SetAlias($alias);
  $contentobj->SetPropertyValue('content_en', $content);
  $contentobj->SetTemplateId(23);
  $contentobj->SetParentId(56);
  $error = $contentobj->ValidateData();
  if ($error === FALSE) {
    $contentobj->Save();
    global $gCms;
    $contentops =& $gCms->GetContentOperations();
    $contentops->SetAllHierarchyPositions();
    return $contentobj;
  } else {
    print_r($error);
    die("dying");
  }

$contentops =& $gCms->GetContentOperations();
$page = $contentops->LoadContentFromId(15, true);
echo $page->Show();
Par contre, si je les appelle l'un à la suite de l'autre, le bloc de contenu global n'est pas créé.

[resolu : après upgrade du CMS et de tous les modules, ça fonctionne]

Merci pour vos réponses.