PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 5.1
MainWP Dashboard: Self-hosted WordPress Management for Agencies v5.1
6.2 6.1.8 6.1.7 6.1.6 6.1.5 6.1.4 6.1.3 6.1.2 6.1.1 6.1 6.0.12 6.0.11 4.6.0.1 5.0 5.0.1 5.0.2 5.0.3 5.0.3.1 5.0.3.2 5.1 5.1.1 5.2 5.2.1 5.2.2 5.3 All 153 releases
mainwp / class / class-mainwp-cache.php

class-mainwp-cache.php in MainWP Dashboard: Self-hosted WordPress Management for Agencies 5.1, at class/class-mainwp-cache.php

136 lines 3.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Search Cache Handler
4 *
5 * Handles all search content.
6 *
7 * @package MainWP/Dashboard
8 */
9
10 namespace MainWP\Dashboard;
11
12 /**
13 * Class MainWP_Cache
14 *
15 * @package MainWP\Dashboard
16 */
17 class MainWP_Cache { // phpcs:ignore Generic.Classes.OpeningBraceSameLine.ContentAfterBrace -- NOSONAR.
18
19 /**
20 * Method init_session()
21 *
22 * Start session.
23 */
24 public static function init_session() {
25 if ( PHP_SESSION_NONE === session_status() ) {
26 session_start();
27 }
28 }
29
30 /**
31 * Method init_cache()
32 *
33 * Set session variables.
34 *
35 * @param mixed $page Page information.
36 */
37 public static function init_cache( $page ) {
38 $_SESSION[ 'MainWP' . $page . 'Search' ] = '';
39 $_SESSION[ 'MainWP' . $page . 'SearchContext' ] = '';
40 $_SESSION[ 'MainWP' . $page . 'SearchResult' ] = '';
41 }
42
43 /**
44 * Method add_context()
45 *
46 * Set time & search context.
47 *
48 * @param mixed $page Page information.
49 * @param array $context Search context.
50 */
51 public static function add_context( $page, $context ) {
52 if ( ! is_array( $context ) ) {
53 $context = array();
54 }
55
56 $context['time'] = time();
57 $_SESSION[ 'MainWP' . $page . 'SearchContext' ] = $context;
58 }
59
60 /**
61 * Method add_body()
62 *
63 * Set search body session variable.
64 *
65 * @param string $page Page information..
66 * @param mixed $body Search body.
67 */
68 public static function add_body( $page, $body ) {
69 $_SESSION[ 'MainWP' . $page . 'Search' ] .= $body;
70 }
71
72 /**
73 * Method get_cached_context()
74 *
75 * Grab any cached searches.
76 *
77 * @param mixed $page Page information.
78 *
79 * @return array $cachedSearch Cached search array.
80 */
81 public static function get_cached_context( $page ) {
82 $cachedSearch = ( isset( $_SESSION[ 'MainWP' . $page . 'SearchContext' ] ) && is_array( $_SESSION[ 'MainWP' . $page . 'SearchContext' ] ) ? $_SESSION[ 'MainWP' . $page . 'SearchContext' ] : null ); //phpcs:ignore -- ok.
83
84 if ( null !== $cachedSearch && ( ( time() - ( 2 * 60 * 60 ) ) > $cachedSearch['time'] ) ) {
85 unset( $_SESSION[ 'MainWP' . $page . 'SearchContext' ] );
86 unset( $_SESSION[ 'MainWP' . $page . 'Search' ] );
87 unset( $_SESSION[ 'MainWP' . $page . 'SearchResult' ] );
88 $cachedSearch = null;
89 }
90
91 if ( null !== $cachedSearch && isset( $cachedSearch['status'] ) ) {
92 $cachedSearch['status'] = explode( ',', $cachedSearch['status'] );
93 }
94
95 return $cachedSearch;
96 }
97
98 /**
99 * Method echo_body()
100 *
101 * Grab & echo cached search body.
102 *
103 * @param mixed $page Page information.
104 */
105 public static function echo_body( $page ) {
106 if ( isset( $_SESSION[ 'MainWP' . $page . 'Search' ] ) ) {
107 echo $_SESSION[ 'MainWP' . $page . 'Search' ]; // phpcs:ignore WordPress.Security.EscapeOutput,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
108 }
109 }
110
111 /**
112 * Method add_result()
113 *
114 * Grab search results & store them in session.
115 *
116 * @param mixed $page Page information.
117 * @param mixed $result Search results.
118 */
119 public static function add_result( $page, $result ) {
120 $_SESSION[ 'MainWP' . $page . 'SearchResult' ] = $result;
121 }
122
123 /**
124 * Method get_cached_result()
125 *
126 * Grab cached search results.
127 *
128 * @param mixed $page Page information.
129 */
130 public static function get_cached_result( $page ) {
131 if ( isset( $_SESSION[ 'MainWP' . $page . 'SearchResult' ] ) ) {
132 return $_SESSION[ 'MainWP' . $page . 'SearchResult' ]; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.NonceVerification.Recommended
133 }
134 }
135 }
136