[pastacode lang=»markup» manual=»%3Cscript%3E%0AjQuery(function(%24)%7B%0A%20%20%20%20%24(‘.logo_container%20a’).attr(‘href’%2C’https%3A%2F%2Fwww.gov.co’)%3B%0A%7D)%3B%0A%3C%2Fscript%3E» message=»» highlight=»» provider=»manual»/]

📂 REPOSITORIO DOCUMENTAL ISP

Sistema de Gestión Documental - Contrato de Fomento

0 Archivos totales
0 MB Espacio usado
Hoy Última actividad
\nDeny from all\n"); } // Registrar el hook de activación register_activation_hook(__FILE__, 'crear_directorios_repositorio'); // AJAX para subir archivos add_action('wp_ajax_subir_archivo_repositorio', 'manejar_subida_archivo'); add_action('wp_ajax_nopriv_subir_archivo_repositorio', 'manejar_subida_archivo_noauth'); function manejar_subida_archivo() { // Verificar nonce y permisos if (!wp_verify_nonce($_POST['nonce'], 'repositorio_nonce') || !current_user_can('upload_files')) { wp_die('Acceso no autorizado'); } $carpeta_id = intval($_POST['carpeta_id']); $archivos = $_FILES['archivos']; // Validar carpeta if ($carpeta_id < 1 || $carpeta_id > 9) { wp_send_json_error('Carpeta inválida'); } // Directorio destino $upload_dir = wp_upload_dir(); $destino = $upload_dir['basedir'] . "/repositorio-isp/carpeta-{$carpeta_id}/"; $resultados = array(); // Procesar cada archivo foreach ($archivos['name'] as $index => $name) { if ($archivos['error'][$index] === UPLOAD_ERR_OK) { $tmp_name = $archivos['tmp_name'][$index]; $nombre_final = sanitize_file_name($name); $destino_final = $destino . $nombre_final; // Mover archivo if (move_uploaded_file($tmp_name, $destino_final)) { // Registrar en base de datos $archivo_id = registrar_archivo_db($carpeta_id, $nombre_final, $destino_final); $resultados[] = array( 'success' => true, 'id' => $archivo_id, 'nombre' => $nombre_final, 'url' => str_replace($upload_dir['basedir'], $upload_dir['baseurl'], $destino_final) ); } } } wp_send_json_success($resultados); } function manejar_subida_archivo_noauth() { wp_send_json_error('Debes iniciar sesión'); } // Registrar archivo en la base de datos function registrar_archivo_db($carpeta_id, $nombre, $ruta) { global $wpdb; $tabla = $wpdb->prefix . 'repositorio_archivos'; $wpdb->insert($tabla, array( 'carpeta_id' => $carpeta_id, 'nombre' => $nombre, 'ruta' => $ruta, 'tamaño' => filesize($ruta), 'usuario_id' => get_current_user_id(), 'fecha_subida' => current_time('mysql') )); return $wpdb->insert_id; } // Crear tabla en la base de datos function crear_tabla_repositorio() { global $wpdb; $charset_collate = $wpdb->get_charset_collate(); $tabla = $wpdb->prefix . 'repositorio_archivos'; $sql = "CREATE TABLE IF NOT EXISTS $tabla ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, carpeta_id INT NOT NULL, nombre VARCHAR(255) NOT NULL, ruta TEXT NOT NULL, tipo VARCHAR(50), tamaño BIGINT, usuario_id BIGINT UNSIGNED NOT NULL, fecha_subida DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY carpeta_id (carpeta_id), KEY usuario_id (usuario_id), KEY fecha_subida (fecha_subida) ) $charset_collate;"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } // Shortcode para insertar el repositorio add_shortcode('repositorio_isp_documental', 'mostrar_repositorio_isp'); function mostrar_repositorio_isp() { // Solo mostrar si el usuario tiene permiso if (!current_user_can('read')) { return '

Debes iniciar sesión para acceder al repositorio.

'; } ob_start(); ?>
Ir al contenido