PhpIrbis

Форк
0
/
Ebs.php 
252 строки · 7.1 Кб
1
<meta charset="UTF-8">
2
<style>
3
    body, table, td {
4
        font: normal 12px Arial;
5
    }
6

7
    .title1 {
8
        font: bold small-caps 18px Arial;
9
        text-align: center;
10
    }
11

12
    .title2 {
13
        font: bold small-caps 32px Arial;
14
        color: #003edf;
15
        text-align: center;
16
    }
17

18
    #searchForm {
19
        font: normal 12px Arial;
20
        padding-top: 2mm;
21
    }
22

23
    .searchTable {
24
        margin: 0 auto;
25
        width: 620px;
26
    }
27

28
    .navTable {
29
        margin: 0 auto;
30
        width: 750px;
31
    }
32

33
    .navTable a {
34
        font: bold 16px Arial;
35
        text-decoration: none;
36
    }
37

38
    .searchItem {
39
        font: normal 12px Arial;
40
        width: 100%;
41
    }
42

43
    #searchButton {
44
        width: 90%;
45
    }
46

47
    .inventory {
48
        font-weight: bold;
49
        color: #003edf;
50
        text-decoration: underline;
51
    }
52

53
    .ui-tooltip {
54
        background-color: #003edf;
55
        color: white;
56
        -webkit-box-shadow: none;
57
        box-shadow: none;
58
        border: none;
59
    }
60

61
    .ui-autocomplete {
62
        font: normal 12px Arial;
63
        position: absolute;
64
        top: 0;
65
        left: 0;
66
        cursor: default;
67
    }
68
</style>
69

70
<?php
71

72
require_once '../Source/PhpIrbis.php';
73

74
try {
75
    $databases = array("IBIS", "PERIO", "NTD");
76

77
    $term1   = $_REQUEST['termBox1'];
78
    $value1  = $_REQUEST['valueBox1'];
79
    $trim1   = $_REQUEST['trimBox1'];
80
    $term2   = $_REQUEST['termBox2'];
81
    $value2  = $_REQUEST['valueBox2'];
82
    $trim2   = $_REQUEST['trimBox2'];
83
    $term3   = $_REQUEST['termBox3'];
84
    $value3  = $_REQUEST['valueBox3'];
85
    $trim3   = $_REQUEST['trimBox3'];
86
    $format  = $_REQUEST['formatBox'];
87

88
    // Подключаемся к серверу
89
    $connection = new Irbis\Connection();
90
    $connectString = 'host=127.0.0.1;user=librarian;password=secret;';
91
    $connection->parseConnectionString($connectString);
92

93
    if (!$connection->connect()) {
94
        echo "Не удалось подключиться!";
95
        die(1);
96
    }
97

98
    $ui = new Irbis\UI($connection);
99

100
    echo "<form action='Ebs.php' method='post' accept-charset='UTF-8' name='searchForm' id='searchForm'>" . PHP_EOL;
101
    echo "<table class='searchTable'>" . PHP_EOL;
102

103
    $scenarios = $ui->getSearchScenario();
104

105
    // Первая строка поиска
106
    echo "<tr>" . PHP_EOL;
107
    echo "<td>&nbsp;</td>" . PHP_EOL;
108
    echo "<td>" . PHP_EOL;
109
    $ui->listSearchScenario('termBox1', $scenarios, 'searchItem', 0, $term1);
110
    echo "</td>" . PHP_EOL;
111
    echo "<td>" . PHP_EOL;
112
    echo "<input name='valueBox1' type='text' class='searchItem' autocomplete='off' value='$value1'>";
113
    echo "</td>" . PHP_EOL;
114
    echo "<td>" . PHP_EOL;
115
    echo "<span class='searchItem'>";
116
    echo "<input name='trimBox1' type='checkBox' checked='checked'>";
117
    echo "<label for='trimBox1'>Усечение</label>";
118
    echo "</span>" . PHP_EOL;
119
    echo "</td>" . PHP_EOL;
120
    echo "</tr>" . PHP_EOL;
121

122
    // Вторая строка поиска
123
    echo "<tr>" . PHP_EOL;
124
    echo "<td>" . PHP_EOL;
125
    echo "<select name='andOr2'>";
126
    echo "<option value='*' selected>и</option>";
127
    echo "<option value='+'>или</option>";
128
    echo "</select>" . PHP_EOL;
129
    echo "</td>" . PHP_EOL;
130
    echo "<td>" . PHP_EOL;
131
    $ui->listSearchScenario('termBox2', $scenarios, 'searchItem', 1, $term2);
132
    echo "</td>" . PHP_EOL;
133
    echo "<td>" . PHP_EOL;
134
    echo "<input name='valueBox2' type='text' class='searchItem' autocomplete='off' value='$value2'>";
135
    echo "</td>" . PHP_EOL;
136
    echo "<td>" . PHP_EOL;
137
    echo "<span class='searchItem'>";
138
    echo "<input name='trimBox2' type='checkBox' checked='checked'>";
139
    echo "<label for='trimBox2'>Усечение</label>";
140
    echo "</span>";
141
    echo "</td>" . PHP_EOL;
142
    echo "</tr>" . PHP_EOL;
143

144
    // Третья строка поиска
145
    echo "<tr>" . PHP_EOL;
146
    echo "<td>" . PHP_EOL;
147
    echo "<select name='andOr3'>";
148
    echo "<option value='*' selected>и</option>";
149
    echo "<option value='+'>или</option>";
150
    echo "</select>" . PHP_EOL;
151
    echo "</td>" . PHP_EOL;
152
    echo "<td>" . PHP_EOL;
153
    $ui->listSearchScenario('termBox3', $scenarios, 'searchItem', 2, $term3);
154
    echo "</td>" . PHP_EOL;
155
    echo "<td>" . PHP_EOL;
156
    echo "<input name='valueBox3' type='text' class='searchItem' autocomplete='off' value='$value3'>";
157
    echo "</td>" . PHP_EOL;
158
    echo "<td>" . PHP_EOL;
159
    echo "<span class='searchItem'>";
160
    echo "<input name='trimBox3' type='checkBox' checked='checked'>";
161
    echo "<label for='trimBox3'>Усечение</label>";
162
    echo "</span>";
163
    echo "</td>" . PHP_EOL;
164
    echo "</tr>" . PHP_EOL;
165

166
    echo "<tr>" . PHP_EOL;
167
    echo "<td>&nbsp;</td>" . PHP_EOL;
168
    echo "<td>Формат выдачи: </td>" . PHP_EOL;
169
    echo "<td>" . PHP_EOL;
170
    echo "<select name='formatBox' class='searchItem'>" . PHP_EOL;
171
    echo "<option value='@brief'>Краткий</option>" . PHP_EOL;
172
    echo "<option value='@' selected>Полный</option>" . PHP_EOL;
173
    echo "<option value='@infow_h'>Информационный</option>" . PHP_EOL;
174
    echo "</select>" . PHP_EOL;
175
    echo "</td>" . PHP_EOL;
176
    echo "</tr>" . PHP_EOL;
177

178
    echo "<tr>" . PHP_EOL;
179
    echo "<td colspan='4'>" . PHP_EOL;
180
    echo "<input type='submit' name='searchButton' id='searchButton' value='Поиск'>";
181
    echo "</td>" . PHP_EOL;
182
    echo "</tr>" . PHP_EOL;
183

184
    echo "</table>" . PHP_EOL;
185
    echo "</form>" . PHP_EOL;
186

187
    echo "<div style='margin: 0 5%'>" . PHP_EOL;
188
    echo "<span id='resultBox'>" . PHP_EOL;
189

190
    $searchExpression = '';
191

192
    if ($value1) {
193
        $searchExpression = '"' . $term1 . $value1 . ($trim1 ? '$' : '') . '"';
194
    }
195

196
    if ($value2) {
197
        if ($searchExpression) {
198
            $searchExpression = $searchExpression . ' ' . $_REQUEST['andOr2'] . ' ';
199
        }
200
        $searchExpression = $searchExpression . '"' . $term2 . $value2
201
            . ($trim2 ? '$' : '') . '"';
202
    }
203

204
    if ($value3) {
205
        if ($searchExpression) {
206
            $searchExpression = $searchExpression . ' ' . $_REQUEST['andOr3'] . ' ';
207
        }
208
        $searchExpression = $searchExpression . '"' . $term3 . $value3
209
            . ($trim3 ? '$' : '') . '"';
210
    }
211

212
    if ($searchExpression) {
213

214
        // TODO $searchExpression += "* (HAVE951)"
215

216
        $foundAll = array();
217
        error_reporting(E_ALL);
218
        $format = $format ?: "@";
219

220
        foreach ($databases as $db)
221
        {
222
            $connection->database = $db;
223
            $parameters = new Irbis\SearchParameters();
224
            $parameters->expression = $searchExpression;
225
            $parameters->numberOfRecords = 1000;
226
            $parameters->format = $format;
227
            $found = $connection->searchEx($parameters);
228
            $found = Irbis\FoundLine::toDescription($found);
229
            $foundAll += $found;
230
        }
231

232
        sort($foundAll);
233

234
        echo "<p style='color: blue;text-align: center;'>Найдено записей: " . count($found) . "</p>";
235

236
        echo "<ol>";
237
        foreach ($foundAll as $item) {
238
            echo "<li>$item</li>";
239
        }
240
        echo "</ol>";
241
    }
242

243
    echo "</span>" . PHP_EOL;
244
    echo "</div>" . PHP_EOL;
245

246
    $connection->disconnect();
247
}
248
catch (Exception $exception) {
249
    echo "ОШИБКА: " . $exception;
250
}
251

252
?>
253

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.