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(), 01000"_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 
'Вы должны зарегистрироваться для добавления комментариев';
}
?>

Скачать


Файлы, доступные на данной странице:
2009-04-27 13:39:15    (2 Кб)  demoguestbook_27_04_09.zip DemoGuestBook от 27.04.09

Примечания


У вас нет прав на изменение этой страницы.