Projects : mp-wp : mp-wp_svg-screenshots-and-errorreporting-r2
1 | <?php |
2 | /** |
3 | * Misc WordPress Administration API. |
4 | * |
5 | * @package WordPress |
6 | * @subpackage Administration |
7 | */ |
8 | |
9 | /** |
10 | * {@internal Missing Short Description}} |
11 | * |
12 | * @since unknown |
13 | * |
14 | * @return unknown |
15 | */ |
16 | function got_mod_rewrite() { |
17 | $got_rewrite = apache_mod_loaded('mod_rewrite', true); |
18 | return apply_filters('got_rewrite', $got_rewrite); |
19 | } |
20 | |
21 | /** |
22 | * {@internal Missing Short Description}} |
23 | * |
24 | * @since unknown |
25 | * |
26 | * @param unknown_type $filename |
27 | * @param unknown_type $marker |
28 | * @return array An array of strings from a file (.htaccess ) from between BEGIN and END markers. |
29 | */ |
30 | function extract_from_markers( $filename, $marker ) { |
31 | $result = array (); |
32 | |
33 | if (!file_exists( $filename ) ) { |
34 | return $result; |
35 | } |
36 | |
37 | if ( $markerdata = explode( "\n", implode( '', file( $filename ) ) )); |
38 | { |
39 | $state = false; |
40 | foreach ( $markerdata as $markerline ) { |
41 | if (strpos($markerline, '# END ' . $marker) !== false) |
42 | $state = false; |
43 | if ( $state ) |
44 | $result[] = $markerline; |
45 | if (strpos($markerline, '# BEGIN ' . $marker) !== false) |
46 | $state = true; |
47 | } |
48 | } |
49 | |
50 | return $result; |
51 | } |
52 | |
53 | /** |
54 | * {@internal Missing Short Description}} |
55 | * |
56 | * Inserts an array of strings into a file (.htaccess ), placing it between |
57 | * BEGIN and END markers. Replaces existing marked info. Retains surrounding |
58 | * data. Creates file if none exists. |
59 | * |
60 | * @since unknown |
61 | * |
62 | * @param unknown_type $filename |
63 | * @param unknown_type $marker |
64 | * @param unknown_type $insertion |
65 | * @return bool True on write success, false on failure. |
66 | */ |
67 | function insert_with_markers( $filename, $marker, $insertion ) { |
68 | if (!file_exists( $filename ) || is_writeable( $filename ) ) { |
69 | if (!file_exists( $filename ) ) { |
70 | $markerdata = ''; |
71 | } else { |
72 | $markerdata = explode( "\n", implode( '', file( $filename ) ) ); |
73 | } |
74 | |
75 | $f = fopen( $filename, 'w' ); |
76 | $foundit = false; |
77 | if ( $markerdata ) { |
78 | $state = true; |
79 | foreach ( $markerdata as $n => $markerline ) { |
80 | if (strpos($markerline, '# BEGIN ' . $marker) !== false) |
81 | $state = false; |
82 | if ( $state ) { |
83 | if ( $n + 1 < count( $markerdata ) ) |
84 | fwrite( $f, "{$markerline}\n" ); |
85 | else |
86 | fwrite( $f, "{$markerline}" ); |
87 | } |
88 | if (strpos($markerline, '# END ' . $marker) !== false) { |
89 | fwrite( $f, "# BEGIN {$marker}\n" ); |
90 | if ( is_array( $insertion )) |
91 | foreach ( $insertion as $insertline ) |
92 | fwrite( $f, "{$insertline}\n" ); |
93 | fwrite( $f, "# END {$marker}\n" ); |
94 | $state = true; |
95 | $foundit = true; |
96 | } |
97 | } |
98 | } |
99 | if (!$foundit) { |
100 | fwrite( $f, "\n# BEGIN {$marker}\n" ); |
101 | foreach ( $insertion as $insertline ) |
102 | fwrite( $f, "{$insertline}\n" ); |
103 | fwrite( $f, "# END {$marker}\n" ); |
104 | } |
105 | fclose( $f ); |
106 | return true; |
107 | } else { |
108 | return false; |
109 | } |
110 | } |
111 | |
112 | /** |
113 | * Updates the htaccess file with the current rules if it is writable. |
114 | * |
115 | * Always writes to the file if it exists and is writable to ensure that we |
116 | * blank out old rules. |
117 | * |
118 | * @since unknown |
119 | */ |
120 | function save_mod_rewrite_rules() { |
121 | global $wp_rewrite; |
122 | |
123 | $home_path = get_home_path(); |
124 | $htaccess_file = $home_path.'.htaccess'; |
125 | |
126 | // If the file doesn't already exists check for write access to the directory and whether of not we have some rules. |
127 | // else check for write access to the file. |
128 | if ((!file_exists($htaccess_file) && is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks()) || is_writable($htaccess_file)) { |
129 | if ( got_mod_rewrite() ) { |
130 | $rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() ); |
131 | return insert_with_markers( $htaccess_file, 'WordPress', $rules ); |
132 | } |
133 | } |
134 | |
135 | return false; |
136 | } |
137 | |
138 | /** |
139 | * {@internal Missing Short Description}} |
140 | * |
141 | * @since unknown |
142 | * |
143 | * @param unknown_type $file |
144 | */ |
145 | function update_recently_edited( $file ) { |
146 | $oldfiles = (array ) get_option( 'recently_edited' ); |
147 | if ( $oldfiles ) { |
148 | $oldfiles = array_reverse( $oldfiles ); |
149 | $oldfiles[] = $file; |
150 | $oldfiles = array_reverse( $oldfiles ); |
151 | $oldfiles = array_unique( $oldfiles ); |
152 | if ( 5 < count( $oldfiles )) |
153 | array_pop( $oldfiles ); |
154 | } else { |
155 | $oldfiles[] = $file; |
156 | } |
157 | update_option( 'recently_edited', $oldfiles ); |
158 | } |
159 | |
160 | /** |
161 | * If siteurl or home changed, flush rewrite rules. |
162 | * |
163 | * @since unknown |
164 | * |
165 | * @param unknown_type $old_value |
166 | * @param unknown_type $value |
167 | */ |
168 | function update_home_siteurl( $old_value, $value ) { |
169 | global $wp_rewrite; |
170 | |
171 | if ( defined( "WP_INSTALLING" ) ) |
172 | return; |
173 | |
174 | // If home changed, write rewrite rules to new location. |
175 | $wp_rewrite->flush_rules(); |
176 | } |
177 | |
178 | add_action( 'update_option_home', 'update_home_siteurl', 10, 2 ); |
179 | add_action( 'update_option_siteurl', 'update_home_siteurl', 10, 2 ); |
180 | |
181 | /** |
182 | * {@internal Missing Short Description}} |
183 | * |
184 | * @since unknown |
185 | * |
186 | * @param unknown_type $url |
187 | * @return unknown |
188 | */ |
189 | function url_shorten( $url ) { |
190 | $short_url = str_replace( 'http://', '', stripslashes( $url )); |
191 | $short_url = str_replace( 'www.', '', $short_url ); |
192 | if ('/' == substr( $short_url, -1 )) |
193 | $short_url = substr( $short_url, 0, -1 ); |
194 | if ( strlen( $short_url ) > 35 ) |
195 | $short_url = substr( $short_url, 0, 32 ).'...'; |
196 | return $short_url; |
197 | } |
198 | |
199 | /** |
200 | * {@internal Missing Short Description}} |
201 | * |
202 | * @since unknown |
203 | * |
204 | * @param unknown_type $vars |
205 | */ |
206 | function wp_reset_vars( $vars ) { |
207 | for ( $i=0; $i<count( $vars ); $i += 1 ) { |
208 | $var = $vars[$i]; |
209 | global $$var; |
210 | |
211 | if (!isset( $$var ) ) { |
212 | if ( empty( $_POST["$var"] ) ) { |
213 | if ( empty( $_GET["$var"] ) ) |
214 | $$var = ''; |
215 | else |
216 | $$var = $_GET["$var"]; |
217 | } else { |
218 | $$var = $_POST["$var"]; |
219 | } |
220 | } |
221 | } |
222 | } |
223 | |
224 | /** |
225 | * {@internal Missing Short Description}} |
226 | * |
227 | * @since unknown |
228 | * |
229 | * @param unknown_type $message |
230 | */ |
231 | function show_message($message) { |
232 | if( is_wp_error($message) ){ |
233 | if( $message->get_error_data() ) |
234 | $message = $message->get_error_message() . ': ' . $message->get_error_data(); |
235 | else |
236 | $message = $message->get_error_message(); |
237 | } |
238 | echo "<p>$message</p>\n"; |
239 | } |
240 | |
241 | ?> |