Поиск файла в админке модуля Files (для Slaed 2.1)
Цитата | Мне очень часто приходится редактировать файлы на сайте (с выходом новых версий софта). Так как файлов очень много, то из Админки найти нужный файл довольно затруднительно. Проше перейти в пользовательскую часть и там в нужной категории найти нужный файл и нажать Редактировать. Много лишних действий.
Помогите перенести функцию поиска файлов из модуля Files в Админку. |
Строго говоря это даже не поиск получится, а установка фильтра на имя.
Итак, редактируем файл /modules/Files/admin/index.php
1. Функция function FilesNavi()
Сразу после строки PHP - Код | 1 2 3
| <?php OpenTable(); ?> |
создадим такую простенькую форму для ввода искомого имени
PHP - Код | 1 2 3 4 5 6 7
| <?php echo "<form name="filtr" action="".$admin_file.".php">" ."<input type="hidden" name="op" value="files">" ."<input type="text" name="filtr_namef" value="$filtr_namef"> " ."<input type="submit" value="GO!">" ."</form>"; ?> |
Поскольку по умолчанию форма у нас передаст переменную методом GET пропишем $filtr_namef в глобальных, что бы после выполнения поиска у нас сохранилось искомое выражение.
Вот что в итоге получилось:
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?php function FilesNavi() { global $admin_file, $filtr_namef; GraphicAdmin(); OpenTable(); echo "<form name="filtr" action="".$admin_file.".php">" ."<input type="hidden" name="op" value="files">" ."<input type="text" name="filtr_namef" value="$filtr_namef"> " ."<input type="submit" value="GO!">" ."</form>"; echo "<center><font class="title">"._FILESADMIN."</font> ."[ <a href="".$admin_file.".php?op=files">"._HOME."</a>" ." | <a href="".$admin_file.".php?op=add_files">"._ADD."</a>" ." | <a href="".$admin_file.".php?op=cat_files">"._CATEGORIES."</a>" ." | <a href="".$admin_file.".php?op=new_files">"._ADDNEWFILES."</a>" ." | <a href="".$admin_file.".php?op=brocen_files">"._ADDBROCFILES."</a>" ." | <a href="".$admin_file.".php?op=FilesConf">"._PREFERENCES."</a> ]</center>"; CloseTable(); } ?> |
2. Функция function files()
Во-первых в глобальные добавим $filtr_namef, что бы принять искомое из формы.
Далее после вызова меню (строка FilesNavi();) добавим такой код, формирующий дополнения к запросам в базу на формирование списка файлов и подсчета количества файлов в списке, а так же дополнение для функции нумерации страниц (что бы передавать искомое при переходе на другие страницы списка).
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12
| <?php $filtr_namef = text_filter($filtr_namef, 2); if ($filtr_namef!="") { $dop_filtr1 = " AND f.title LIKE '%$filtr_namef%' "; $dop_filtr2 = " AND title LIKE '%$filtr_namef%' "; $dop_put="filtr_namef=$filtr_namef&"; } else { $dop_filtr1 = ""; $dop_filtr1 = ""; $dop_put=""; } ?> |
И последним шагом раздадим $dop_filtr1, $dop_filtr2 и $dop_put своим запросам и функции.
PHP - Код | 1 2 3
| <?php $result = $db->sql_query("SELECT f.lid, f.cid, f.title, f.date, f.ip_sender, c.cid, c.title FROM ".$prefix."_files AS f LEFT JOIN ".$prefix."_files_categories AS c ON (f.cid=c.cid) WHERE status!='0' $dop_filtr1 ORDER BY f.lid DESC LIMIT $offset, $storynum"); ?> |
PHP - Код | 1 2 3
| <?php list($numstories) = $db->sql_fetchrow($db->sql_query("SELECT Count(lid) FROM ".$prefix."_files WHERE status!='0' $dop_filtr2 ")); ?> |
PHP - Код | 1 2 3
| <?php num_page($module_name, $numstories, $numpages, $storynum, "".$dop_put."op=files&"); ?> |
В итоге получим во такую функцию:
Код | 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
| function files() {
global $prefix, $db, $admin_file, $pagenum, $filtr_namef;
include("header.php");
FilesNavi();
$filtr_namef = text_filter($filtr_namef, 2);
if ($filtr_namef!="") {
$dop_filtr1 = " AND f.title LIKE '%$filtr_namef%' ";
$dop_filtr2 = " AND title LIKE '%$filtr_namef%' ";
$dop_put="filtr_namef=$filtr_namef&";
} else {
$dop_filtr1 = "";
$dop_filtr1 = "";
$dop_put="";
}
$storynum = 25;
$pagenum = (!intval($pagenum)) ? 1 : intval($pagenum);
$offset = ($pagenum-1) * $storynum;
$offset = intval($offset);
$result = $db->sql_query("SELECT f.lid, f.cid, f.title, f.date, f.ip_sender, c.cid, c.title FROM ".$prefix."_files AS f LEFT JOIN ".$prefix."_files_categories AS c ON (f.cid=c.cid) WHERE status!='0' $dop_filtr1 ORDER BY f.lid DESC LIMIT $offset, $storynum");
if ($db->sql_numrows($result) > 0) {
OpenTable();
echo "<center><font class="option">"._FILESADMIN."</font></center><br />"
."<script language="JavaScript" type="text/javascript" src="javascripts/SortTable.js"></script><table width="100%" border="0" cellpadding="3" cellspacing="1" class="sort" id="sort_id"><tr><th>"._ID."</th><th>"._TITLE."</th><th>"._CATEGORY."</th>"
."<th>"._DATE."</th><th>"._IP."</th><th>"._FUNCTIONS."</th></tr>";
while (list($lid, $cid, $title, $date, $ip_sender, $ccid, $ctitle) = $db->sql_fetchrow($result)) {
$ip_sender = ($ip_sender) ? $ip_sender : ""._NO."";
echo "<tr class="bgcolor1"><td align="center">".$lid."</td>"
."<td>".$title."</td>"
."<td>".$ctitle."</td>"
."<td align="center">".$date."</td>"
."<td align="center">".$ip_sender."</td>"
."<td align="center"><a href="".$admin_file.".php?op=edit_files&lid=$lid" title=""._EDIT.""><img src="images/edit.gif" border="0" alt=""._EDIT.""></a> <a href="".$admin_file.".php?op=delit_file&lid=$lid" title=""._DELETE.""><img src=images/delete.gif border="0" alt=""._DELETE.""></a></td></tr>";
}
echo "</table>";
CloseTable();
list($numstories) = $db->sql_fetchrow($db->sql_query("SELECT Count(lid) FROM ".$prefix."_files WHERE status!='0' $dop_filtr2 "));
$numpages = ceil($numstories / $storynum);
num_page($module_name, $numstories, $numpages, $storynum, "".$dop_put."op=files&");
}
include("footer.php");
} |
Дата публикации: 16.02.2007 Прочитано: 11862 раз |