public function render_value_field($html = true) { global $DOMAIN_NAME; $nc_core = nc_Core::get_object(); $ret = "<input name='" . $this->get_field_name() . "' type='file' style='width:100%;'/>"; // старый файл if ($this->value) { $filepath = $nc_core->SUB_FOLDER . $nc_core->HTTP_FILES_PATH . $this->value['path']; $ret .= "<input type='hidden' name='" . $this->get_field_name('old') . "' value='" . $this->value['all'] . "' /><br/>\r\n"; $ret .= NETCAT_MODERATION_FILES_UPLOADED . ": "; $ret .= "<a target='_blank' href='http://" . $DOMAIN_NAME . $this->value['path'] . "'>" . $this->value['name'] . "</a> (" . nc_bytes2size($this->value['size']) . ")"; $ret .= " <input id='kill" . $this->name . "' type='checkbox' name='" . $this->get_field_name('kill') . "' value='1' />\n <label for='kill" . $this->name . "'>" . NETCAT_MODERATION_FILES_DELETE . "</label>\r\n"; } if ($html) { $ret = "<div class='ncf_value'>" . $ret . "</div>\n"; } return $ret; }
private function get_edit_form() { $result = null; $this->max_priority = 0; if (isset($this->multifield->records[0]->Field_ID)) { $result .= self::$dnd; $result .= "<script type='text/javascript'>\n \$nc(document).ready(function() {\n \$nc('#table{$this->multifield->records[0]->Field_ID}').tableDnD({\n onDragClass: 'DTDClass',\n dragHandle: '.DTD'\n });\n });\n </script>"; $result .= "<table cellspacing='0' cellpadding='2' id='table{$this->multifield->records[0]->Field_ID}'>"; foreach ($this->multifield->records as $record) { $file_name = $this->get_file_name($record->Path); if ($this->max_priority < $record->Priority) { $this->max_priority = $record->Priority; } $result .= "<tr>\n <td class='DTD'>\n <div class='icons icon_type_file'></div>\n <input type='hidden' name='priority_multifile[{$record->Field_ID}][]' value='{$record->ID}' />\n </td>\n <td>"; if ($this->multifield->settings->use_name) { $result .= "{$this->multifield->settings->custom_name}: <input name='name_multifile[{$record->ID}]' value='{$record->Name}' />"; } $result .= "<a target='_blank' href='{$record->Path}'>{$file_name}</a> (" . nc_bytes2size($record->Size) . ")\n " . NETCAT_MODERATION_DELETE . " <input type='checkbox' name='del_multifile[]' value='{$record->ID}'>\n </td>\n </tr>"; } $result .= "</table>"; self::$dnd = ''; } return $result; }
public function parse_filename($filename) { global $HTTP_FILES_PATH; $info = array(); $info['ext'] = pathinfo($filename, PATHINFO_EXTENSION); $info['filename'] = pathinfo($filename, PATHINFO_FILENAME); $info['basename'] = pathinfo($filename, PATHINFO_BASENAME); $opt = explode(self::FILENAME_DIVIDER, $info['filename']); $info['type'] = $opt[0]; $info['id'] = $opt[1]; $export_file = $this->get_export_path($filename); if (file_exists($export_file)) { $info['time'] = filemtime($export_file); $info['size'] = filesize($export_file); $info['size_formated'] = nc_bytes2size($info['size']); $info['link'] = $HTTP_FILES_PATH . 'export/' . $info['basename']; } return $info; }
?> <?php echo $fm->format_name("folder", $dir_count); ?> </span> <span class="nc-label"><?php echo $file_count; ?> <?php echo $fm->format_name("file", $file_count); ?> </span> </td> <td> <span class="nc-label"><?php echo nc_bytes2size($total_size); ?> </span> </td> <td colspan="6"></td> </tr> <?php if ($parent_is_writable) { ?> <tr class='nc--blue'> <td colspan="8"> <form method='post' class='nc-form nc--horizontal' action='admin.php' enctype='multipart/form-data' id='FileManagerUpload'> <div class='nc-form-row'> <label><?php echo NETCAT_MODULE_FILEMANAGER_ADMIN_UPLOAD_FILE;
/** * Вывод поля типа Файл в альтернативных формах шаблона * @param string имя поля * @param string дополнительные свойства для <input type=file> * @param int идентификатор компонента, его стоит указывать при вызове функции т.к. в функции s_list_class() его глобальное значение будет иное * @param bool выводить описание поля или нет * @return string */ function nc_file_field($field_name, $style = "", $classID = "", $caption = false, $getData = false) { // для получения значения поля global $fldValue, $fldID; global $db, $action, $current_cc, $message, $DOMAIN_NAME, $user_table_mode, $systemTableID, $systemMessageID, $UserID; # если системные таблицы, $message другой switch ($systemTableID) { case 3: # если "пользователи" то вот так вот $message = $UserID ? $UserID : $message; break; case 2: case 4: # если другие системные таблицы $message = $systemMessageID; break; } $nc_core = nc_Core::get_object(); // текущее значение компонента if (!$classID) { $classID = $nc_core->sub_class->get_current('Class_ID'); } $show_field_errors = $classID == $nc_core->sub_class->get_current('Class_ID'); $sysTable = $systemTableID ? $systemTableID : $nc_core->component->get_by_id($classID, 'System_Table_ID'); $component = new nc_Component($classID, $sysTable); $fields = $component->get_fields(NC_FIELDTYPE_FILE); // поиск поля $field = 0; foreach ($fields as $v) { if ($v['name'] == $field_name) { $field = $v; } } // поля не существует if (!$field) { if ($show_field_errors) { trigger_error("<b>nc_file_field()</b>: Incorrect field name (" . $field_name . ")", E_USER_WARNING); } return false; } // поле не доступно для редактирования if ($field['edit_type'] == 3 || $field['edit_type'] == 2 && !nc_field_check_admin_perm()) { return false; } // вывод функции $result = ''; if (is_array($fldID)) { $t = array_flip($fldID); $value = $fldValue[$t[$field['id']]]; } $field_id = $field['id']; # вывод Caption, если нужно if ($caption) { $description = $field['description'] ? $field['description'] : $field['name']; $result .= $description . ($field['not_null'] ? " (*)" : "") . ":<br />\r\n"; } # проверим, есть ли в параметре "style", атрибуты $style_attr = nc_reg_search_html_attr($style); # прописываем параметры из $style $style_opt = ""; if (!in_array("size", $style_attr)) { $style_opt .= "size='50'"; } if ($style_opt) { $style_opt = " " . $style_opt; } # само поле $result .= "<input name='f_" . $field_name . "'" . $style_opt . ($style ? " " . $style : "") . " type='file' />\r\n"; # старое значение if ($systemTableID && $value || $action == 'change' && ($old = $GLOBALS["f_" . $field_name . "_old"])) { $system_tables = array(1 => "Catalogue", 2 => "Subdivision", 3 => "User", 4 => "Template"); $filepath = nc_file_path($systemTableID ? $system_tables[$systemTableID] : $classID, $message, $field_id, 'h_'); list($filename, $filetype, $filesize) = explode(':', $old ? $old : $value); $result .= "<input type='hidden' name='f_" . $field_name . "_old' value='" . ($old ? $old : $value) . "' /><br/>\r\n"; $result .= NETCAT_MODERATION_FILES_UPLOADED . ": "; $result .= "<a target='_blank' href='http://" . $DOMAIN_NAME . $filepath . "'>" . htmlspecialchars($filename) . "</a> (" . nc_bytes2size($filesize) . ")"; # "удалить файл", если поле не обязательно для заполнения if (!$field['not_null']) { $result .= " <input id='k" . $field_id . "' type='checkbox' name='f_KILL" . $field_id . "' value='1' /> <label for='k" . $field_id . "'>" . NETCAT_MODERATION_FILES_DELETE . "</label>\r\n"; } } return $result; }
function ShowBackUps() { global $db_path, $ADMIN_PATH, $ADMIN_TEMPLATE, $DUMP_FOLDER, $UI_CONFIG; $dir_read = dir($DUMP_FOLDER); $dir_count = dir($DUMP_FOLDER); $total = 0; $read = 0; while (($entry = $dir_count->read()) !== false) { $total++; } $total -= 2; $dir_count->close(); while (($entry = $dir_read->read()) !== false) { $entry_str = substr($entry, -4); if ($entry != "." && $entry != ".." && ($entry_str == ".tgz" || $entry_str == ".rar")) { if ($total - 1 > $read) { $read++; } $countDumps = 1; $filename = $entry; //substr($entry, 0, strlen($entry) - 20); $filesize = filesize($DUMP_FOLDER . $entry); $filetime = filemtime($DUMP_FOLDER . $entry); $table = ""; $table .= "<tr>"; $table .= "<td><font size='-1'><b><a href='" . $ADMIN_PATH . "dump.php?phase=3&file=" . $entry . "'>" . $filename . "</a></b></td>\r\n"; $table .= "<td><font size='-1'>" . date("Y-m-d H:i:s", $filetime) . "</td>"; $table .= "<td><font size='-1'>" . nc_bytes2size($filesize) . "</td>"; $table .= "<td align='center'>" . nc_admin_checkbox_simple('del[]', $entry) . "</td>"; $table .= "</tr>"; $table_arr[$filetime] = $table; } } $dir_read->close(); if ($countDumps != 1) { nc_print_status(TOOLS_DUMP_NOONE, "info"); } else { ?> <form id='backups_form' method='post'> <fieldset> <legend><?php echo TOOLS_DUMP_BACKUPLIST_HEADER; ?> </legend> <table border='0' cellpadding='0' cellspacing='0' width='100%'> <tr> <td > <table class='admin_table' width='100%'> <tr> <th width='45%'><?php echo TOOLS_DUMP_INC_ARCHIVE; ?> </th> <th width='25%'><?php echo TOOLS_DUMP_DATE; ?> </th> <th width='20%'><?php echo TOOLS_DUMP_SIZE; ?> </th> <td class='align-center'><div class='icons icon_delete' title='<?php echo CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWCATALOGUELIST_DELETE; ?> '></div></td> </tr> <?php if (is_array($table_arr) && !empty($table_arr)) { ksort($table_arr); echo join("", $table_arr); } ?> </table> </td> </tr> </table> <br> <?php } if ($countDumps) { $UI_CONFIG->actionButtons[] = array("id" => "submit", "caption" => TOOLS_DUMP_REMOVE_SELECTED, "action" => "mainView.submitIframeForm('backups_form')", "align" => "right", "red_border" => true); ?> <input type='hidden' name='phase' value='2'> <input type='submit' class='hidden'> </fieldset> </form> <?php } }
/** * Выводит список удаленных объектов * @param array поисковый фильтр */ function nc_trash_list($options = array()) { global $db, $UI_CONFIG, $ADMIN_TEMPLATE, $nc_core, $perm; $options = nc_trash_options_validate($options); $CartCount = 0; // Выбираем все данные чтобы построить пользовательские js-фильтры $trash_data = $db->get_results("\n SELECT `t`.`Type`, `t`.`Sub_Class_ID`, `t`.`Class_ID` , `t`.`Subdivision_ID`, t.`XML_Filename`, t.`XML_Filesize`, UNIX_TIMESTAMP(t.`Created`) as `created`,\n `sub`.`Subdivision_Name`, `cc`.`Sub_Class_Name`, c.`Class_Name`\n FROM `Trash_Data` as `t`\n LEFT JOIN `Class` as `c` ON `c`.`Class_ID` = `t`.`Class_ID`\n LEFT JOIN `Sub_Class` as `cc` ON `t`.`Sub_Class_ID` = `cc`.`Sub_Class_ID`\n LEFT JOIN `Subdivision` as `sub` ON `sub`.`Subdivision_ID` = `t`.`Subdivision_ID`\n GROUP BY t.`XML_Filename`\n ORDER BY `sub`.`Subdivision_Name`, `cc`.`Sub_Class_Name`", ARRAY_A); if ($db->is_error) { throw new nc_Exception_DB_Error($db->last_query, $db->last_error); } if (!empty($trash_data)) { foreach ($trash_data as $k => $v) { $CartActualSummarySize[$v['XML_Filename']] = $v['XML_Filesize']; if (!$perm->isSubClass($v['Sub_Class_ID'], MASK_DELETE)) { unset($trash_data[$k]); continue; } $CartCount++; } } if (!$nc_core->get_settings('TrashUse')) { nc_print_status(NETCAT_TRASH_TRASHBIN_DISABLED . " <a href='" . $nc_core->ADMIN_PATH . "settings.php?phase=1'>" . NETCAT_TRASH_EDIT_SETTINGS . "</a>", 'info'); } // корзина полностью пуста if (empty($trash_data)) { nc_print_status(NETCAT_TRASH_NOMESSAGES, 'info'); return; } if (!empty($CartActualSummarySize)) { echo "<div id='trash_sizeinfo'>\n " . sprintf(NETCAT_TRASH_SIZEINFO, nc_bytes2size(array_sum($CartActualSummarySize)), $nc_core->get_settings('TrashLimit')) . "\n </div>"; } $t = nc_trash_load_sub_cc($trash_data); $subdivisions = $t['subs']; $sub_classes = $t['ccs']; $cc_sub = $t['cc_sub']; $classes = $t['classes']; unset($t); echo nc_trash_search_form($subdivisions, $classes, $options); // фильтр foreach ($trash_data as $k => $v) { if ($options['sub'] && $options['sub'] != $v['Subdivision_ID'] || $options['class_id'] && $options['class_id'] != $v['Class_ID'] || $options['date_b'] && $options['date_b'] > $v['created'] || $options['date_e'] && $options['date_e'] < $v['created']) { unset($trash_data[$k]); } } if (empty($trash_data)) { nc_print_status(NETCAT_TRASH_OBJECT_NOT_FOUND, 'info'); return; } $t = nc_trash_load_sub_cc($trash_data); $subdivisions = $t['subs']; $sub_classes = $t['ccs']; $cc_sub = $t['cc_sub']; $classes = $t['classes']; unset($t); echo "<fieldset class='trash_fldst'>\n <legend>" . NETCAT_TRASH_TRASHBIN . "</legend>"; echo "<form method='post' action='index.php' name='mainForm' id='mainForm'>"; echo $nc_core->token->get_input(); echo "<input type='hidden' id='phase' name='phase' value=''>\n <input type='submit' class='hidden'>\n " . $nc_core->token->get_input(); foreach ($trash_data as $t) { $id = $t['Sub_Class_ID']; $v = $sub_classes[$id]; $sub_id = $sub_classes[$id]['sub_id']; $sub_name = $subdivisions[$sub_id]['name']; if (count($cc_sub[$sub_id]) > 1) { $sub_name .= " (" . $sub_classes[$id]['name'] . ")"; } $icon = $t['Type'] ? 'mod-comments' : 'folder-dark'; echo "<div style='margin-bottom:10px;'>\n <i class='nc-icon nc--" . $icon . "'></i>\n " . $sub_id . ". <a href='#' class='ajax_link' onclick='nc_trash_get_objects(" . $id . ", " . ($options['date_b'] + 0) . ", " . ($options['date_e'] + 0) . ", " . (int) $t['Type'] . ");return false;'>\n " . $sub_name . "</a>\n <div id='cc_" . $id . "_" . (int) $t['Type'] . "' style='margin:10px 0 0 20px;'></div>\n </div>"; } echo "</form>"; echo "</fieldset>"; echo "<script type='text/javascript'>\n\n function sumbit_form ( phase ) {\n\n document.getElementById('mainForm').phase.value = phase;\n\n parent.mainView.submitIframeForm('mainForm');\n\n return 0;\n\n }\n\n </script>\n"; // только супервизор могут очистить всю корзину if ($perm->isSupervisor()) { $UI_CONFIG->actionButtons[] = array("id" => "clean", "caption" => TOOLS_TRASH_CLEAN, "action" => "document.getElementById('mainViewIframe').contentWindow.sumbit_form(4)", "align" => "right", "red_border" => true); } return true; }
" style='margin:10px 0'> <div class="nc-progress-bar" style='width:<?php echo $size_percent; ?> %'></div> </div> </td> <td colspan="3"> <?php echo nc_bytes2size($total_size); ?> <?php echo TOOLS_DATA_BACKUP_SPACE_FROM; ?> <?php echo nc_bytes2size($export_limit_size); ?> <?php echo TOOLS_DATA_BACKUP_USED_SPACE; ?> </td> <td><a class='nc-text-red' href='<?php echo $ADMIN_PATH; ?> backup.php?mode=remove_export_files'><i class="nc-icon nc--remove"></i> <?php echo NETCAT_MODERATION_REMALL; ?> </a></td> </tr> </table> <?php
public function info() { // main information block echo "<fieldset>\n" . "<legend>\n" . "" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_TITLE . "\n" . "</legend>\n" . "<form method='post' action='admin.php' id='GetCacheMainInfo' style='padding:0; margin:0;'>\n" . "<div style='margin:10px 0; _padding:0;'>\n" . "<table class='admin_table' style='width:100%; ; border:none;'>\n" . "<col style='width:25%'/><col style='width:25%'/><col style='width:25%'/><col style='width:25%'/>\n" . "<tr>\n" . "<td>" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_HEADER_CACHE . "</td>\n" . "<td>" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_HEADER_FILES . "</td>\n" . "<td>" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_HEADER_DIRS . "</td>\n" . "<td>" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_HEADER_SIZE . "</td>\n" . "</tr>\n"; $total_cache_count = array(); foreach ($this->cache_essence as $object) { // init objects $currObject = call_user_func(array($object[0], "getObject")); // update objects stats $cache_count = $currObject->dirStat(); // count total foreach ($cache_count as $key => $value) { $total_cache_count[$key][] = $cache_count[$key]; } // info string echo "<tr>\n" . "<td>" . $object[1] . "</td>\n" . "<td>" . $cache_count[1] . "</td>\n" . "<td>" . $cache_count[0] . "</td>\n" . "<td>" . nc_bytes2size($cache_count[2]) . "</td>\n" . "</tr>"; } // total string echo "<tr>\n" . "<td>" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_TOTAL . "</td>\n" . "<td>" . array_sum($total_cache_count[1]) . "</td>\n" . "<td>" . array_sum($total_cache_count[0]) . "</td>\n" . "<td>" . nc_bytes2size(array_sum($total_cache_count[2])) . "</td>\n" . "</tr>" . "</table>\n" . "</div>\n\n"; $this->UI_CONFIG->actionButtons[] = array("id" => "submit", "caption" => NETCAT_MODULE_CACHE_ADMIN_MAININFO_UPDATE_BUTTON, "action" => "mainView.submitIframeForm('GetCacheMainInfo')"); echo "<input type='hidden' name='phase' value='3'>\n" . "<input type='hidden' name='page' value='info'>\n" . "</form>\n" . "</fieldset>\n"; // main information block echo "<fieldset>\n" . "<legend>\n" . "" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_CLEAR_TABLE . "\n" . "</legend>\n"; $cache_clear = $this->db->get_results("SELECT `Essence`, COUNT(`ID`) AS rows, ROUND( AVG(`Efficiency`), 2 ) AS Efficiency FROM `Cache_Clear` GROUP BY `Essence`", ARRAY_A); if (!empty($cache_clear)) { $cache_clear_data = array(); foreach ($cache_clear as $value) { $cache_clear_data[$value['Essence']] = array($value['rows'], $value['Efficiency']); } } echo "<div style='margin:10px 0; _padding:0;'>\n" . "<table class='admin_table' style='width:100%; ; border:none;'>\n" . "<col style='width:40%'/><col style='width:40%'/><col style='width:20%'/>\n" . "<tr>\n" . "<td>" . NETCAT_MODULE_CACHE_ADMIN_CACHE . "</td>\n" . "<td>" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_CACHE_COUNT . "</td>\n" . "<td>" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_CACHE_AVERAGE_EFFICIENCY . "</td>\n" . "</tr>"; $total_clear_count = array(); foreach ($this->cache_essence as $key => $value) { echo "<tr>\n" . "<td>" . $value[1] . "</td>\n" . "<td>" . (int) $cache_clear_data[$key][0] . "</td>\n" . "<td>" . ($cache_clear_data[$key][1] ? $cache_clear_data[$key][1] : 0) . "</td>\n" . "</tr>"; // count total if (!empty($cache_clear) && !empty($cache_clear_data[$key])) { foreach ($cache_clear_data[$key] as $k => $v) { $total_clear_count[$k][] = $v; } } } // total string echo "<tr>\n" . "<td>" . NETCAT_MODULE_CACHE_ADMIN_MAININFO_TOTAL . "</td>\n" . "<td>" . (!empty($total_clear_count) ? array_sum($total_clear_count[0]) : 0) . "</td>\n" . "<td>" . (!empty($total_clear_count) ? round(array_sum($total_clear_count[1]) / count($total_clear_count[0]), 2) : 0) . "</td>\n" . "</tr>\n" . "</table>\n"; if (!empty($cache_clear)) { echo "<form method='post' id='DropCacheClearData' action='admin.php' style='padding:0; margin:0;'>\n"; $this->UI_CONFIG->actionButtons[] = array("id" => "submit", "caption" => NETCAT_MODULE_CACHE_ADMIN_MAININFO_DROP_CLEAR_BUTTON, "action" => "mainView.submitIframeForm('DropCacheClearData')", "align" => "left", "red_border" => true); echo "<input type='hidden' name='phase' value='4'>\n" . "<input type='hidden' name='page' value='info'>\n" . "</form>"; } echo "</div>\n" . "</fieldset>\n"; return; }
} ?> <a href="#" onclick="nc_filemanagerObj.show_link_panel('<?php echo trim($dir, '/'); ?> ', 0); return false;"> <i class="nc-icon nc--hovered nc--mod-linkmanager"></i> </a> </div> <br> <?php } ?> <span class="nc-label"><?php echo nc_bytes2size(filesize($file)); ?> </span> <span class="nc-label"><?php echo date("d.m.Y H:i:s", filemtime($file)); ?> </span> <?php if ($image) { ?> <span class="nc-label"><?php echo $image[0]; ?> x<?php echo $image[1];