PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 6.2
MainWP Dashboard: Self-hosted WordPress Management for Agencies v6.2
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 6.2, at class/class-mainwp-cache.php

150 lines 4.2 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 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Class MainWP_Cache
19 *
20 * @package MainWP\Dashboard
21 */
22 class MainWP_Cache { // phpcs:ignore Generic.Classes.OpeningBraceSameLine.ContentAfterBrace -- NOSONAR.
23
24 /**
25 * Method init_session()
26 *
27 * Start session.
28 */
29 public static function init_session() {
30 if ( PHP_SESSION_NONE === session_status() ) {
31 session_start();
32 }
33 }
34
35 /**
36 * Method init_session()
37 *
38 * Start session.
39 */
40 public static function is_session_disable() {
41 return ! function_exists( 'session_start' ) || ! function_exists( 'session_status' ) || PHP_SESSION_DISABLED === session_status();
42 }
43
44 /**
45 * Method init_cache()
46 *
47 * Set session variables.
48 *
49 * @param mixed $page Page information.
50 */
51 public static function init_cache( $page ) {
52 $_SESSION[ 'MainWP' . $page . 'Search' ] = '';
53 $_SESSION[ 'MainWP' . $page . 'SearchContext' ] = '';
54 $_SESSION[ 'MainWP' . $page . 'SearchResult' ] = '';
55 }
56
57 /**
58 * Method add_context()
59 *
60 * Set time & search context.
61 *
62 * @param mixed $page Page information.
63 * @param array $context Search context.
64 */
65 public static function add_context( $page, $context ) {
66 if ( ! is_array( $context ) ) {
67 $context = array();
68 }
69
70 $context['time'] = time();
71 $_SESSION[ 'MainWP' . $page . 'SearchContext' ] = $context;
72 }
73
74 /**
75 * Method add_body()
76 *
77 * Set search body session variable.
78 *
79 * @param string $page Page information..
80 * @param mixed $body Search body.
81 */
82 public static function add_body( $page, $body ) {
83 $_SESSION[ 'MainWP' . $page . 'Search' ] .= $body;
84 }
85
86 /**
87 * Method get_cached_context()
88 *
89 * Grab any cached searches.
90 *
91 * @param mixed $page Page information.
92 *
93 * @return array $cachedSearch Cached search array.
94 */
95 public static function get_cached_context( $page ) {
96 $cachedSearch = ( isset( $_SESSION[ 'MainWP' . $page . 'SearchContext' ] ) && is_array( $_SESSION[ 'MainWP' . $page . 'SearchContext' ] ) ? $_SESSION[ 'MainWP' . $page . 'SearchContext' ] : null ); //phpcs:ignore -- ok.
97
98 if ( null !== $cachedSearch && ( ( time() - ( 2 * 60 * 60 ) ) > $cachedSearch['time'] ) ) {
99 unset( $_SESSION[ 'MainWP' . $page . 'SearchContext' ] );
100 unset( $_SESSION[ 'MainWP' . $page . 'Search' ] );
101 unset( $_SESSION[ 'MainWP' . $page . 'SearchResult' ] );
102 $cachedSearch = null;
103 }
104
105 if ( null !== $cachedSearch && isset( $cachedSearch['status'] ) ) {
106 $cachedSearch['status'] = explode( ',', $cachedSearch['status'] );
107 }
108
109 return $cachedSearch;
110 }
111
112 /**
113 * Method echo_body()
114 *
115 * Grab & echo cached search body.
116 *
117 * @param mixed $page Page information.
118 */
119 public static function echo_body( $page ) {
120 if ( isset( $_SESSION[ 'MainWP' . $page . 'Search' ] ) ) {
121 echo $_SESSION[ 'MainWP' . $page . 'Search' ]; // phpcs:ignore WordPress.Security.EscapeOutput,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
122 }
123 }
124
125 /**
126 * Method add_result()
127 *
128 * Grab search results & store them in session.
129 *
130 * @param mixed $page Page information.
131 * @param mixed $result Search results.
132 */
133 public static function add_result( $page, $result ) {
134 $_SESSION[ 'MainWP' . $page . 'SearchResult' ] = $result;
135 }
136
137 /**
138 * Method get_cached_result()
139 *
140 * Grab cached search results.
141 *
142 * @param mixed $page Page information.
143 */
144 public static function get_cached_result( $page ) {
145 if ( isset( $_SESSION[ 'MainWP' . $page . 'SearchResult' ] ) ) {
146 return $_SESSION[ 'MainWP' . $page . 'SearchResult' ]; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.NonceVerification.Recommended
147 }
148 }
149 }
150