Skip to content

Commit

Permalink
список наблюдения за книгами
Browse files Browse the repository at this point in the history
Список наблюдения (/polka/watch) предназначен для отслеживания того,
какие наблюдаемые книги были удалены или заменены на новую версию. На
странице книги также добавлена ссылка (следить).
  • Loading branch information
md2 committed Oct 6, 2009
1 parent 3894555 commit 2dd07e8
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 2 deletions.
1 change: 1 addition & 0 deletions book.inc
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ document.write(\'<script type="text/javascript" charset="windows-1251" src="ht\'
$seqtxt .= "<a href=/s/$seq->SeqId>$seq->SeqName</a>" ;
}
$r .= $seqtxt; if (libcanedit($b)) $r .= " &nbsp; <a href=/b/$b/edit>(исправить)</a> $block";
$r .= "&nbsp;<a href=/polka/watch/add/$b>(следить)</a>";
$r .= "<br>";
$img = '';
// if ($book->FileType == 'fb2') {
Expand Down
2 changes: 1 addition & 1 deletion debian/postrm
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ case "$1" in
ln -s /etc/drupal/6/htaccess /usr/share/drupal6/.htaccess
fi
for t in booklib libactions libanode libavtor libavtoraliase \
libavtorname libblocked libbnode libbook libcache \
libavtorname libblocked libbnode libbook libbookwatch libcache \
libcache1 libcacheid libdonations libfilename \
libgenre libgenrelist libjoinedbooks liblog libmass \
libpolka libpolkarate libquality librate libreaded \
Expand Down
45 changes: 44 additions & 1 deletion polka.inc
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ function libPolka() {
if (!$u || !user_access('пользоваться полкой'))
return "У вас нет доступа к книжной полке. Извините.";

$r = "<a href=/polka/rated>Оценки</a> &nbsp; <a href=/polka/readed>Прочитано</a> &nbsp; <a href='/polka'>Впечатления</a> &nbsp; <a href=/polka/friends>Единомышленники</a> &nbsp; <a href=/polka/friends/books>Советы единомышленников</a><br><br>";
$r = "<a href=/polka/rated>Оценки</a> &nbsp; <a href=/polka/readed>Прочитано</a> &nbsp; <a href='/polka'>Впечатления</a> &nbsp; <a href=/polka/friends>Единомышленники</a> &nbsp; <a href=/polka/friends/books>Советы единомышленников</a> &nbsp; <a href=/polka/watch>Наблюдаемые книги</a><br><br>";

switch (arg(1)) {
case 'watch':
return $r.libBookWatch($u);
case readed:
return $r.libPolkaReaded($u);
case rated:
Expand Down Expand Up @@ -331,3 +333,44 @@ $link
exit;
}

function libBookWatch($u) {
switch(arg(2)) {
case 'add':
$id = addslashes(arg(3));
if (!$id) $id = addslashes($_POST['id']);
if (!($id = Sel("BookId FROM libbook WHERE BookId = %d", $id)))
$r .= "<b style='color:red;'>Нет такой книги.</b><br><br>";
else {
Insert('libbookwatch', 'UserId, BookId', "$u, $id");
$r .= "<span style='color:green;'>Книга $id добавлена в список наблюдения.</span><br><br>";
}
break;
case 'del':
$id = addslashes(arg(3));
if (!($id = Sel("BookId FROM libbookwatch WHERE BookId = %d", $id)))
$r .= "<b style='color:red;'>Нет такой книги в списке наблюдения.</b><br><br>";
else {
Delete("libbookwatch WHERE UserId = %d AND BookId = %d", $u, $id);
$r .= "<span style='color:green;'>Книга $id удалена из списка наблюдения.</span><br><br>";
}
break;
}
$r .= "<h3>Наблюдаемые книги</h3>";
$r .= "<br><form method=POST action=/polka/watch/add>BookId: <input name=id size=15/>&nbsp;<input type=submit value='Добавить'/></form><br>";
$sth = SELECT ("b.BookId, Title, Deleted FROM libbookwatch bw, libbook b WHERE bw.UserId = %d AND bw.BookId = b.BookId", $u);
while ($a1 = dbf($sth)) {
$r .= "<a href=/polka/watch/del/$a1->BookId>[-]</a>&nbsp;<a href=/b/$a1->BookId>$a1->Title</a>";
if ($a1->Deleted & 1) {
$goodid = Sel("GoodId FROM libjoinedbooks WHERE BadId = %d", $a1->BookId);
if (!$goodid)
$r .= " - удалена";
else {
$title2 = Sel("Title FROM libbook WHERE BookId = %d", $goodid);
$r .= " - заменена на <a href=/b/$goodid>$title2</a>";
}
}
$r .= "<br>";
}
return $r;
}

15 changes: 15 additions & 0 deletions schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,21 @@ CREATE TABLE `libbook` (
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
SET character_set_client = @saved_cs_client;

--
-- Table structure for table `libbookwatch`
--

DROP TABLE IF EXISTS `libbookwatch`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `libbookwatch` (
`UserId` int(11) NOT NULL,
`BookId` int(11) NOT NULL,
PRIMARY KEY (`UserId`,`BookId`),
KEY `UserId` (`UserId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
SET character_set_client = @saved_cs_client;

--
-- Table structure for table `libcache`
--
Expand Down

0 comments on commit 2dd07e8

Please sign in to comment.