Current Path : /home/theafprt/hypekndy.com/wp-content/plugins/w3-total-cache/ |
Current File : /home/theafprt/hypekndy.com/wp-content/plugins/w3-total-cache/Extension_FragmentCache_Api.php |
<?php /** * File: Extension_FragmentCache_Api.php * * @package W3TC */ /** * Flushes a specific fragment cache group. * * @param string $fragment_group The name of the fragment cache group to flush. * * @return bool True if the group was successfully flushed, false otherwise. */ function w3tc_fragmentcache_flush_group( $fragment_group ) { $o = \W3TC\Dispatcher::component( 'CacheFlush' ); return $o->fragmentcache_flush_group( $fragment_group ); } /** * Flushes all fragment cache groups. * * @return bool True if all groups were successfully flushed, false otherwise. */ function w3tc_fragmentcache_flush() { $o = \W3TC\Dispatcher::component( 'CacheFlush' ); return $o->fragmentcache_flush(); } /** * Registers a fragment cache group with specific actions and expiration. * * phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_trigger_error * * @param string $group The name of the fragment cache group. * @param array $actions List of actions associated with the group. * @param int $expiration The expiration time in seconds for the group. * * @return bool True if the group was successfully registered, false otherwise. */ function w3tc_register_fragment_group( $group, $actions, $expiration ) { if ( ! is_int( $expiration ) ) { $expiration = (int) $expiration; trigger_error( __FUNCTION__ . ' needs expiration parameter to be an int.', E_USER_WARNING ); } $o = \W3TC\Dispatcher::component( 'Extension_FragmentCache_Core' ); return $o->register_group( $group, $actions, $expiration ); } /** * Registers a global fragment cache group with specific actions and expiration. * * phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_trigger_error * * @param string $group The name of the global fragment cache group. * @param array $actions List of actions associated with the global group. * @param int $expiration The expiration time in seconds for the global group. * * @return bool True if the global group was successfully registered, false otherwise. */ function w3tc_register_fragment_global_group( $group, $actions, $expiration ) { if ( ! is_int( $expiration ) ) { $expiration = (int) $expiration; trigger_error( __FUNCTION__ . ' needs expiration parameter to be an int.', E_USER_WARNING ); } $o = \W3TC\Dispatcher::component( 'Extension_FragmentCache_Core' ); return $o->register_global_group( $group, $actions, $expiration ); } /** * Starts capturing output for a fragment cache. * * @param string $id The unique identifier for the fragment cache. * @param string $group Optional. The fragment cache group name. * @param string $hook Optional. A hook name to apply after outputting the fragment. * * @return bool True if the fragment is already cached and output, false otherwise. */ function w3tc_fragmentcache_start( $id, $group = '', $hook = '' ) { $fragment = w3tc_fragmentcache_get( $id, $group ); if ( false === $fragment ) { _w3tc_caching_fragment( $id, $group ); ob_start(); } else { echo esc_html( $fragment ); if ( $hook ) { remove_all_filters( $hook ); } return true; } return false; } /** * Starts filtering and capturing output for a fragment cache. * * @param string $id The unique identifier for the fragment cache. * @param string $group Optional. The fragment cache group name. * @param string $hook Optional. A hook name to apply after outputting the fragment. * @param mixed $data Optional. Data to use if the fragment is not cached. * * @return mixed The cached fragment or the provided data. */ function w3tc_fragmentcache_filter_start( $id, $group = '', $hook = '', $data = null ) { _w3tc_caching_fragment( $id, $group ); $fragment = w3tc_fragmentcache_get( $id, $group ); if ( false !== $fragment ) { if ( $hook ) { remove_all_filters( $hook ); } return $fragment; } return $data; } /** * Ends capturing output for a fragment cache and stores it. * * @param string $id The unique identifier for the fragment cache. * @param string $group Optional. The fragment cache group name. * @param boolean $debug Optional. Whether to include debugging information in the fragment. * * @return void */ function w3tc_fragmentcache_end( $id, $group = '', $debug = false ) { if ( w3tc_is_caching_fragment( $id, $group ) ) { $content = ob_get_contents(); if ( $debug ) { $content = sprintf( "\r\n" . '<!-- fragment start (%s%s)-->' . "\r\n" . '%s' . "\r\n" . '<!-- fragment end (%1$s%2$s) cached at %s by W3 Total Cache expires in %d seconds -->' . "\r\n", $group, $id, $content, date_i18n( 'Y-m-d H:i:s' ), 1000 ); } w3tc_fragmentcache_store( $id, $group, $content ); ob_end_flush(); } } /** * Ends filtering output for a fragment cache and stores it. * * @param string $id The unique identifier for the fragment cache. * @param string $group Optional. The fragment cache group name. * @param mixed $data The data to store in the fragment cache. * * @return mixed The stored data. */ function w3tc_fragmentcache_filter_end( $id, $group = '', $data = null ) { if ( w3tc_is_caching_fragment( $id, $group ) ) { w3tc_fragmentcache_store( $id, $group, $data ); } return $data; } /** * Stores content in a fragment cache. * * @param string $id The unique identifier for the fragment cache. * @param string $group Optional. The fragment cache group name. * @param string $content The content to store in the fragment cache. * * @return void */ function w3tc_fragmentcache_store( $id, $group = '', $content = '' ) { /* default expiration in a case its not catched by fc plugin */ set_transient( "{$group}{$id}", $content, 1000 ); } /** * Retrieves content from a fragment cache. * * @param string $id The unique identifier for the fragment cache. * @param string $group Optional. The fragment cache group name. * * @return mixed The cached content or false if not found. */ function w3tc_fragmentcache_get( $id, $group = '' ) { return get_transient( "{$group}{$id}" ); } /** * Flushes a specific fragment from the cache. * * @param string $id The unique identifier for the fragment cache. * @param string $group Optional. The fragment cache group name. * * @return void */ function w3tc_fragmentcache_flush_fragment( $id, $group = '' ) { delete_transient( "{$group}{$id}" ); } /** * Checks if a fragment is currently being cached. * * @param string $id The unique identifier for the fragment cache. * @param string $group Optional. The fragment cache group name. * * @return bool True if the fragment is being cached, false otherwise. */ function w3tc_is_caching_fragment( $id, $group = '' ) { global $w3tc_caching_fragment; return isset( $w3tc_caching_fragment[ "{$group}{$id}" ] ) && $w3tc_caching_fragment[ "{$group}{$id}" ]; } /** * Marks a fragment as being cached. * * @param string $id The unique identifier for the fragment cache. * @param string $group Optional. The fragment cache group name. * * @return void */ function _w3tc_caching_fragment( $id, $group = '' ) { global $w3tc_caching_fragment; $w3tc_caching_fragment[ "{$group}{$id}" ] = true; }