<?php
/**
Plugin Name: File Manager Advanced
Plugin URI: https://wordpress.org/plugins/file-manager-advanced
Description: Cpanel for files management in wordpress
Author: wpexpertsio
Version: 6.0.0
Author URI: https://wpexperts.io
License: GPLv2
**/
if ( ! defined( 'FMA_PLUGIN_FILE' ) ) {
define( 'FMA_PLUGIN_FILE', __FILE__ );
}
/**
* Integrate Freemius SDK
*
* @package Advance File Manager
*/
if ( ! function_exists( 'fma_fs' ) ) {
// Create a helper function for easy SDK access.
function fma_fs() {
global $fma_fs;
if ( ! isset( $fma_fs ) ) {
// Include Freemius SDK.
require_once dirname( __FILE__ ) . '/vendor/freemius/start.php';
$fma_fs = fs_dynamic_init( array(
'id' => '22156',
'slug' => 'file-manager-advanced',
'premium_slug' => 'advanced-file-manager-pro',
'type' => 'plugin',
'public_key' => 'pk_0fd5cbcb84f5aa475cb00b852ceaf',
'is_premium' => false,
'has_addons' => false,
'has_paid_plans' => false,
'menu' => array(
'slug' => 'file_manager_advanced_ui',
'first-path' => 'admin.php?page=file_manager_advanced_ui',
'contact' => false,
'support' => false,
'account' => false,
),
) );
}
return $fma_fs;
}
// Init Freemius.
fma_fs();
// Signal that SDK was initiated.
do_action( 'fma_fs_loaded' );
// Hook into Freemius after_uninstall action
// This hook fires when plugin is uninstalled through Freemius SDK
add_action( 'fs_after_uninstall_file-manager-advanced', 'fma_freemius_after_uninstall', 10, 0 );
}
/**
* Loading constants
*/
require_once('constants.php');
require_once FMAFILEPATH . 'application/fma-oauth-legacy-redirect.php';
require_once FMAFILEPATH . 'application/fma-elfinder-helpers.php';
require_once FMAFILEPATH . 'application/class_fma_permissions.php';
function fma_get_installed_pro_version() {
$pro_main = function_exists( 'fma_get_pro_plugin_main_file' ) ? fma_get_pro_plugin_main_file() : '';
if ( $pro_main === '' || ! function_exists( 'get_file_data' ) ) {
return '';
}
$data = get_file_data( $pro_main, array( 'Version' => 'Version' ) );
return ! empty( $data['Version'] ) ? $data['Version'] : '';
}
if ( ! function_exists( 'fma_pro_version_notice' ) ) {
function fma_pro_version_notice() {
$dismissed_until = (int) get_user_meta( get_current_user_id(), 'fma_pro_version_notice_dismissed_until', true );
$pro_version = fma_get_installed_pro_version();
if ( ! current_user_can( 'manage_options' ) || $pro_version === '' || version_compare( $pro_version, '4.0.0', '>=' ) || $dismissed_until > time() ) {
return;
}
printf(
'<div class="notice notice-error is-dismissible fma-pro-version-notice" data-nonce="%1$s"><div class="fma-pro-version-notice__content"><div class="fma-pro-version-notice__message"><p><strong>%2$s</strong> %3$s <strong>%4$s</strong>.</p><span>%5$s</span></div><a class="button button-primary fma-pro-version-notice__action" href="%6$s" target="_blank" rel="noopener noreferrer">%7$s</a></div><style>.fma-pro-version-notice{border-left-width:4px;margin:20px 0;padding:0}.fma-pro-version-notice__content{align-items:center;display:flex;gap:16px;min-height:54px;padding:12px 42px 12px 16px}.fma-pro-version-notice__message{flex:1;min-width:220px}.fma-pro-version-notice__message p{font-size:15px;line-height:1.4;margin:0 0 2px}.fma-pro-version-notice__message span{color:#50575e;font-size:13px;line-height:1.4}.fma-pro-version-notice__action{flex:0 0 auto;margin:0;white-space:nowrap}@media screen and (max-width:600px){.fma-pro-version-notice__content{align-items:flex-start;flex-direction:column;gap:10px;padding-right:42px}.fma-pro-version-notice__action{width:100%%}}</style></div>',
esc_attr( wp_create_nonce( 'fma_dismiss_pro_version_notice' ) ),
esc_html__( 'File Manager Advanced 6.0.0', 'file-manager-advanced' ),
esc_html__( 'requires', 'file-manager-advanced' ),
esc_html__( 'File Manager Advanced Pro 4.0.0', 'file-manager-advanced' ),
esc_html__( 'Update the Pro plugin to use the new File Manager experience.', 'file-manager-advanced' ),
esc_url( 'https://objectsws.atlassian.net/servicedesk/customer/portal/37' ),
esc_html__( 'Get Pro Plugin', 'file-manager-advanced' )
);
}
function fma_dismiss_pro_version_notice() {
check_ajax_referer( 'fma_dismiss_pro_version_notice', 'nonce' );
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( null, 403 );
}
update_user_meta( get_current_user_id(), 'fma_pro_version_notice_dismissed_until', time() + ( 15 * MINUTE_IN_SECONDS ) );
wp_send_json_success();
}
function fma_pro_version_notice_dismiss_script() {
?>
<script>
jQuery(document).on('click', '.fma-pro-version-notice .notice-dismiss', function () {
jQuery.post(ajaxurl, {action: 'fma_dismiss_pro_version_notice', nonce: jQuery(this).closest('.fma-pro-version-notice').data('nonce')});
});
</script>
<?php
}
add_action( 'admin_notices', 'fma_pro_version_notice' );
add_action( 'wp_ajax_fma_dismiss_pro_version_notice', 'fma_dismiss_pro_version_notice' );
add_action( 'admin_footer', 'fma_pro_version_notice_dismiss_script' );
}
/**
* Cleanup function - Shared by both uninstall and deactivation hooks
*/
function fma_cleanup_plugin_data() {
global $wpdb;
// 1. Delete all WordPress options (direct database query for reliability)
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name = 'fmaoptions'" );
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name = 'fma_hide_review_section'" );
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name = 'fma_blocks_dummy_data_created'" );
// 2. Delete all fma_blocks custom post type posts and their meta
// First get all post IDs
$fma_blocks_ids = $wpdb->get_col( $wpdb->prepare(
"SELECT ID FROM {$wpdb->posts} WHERE post_type = %s",
'fma_blocks'
) );
if ( ! empty( $fma_blocks_ids ) ) {
// Delete all post meta for these posts
$post_ids_placeholders = implode( ',', array_fill( 0, count( $fma_blocks_ids ), '%d' ) );
$wpdb->query( $wpdb->prepare(
"DELETE FROM {$wpdb->postmeta} WHERE post_id IN ($post_ids_placeholders)",
$fma_blocks_ids
) );
// Delete all posts
$wpdb->query( $wpdb->prepare(
"DELETE FROM {$wpdb->posts} WHERE post_type = %s",
'fma_blocks'
) );
}
// 3. Delete file logs table if it exists (created when pro is active)
$table_name = $wpdb->prefix . 'fm_filelogs';
$wpdb->query( "DROP TABLE IF EXISTS {$table_name}" );
// 4. Clean up any transients
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_fma_%'" );
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout_fma_%'" );
// 5. Clean up user meta if any
$wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE 'fma_%'" );
$wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE 'afmp_%'" );
// 6. Clean up site options for multisite
if ( function_exists( 'is_multisite' ) && is_multisite() ) {
$wpdb->query( "DELETE FROM {$wpdb->sitemeta} WHERE meta_key LIKE 'fma_%'" );
}
}
/**
* Freemius after_uninstall hook callback
* This hook fires when plugin is uninstalled through Freemius SDK
* This is the most reliable method as Freemius handles the uninstall process
*/
function fma_freemius_after_uninstall() {
// Check if user has enabled data deletion on uninstall
$settings = get_option('fmaoptions', array());
$delete_data_on_uninstall = isset($settings['fma_delete_data_on_uninstall']) && $settings['fma_delete_data_on_uninstall'] == '1';
// If setting is disabled, don't delete data
if (!$delete_data_on_uninstall) {
return;
}
// Run cleanup when Freemius uninstall hook fires
fma_cleanup_plugin_data();
}
/*
* Advanced File Manager
* Text Domain
*/
add_action('plugins_loaded', 'advanced_file_manager_load_text_domain');
function advanced_file_manager_load_text_domain()
{
$domain = dirname(plugin_basename(__FILE__));
$locale = apply_filters('plugin_locale', get_locale(), $domain);
load_textdomain($domain, trailingslashit(WP_LANG_DIR).'plugins'.'/'.$domain.'-'.$locale.'.mo');
load_plugin_textdomain($domain, false, basename(dirname(__FILE__)).'/languages/');
}
/**
* Main application
*/
if(is_admin()) {
include('application/class_fma_main.php');
new class_fma_main;
}
/**
* Shortcode class
*/
include('application/class_fma_shortcode.php');
require_once 'application/class_fma_notification_message.php';
include 'application/rest-api/class-fma-controller.php';
/**
* Blocks class (for free version)
*/
if ( ! class_exists( 'file_manager_advanced_shortcode' ) ) {
require_once( 'application/class_fma_blocks.php' );
// Instantiate the class
if ( class_exists( 'class_fma_blocks' ) ) {
new class_fma_blocks();
}
}
Hydrologický merný profil – Speleo upjs
Hydrologický merný profil
10 rokov sledovania vodných stavov a prietokov
Tabuľka hydrologických údajov na stupni P31 V Skalistom potoku priemer l/s max stav Q max dátum, čas 2012 2,56 13,5 9,78 21.4., 08,30 2013 20,6 76,5 552,4 11.6., 0,30 2014 11,89 40,6 148,7 21.1., 03,00 2015 7,86 48,5 236,3 31.1, 9,30 2016 12,54 77,6 566,9 10.2., 19,00 2017 10,13 51,5 273 l/s 07.11., 6,30 2018 11,51 34,7 96 l/s 13.3., 8,00 2019 2,52 15,8 14,48 1.6., 13,30 2020 15,23 64,5 461 l/S 14.10., 8,30 2021 13,55 50,9 266 l/s 18.5., 10,00 2022 3,56 23,6 39,5 l/s 2.4., 07,00 priemer 10,93
Nový merný profil -Kladenská chodba
Skalistý potok má v svojom známom priebehu v horných častiach jediný trvalý prítok, a to potôčik pretekajúci Kladenskou chodbou. Zo speleologického hľadiska je postup touto chodbou už poslednou nádejou pre “suchých” jaskyniarov. Nevieme odkiaľ prichádza, objavuje sa v závaloch na “Konci ´2000” Rozhodli sme sa tiež sledovať jeho prietok a za tým účelom sme do dna vsadili Thomsonov prepad. Zatiaľ nemáme vyriešené kontinuálne sledovanie, veríme, že sa nám podarí vhodný prístroj získať. Prípravná akcia prebehla 21.4., zúčastnili sa jej Kandričák, Kurty, Danko, Štefan Fürberger, Jaroslav Zacher (Ke), Fero Zacher (Poprad). Na akcii sme vyfrézovali do vybratej časti dna zárez pre profil, ktorý sme následne vyrobili a definitívne vlepili so S. Dankom 19. 5. 2013. Od tých čias spoľahlivo funguje, prietoky sa pohybujú od 0,1 do viac ako 5 l/s
Hydrologický rok 2013
V závere roka sme z datalogeru stiahli údaje a tak máme k dispozícii konečne merania 1 kompletného hydrologického roka (1. november 2012 až 31. október 2013). V súčasnosti už meriame na lokalite aj zrážky, korelácie sú veľmi zaujímavé.
Pozoruhodné veci z 11.6.
Ako sme zistili pri stiahnutí údajov z datalogera dňa 31.7, počas roka 2013 sa vyskytli mimoriadne hydrologické situácie s prietokom viac ako 500 l/s. (Prístroj zaznamenáva údaje s krokom 30 min). Najzaujímavejší vývoj bol v noci z 10 na 11.6. Počas 4 hodín od 20,30 do 00,30 stúpol vodný stav z cca 20 cm na 76,5, znamená to vyjadrené prietokom cca 50 násobne, pričom došlo k preliatiu vody aj cez obdĺžnikovú časť priepadu. Vyhodnotenie tohto extrému bude vyžadovať podrobnejšie zmapovanie profilu nad jeho obdĺžnikovou časťou.
Funguje to ! (Skalistý potok 10.4.2012)
Sledovanie zmien prietoku podzemného toku priamo v jaskyni má zabezpečiť kombinovaný Thompsonov a obdĺžníkový priepad, s ktorého budovaním sme začali už v marci r. 2011 v mieste riečišťa bez sedimentov asi 25 m povyše priepasti P31 s traverzom. Zavŕšenie značného úsilia pri budovaní solídneho diela bolo korunované inštaláciou hĺbkovej sondy a logera s pochopením vedenia Správy slovenských jaskýň (Ing. Hlaváč a doc. Bella) a tiež s metodickým usmernením dr. Haviarovej dňa 2.2.2012. Kontinuálne merania prebiehajú od februára 2012 a prinášajú pozoruhodné údaje o dynamike toku a jeho reakcii na meteorolologickú situáciu.
Skalistý potok 12. a 18. 11.2011 – ukončenie stavebnej časti p rofilu
Skalistý potok 6.3.2011
Pár obrázkov z inštalácie vodomerného zariadenia – Thomsonovho prepadu. na mieste sme museli flexkou profil upraviť, voda zatiaľ tečie v žľabe z plastu.