DemoGuestBook
Общее описание
Демонстрационный сервис, который показывает, как написать простейшую гостевую книгу для QuickStart с использованием сервиса AdvOntology.
Содержит два файла:
Основной класс сервиса:
<?php
class Service_DemoGuestBook extends XcBase {
  function Service_DemoGuestBook($kernelLink) {
    $this->_localname = 'DemoGuestBook';
    $this->XcBase($kernelLink);
    $this->_kernel = $this->srvMainKernel();
  }
  // функция вызывается при установке сервиса
  function onInstall($params) {
    // создаем объект AdvOntology
    $advOnto = $this->_kernel->srvFactory("AdvOntology");
    // если объект успешно создан
    if($advOnto) {
      // добавляем тип,  куда будут записываться комменты
      $advOnto->addType("DGBComment");
      // добавляем в базу данных связь между пользователем и комментарием
      $advOnto->addLinkType(array("User", "DGBComment"), "DGBLink");
         return true;
    } else {
      return false;
    }
  }
  function onUninstall($params) {
    $advOnto = $this->_kernel->srvFactory("AdvOntology");
    $advOnto->delLinkType("DGBLink");
    $advOnto->delType("DGBComment");
    return true;
  }
}
?>
Основной экшн:
<?php
  $advOnto = $this->srvFactory("AdvOntology");
  $notes = $advOnto->getLinksByConceptIds("DGBLink", array(), 0, 1000, "_updateTime", "ASC");
  foreach($notes as $note) {
    $user = $advOnto->getConcept("User", $note["User1"]);
    $realNote = $advOnto->getConcept("DGBComment", $note["DGBComment1"]);
    echo '<b>'.$user["data"]."</b> - <i>".$note["_updateTime"]."</i><br />";
    echo $realNote["data"];
    echo '<hr />';
  }
if($this->GetUser()) {
if($_REQUEST["formsend"] == "1") {
   //echo "Форма отослана!";
   $elements = $_REQUEST["element"];
   $comId = $advOnto->addConcept("DGBComment", nl2br(htmlspecialchars($_REQUEST["element"])));
   $user = $advOnto->getConceptByData("User", $this->GetUsername());
   $userId = $user["id"];
   $advOnto->addLink("DGBLink", array("User1" => $userId, "DGBComment1" => $comId));
   $this->redirect($this->href());
} else {
   echo $this->FormOpen();
   echo '<textarea style="width: 100%;" rows="5" name="element"></textarea><br />';
   echo '<input type="hidden" name="formsend" value="1" />';
   echo '<input type="submit" value="Отправить комментарий" />';
   echo $this->FormClose();
}
} else {
  echo 'Вы должны зарегистрироваться для добавления комментариев';
}
?>
Скачать
Примечания
У вас нет прав на изменение этой страницы.
  
