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 'Вы должны зарегистрироваться для добавления комментариев';
}
?>
Скачать
Примечания
У вас нет прав на изменение этой страницы.