65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace W3TC;
 | |
| 
 | |
| class Generic_Faq {
 | |
| 	static public function sections() {
 | |
| 		// name => column where to show
 | |
| 		return array(
 | |
| 			'General' => 'https://api.w3-edge.com/v1/faq/general',
 | |
| 			'Usage' => 'https://api.w3-edge.com/v1/faq/usage',
 | |
| 			'Compatibility' => 'https://api.w3-edge.com/v1/faq/compatibility',
 | |
| 			'Minification' => 'https://api.w3-edge.com/v1/faq/minification',
 | |
| 			'CDN' => 'https://api.w3-edge.com/v1/faq/cdn',
 | |
| 			'Browser Cache' => 'https://api.w3-edge.com/v1/faq/browser-cache',
 | |
| 			'Errors / Debugging' => 'https://api.w3-edge.com/v1/faq/errors-debugging',
 | |
| 			'Requirements' => 'https://api.w3-edge.com/v1/faq/requirements',
 | |
| 			'Developers' => 'https://api.w3-edge.com/v1/faq/developers',
 | |
| 			'Extensions' => 'https://api.w3-edge.com/v1/faq/extensions',
 | |
| 			'Installation' => 'https://api.w3-edge.com/v1/faq/installation'
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Returns list of questions for section
 | |
| 	 */
 | |
| 	static public function parse( $section ) {
 | |
| 		$faq = array();
 | |
| 
 | |
| 		$sections = self::sections();
 | |
| 		if ( !isset( $sections[ $section ] ) ) {
 | |
| 			return null;
 | |
| 		}
 | |
| 
 | |
| 		$url = $sections[ $section ];
 | |
| 
 | |
| 
 | |
| 		$response = wp_remote_get( $url );
 | |
| 		if ( is_wp_error( $response ) ) {
 | |
| 			return null;
 | |
| 		}
 | |
| 
 | |
| 		$html = $response['body'];
 | |
| 		$questions = array();
 | |
| 
 | |
| 		$m = array();
 | |
| 		preg_match_all( '~<h1>\s*<a[^>]+href="(#[^"]+)[^>]+>.*?</a>([^<]+)</h1>~mi',
 | |
| 			$html, $m );
 | |
| 		if ( is_array( $m ) && count( $m ) > 1 ) {
 | |
| 			for ( $n = 0; $n < count( $m[1] ); $n++ ) {
 | |
| 				$questions[] = array('q' => $m[2][$n], 'a' => $url . $m[1][$n] );
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		$m = array();
 | |
| 		preg_match_all( '~<li>\s*<a[^>]+href="([^"]+)[^>]+>(.*?)</a>\s*[.]s*</li>~mi',
 | |
| 			$html, $m );
 | |
| 		if ( is_array( $m ) && count( $m ) > 1 ) {
 | |
| 			for ( $n = 0; $n < count( $m[1] ); $n++ ) {
 | |
| 				$questions[] = array('q' => $m[2][$n], 'a' => $m[1][$n] );
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		return $questions;
 | |
| 	}
 | |
| }
 |