PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 8.6.1
Jetpack – WP Security, Backup, Speed, & Growth v8.6.1
15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / modules / sitemaps / sitemap-state.php
jetpack / modules / sitemaps Last commit date
sitemap-buffer-fallback.php 6 years ago sitemap-buffer-image-fallback.php 7 years ago sitemap-buffer-image.php 8 years ago sitemap-buffer-master-fallback.php 7 years ago sitemap-buffer-master.php 8 years ago sitemap-buffer-news-fallback.php 7 years ago sitemap-buffer-news.php 8 years ago sitemap-buffer-page-fallback.php 7 years ago sitemap-buffer-page.php 8 years ago sitemap-buffer-video-fallback.php 7 years ago sitemap-buffer-video.php 8 years ago sitemap-buffer.php 7 years ago sitemap-builder.php 6 years ago sitemap-constants.php 6 years ago sitemap-finder.php 7 years ago sitemap-librarian.php 6 years ago sitemap-logger.php 7 years ago sitemap-state.php 7 years ago sitemap-stylist.php 6 years ago sitemaps.php 6 years ago
sitemap-state.php
145 lines
1 <?php
2 /**
3 * Abstract sitemap generation state class.
4 *
5 * @package Jetpack
6 * @since 4.8.0
7 * @author Automattic
8 */
9
10 /* Include standard constants and librarian. */
11 require_once dirname( __FILE__ ) . '/sitemap-constants.php';
12 require_once dirname( __FILE__ ) . '/sitemap-librarian.php';
13
14 if ( defined( 'WP_DEBUG' ) && ( true === WP_DEBUG ) ) {
15 require_once dirname( __FILE__ ) . '/sitemap-logger.php';
16 }
17
18 /**
19 * This class provides an interface for storing and retrieving
20 * the state of a sitemap generation phase. Whenever the builder
21 * wants to build a new sitemap page, it uses this class to see
22 * what the current state of the sitemap is. The lock is stored
23 * as a transient with max lifetime of 15 minutes; this way if our
24 * builder times out before unlocking the state, the lock will expire
25 * before the builder tries again.
26 *
27 * @since 4.8.0
28 */
29 class Jetpack_Sitemap_State {
30
31 /**
32 * Initial state for the sitemap generator.
33 *
34 * @access public
35 * @since 4.8.0
36 *
37 * @param string $type The initial sitemap type.
38 *
39 * @return array $args {
40 * @type string sitemap-type The type of sitemap to be generated.
41 * @type int last-added The largest index to be added to a generated sitemap page.
42 * @type int number The index of the last sitemap to be generated.
43 * @type string last-modified The latest timestamp seen.
44 * @type array max The latest index of each sitemap type seen.
45 * }
46 */
47 private static function initial( $type = JP_PAGE_SITEMAP_TYPE ) {
48 return array(
49 'sitemap-type' => $type,
50 'last-added' => 0,
51 'number' => 0,
52 'last-modified' => '1970-01-01 00:00:00',
53 'max' => array(),
54 );
55 }
56
57 /**
58 * Reset the sitemap state.
59 *
60 * @param string $type The initial sitemap type.
61 *
62 * @access public
63 * @since 4.8.0
64 */
65 public static function reset( $type ) {
66 delete_transient( 'jetpack-sitemap-state-lock' );
67 update_option(
68 'jetpack-sitemap-state',
69 self::initial( $type )
70 );
71 }
72
73 /**
74 * Store a sitemap state, and unlock it.
75 *
76 * @access public
77 * @since 4.8.0
78 *
79 * @param array $state Array of the Sitemap state details.
80 * @type string sitemap-type The type of sitemap to be generated.
81 * @type int last-added The largest index to be added to a generated sitemap page.
82 * @type int number The index of the last sitemap to be generated.
83 * @type string last-modified The latest timestamp seen.
84 */
85 public static function check_in( $state ) {
86 // Get the old max value.
87 $sitemap_old = get_option( 'jetpack-sitemap-state', self::initial() );
88 $state['max'] = $sitemap_old['max'];
89
90 // Update the max value of the current type.
91 $state['max'][ $state['sitemap-type'] ]['number'] = $state['number'];
92 $state['max'][ $state['sitemap-type'] ]['lastmod'] = $state['last-modified'];
93
94 update_option( 'jetpack-sitemap-state', $state );
95 }
96
97 /**
98 * Unlock the sitemap state.
99 *
100 * @access public
101 * @since 4.8.0
102 */
103 public static function unlock() {
104 delete_transient( 'jetpack-sitemap-state-lock' );
105 }
106
107 /**
108 * Read the stored sitemap state. Returns false if the state is locked.
109 *
110 * @access public
111 * @since 4.8.0
112 *
113 * @return bool|array $args {
114 * @type string sitemap-type The type of sitemap to be generated.
115 * @type int last-added The largest index to be added to a generated sitemap page.
116 * @type int number The index of the last sitemap to be generated.
117 * @type string last-modified The latest timestamp seen.
118 * @type array max The latest index of each sitemap type seen.
119 * }
120 */
121 public static function check_out() {
122 // See if the state is locked.
123 if ( true === get_transient( 'jetpack-sitemap-state-lock' ) ) {
124 // If it is, return false.
125 return false;
126 } else {
127 // Otherwise, lock the state for 15 minutes and then return it.
128 set_transient( 'jetpack-sitemap-state-lock', true, JP_SITEMAP_LOCK_INTERVAL );
129 return get_option( 'jetpack-sitemap-state', self::initial() );
130 }
131 }
132
133 /**
134 * Delete the stored state and lock.
135 *
136 * @access public
137 * @since 4.8.0
138 */
139 public static function delete() {
140 delete_transient( 'jetpack-sitemap-state-lock' );
141 delete_option( 'jetpack-sitemap-state' );
142 }
143
144 }
145