-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathauthor.php
executable file
·142 lines (142 loc) · 7.74 KB
/
author.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?php
/***************************************************************************************************
* Скрипт: манипуляция привязками книги к авторам
***************************************************************************************************
* Version : 1.0 stable
* Released : 05-feb-2013
* Last Modified : 21-feb-2013
* Author : O.G <oleg_gunyakov@mail.ru>
***************************************************************************************************
* Лицензия GPL v2
***************************************************************************************************
* Пример работы скрипта http://t-library.org.ua
***************************************************************************************************
* Для любых пожеланий или баг отчетах пишите мне : oleg_goodzon@mail.ru
***************************************************************************************************/
//---------------------------------------------------------------------------------------------------------------
//Первоначальная инициализация
//---------------------------------------------------------------------------------------------------------------
require_once "initd.php";
//---------------------------------------------------------------------------------------------------------------
//Подключение дополнительных модулей
//---------------------------------------------------------------------------------------------------------------
require_once "extra/readValue.php";
//----------------------------------------------------------------------------------------------------------------
//Если пользователю разрешено редактировать книги
//---------------------------------------------------------------------------------------------------------------
if ($objOptions -> getOption("BookEdit") == "yes") {
//Если переданные данные имеют цифровой формат
if (readValueNum("authorID") && readValueNum("bookID")) {
//Если пользователю разрешено редактировать все книги
if ($objOptions -> getOption("BookEditAll") == "yes") {
//Проверяем наличие книги в БД
$data = $objDB -> select("SELECT * FROM booksList WHERE ID = " . readValue("bookID") . " AND approved LIKE 'no';");
}
//Если пользователю запрещено редактировать все книги
else {
//Проверяем наличие книги в БД и что книга принадлежит пользователю
$data = $objDB -> select("SELECT * FROM booksList WHERE ID = " . readValue("bookID") . " AND userID = " . $objSession -> getUserID() . " AND approved LIKE 'no';");
}
//Если проверки книги прошли успешно
if ($data) {
//Прожуем получить привязку книги к автору
$data = $objDB -> select("SELECT * FROM booksAuthorList WHERE bookID = " . readValue('bookID') . " AND authorID = " . readValue("authorID") . ";");
//Переключаемся между событиями
switch(readValue('action')) {
//Если событие: "Добавить привязку"
case "addToBook" :
//Если привязки не существует в БД
if (!$data) {
//Проверяем наличие автора в БД
$data = $objDB -> select("SELECT * FROM authorList WHERE ID = " . readValue('authorID') . ";");
//Если автор существует
if ($data) {
//Считем кол-во привязок авторов к ниге
$data = $objDB -> select("SELECT COUNT(ID) from booksAuthorList WHERE bookID = " . readValue('bookID') . ";");
//Если кол-во привязок меньше разрешенного
if (@$data[0]['COUNT(ID)'] < MAX_AUTHOR_COUNT) {
//Если удалось добавить привязку в БД
if ($objDB -> insert("booksAuthorList", Array("bookID" => readValue('bookID'), "authorID" => readValue('authorID')))) {
//Увеличиваем счетчик книг для автора на 1
$objDB -> select("UPDATE authorList SET bookCount = bookCount + 1 WHERE ID = " . readValue("authorID"));
//Выводим сообщение об этом
$objTheme -> success("{LANG_ADD_TRUE}");
}
//Если не удалось добавить привязку в БД
else {
//Выводим сообщение об этом
$objTheme -> error("{LANG_ADD_FALSE}");
}
}
//Если кол-во привязок больше либо равно разрешеному
else {
//Выводим сообщение об этом
$objTheme -> error("{LANG_LIMIT_REACHED}");
}
}
//Если автор не существует
else {
//Выводи сообщение об этом
$objTheme -> warning("{LANG_LINE_EMPTY}");
}
}
//Если привязка уже существует в БД
else {
//Выводим сообщение об этом
$objTheme -> warning("{LANG_LINE_HAVE}");
}
break;
//Если событие: "Удалить привязку"
case "delFromBook" :
//Если привязка существует
if ($data) {
//Если удаление привязки выполнено успешно
if ($objDB -> delete("booksAuthorList", Array("bookID" => readValue("bookID"), "authorID" => readValue("authorID")))) {
//Уменьшаем счетчик книг автора на 1
$objDB -> select("UPDATE authorList SET bookCount = bookCount - 1 WHERE ID = " . readValue("authorID"));
//Выводим сообщение об этом
$objTheme -> success("{LANG_DEL_TRUE}");
}
//Если удаление привязки не выполнено успешно
else {
//Выводим сообщение об этом
$objTheme -> error("{LANG_DEL_FALSE}");
}
}
//Если привязки нет в БД
else {
//Выводим сообщение об этом
$objTheme -> warning("{LANG_LINE_EMPTY}");
}
break;
//Если событие не определенно
default :
//Выводим сообщение об этом
$objTheme -> warning("{LANG_ERROR_READ_FORM}");
break;
}
}
//Если проверки книг прошли не успешно
else {
//Выводим сообщение об этом
$objTheme -> warning("{LANG_HAVE_NO_ELEMENT}");
}
}
//Если переданные данные имеют другой формат
else {
//Выводим сообщение об этом
$objTheme -> warning("{LANG_ERROR_READ_FORM}");
}
}
//----------------------------------------------------------------------------------------------------------------
//Если пользователю запрещено редактировать книги
//----------------------------------------------------------------------------------------------------------------
else {
//Выводим сообщение об этом
$objTheme -> warning("{LANG_EDIT_PROHIBITED}");
}
//---------------------------------------------------------------------------------------------------------------
//Вывод шаблона в браузер и очистка памяти
//---------------------------------------------------------------------------------------------------------------
require_once "end.php";
?>