Viewing file: other.php (4.51 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /** * Parses FAQ XML file into array * * @return array */ function w3_parse_faq() { $faq = array(); $file = W3TC_LANGUAGES_DIR . '/faq-' . get_locale() . '.xml'; if (!file_exists($file)) { $file = W3TC_LANGUAGES_DIR . '/faq-en_US.xml'; }
$xml = @file_get_contents($file); $file2 = W3TC_LANGUAGES_DIR . '/faq-pro-' . get_locale() . '.xml'; if (!file_exists($file)) { $file2 = W3TC_LANGUAGES_DIR . '/faq-pro-en_US.xml'; } $xml2 = @file_get_contents($file2); $xmls = array('standard' => $xml, 'pro' => $xml2); foreach ($xmls as $state => $xml) { if (function_exists('xml_parser_create')) { $parser = @xml_parser_create('UTF-8');
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8'); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); $values = null;
$result = xml_parse_into_struct($parser, $xml, $values); xml_parser_free($parser);
if ($result) { $index = 0; $root_section = $current_section = ''; $current_entry = array(); $lvl = 0; foreach ($values as $value) { switch ($value['type']) { case 'open': if ($value['tag'] === 'section') { $current_section = $value['attributes']['name']; if ($root_section == '' || $lvl == 0) $root_section = $current_section; $lvl++;
} break;
case 'complete': switch ($value['tag']) { case 'question': $current_entry['question'] = ($state == 'pro' ? '<strong style="color:#000">PRO version: </strong>': '' ) . $value['value']; break;
case 'answer': $current_entry['answer'] = $value['value']; break; } break;
case 'close': if ($value['tag'] == 'entry') { $current_entry['index'] = ++$index; if ($root_section != $current_section) $faq[$root_section][$current_section][] = $current_entry; else $faq[$root_section][] = $current_entry; }else if ($value['tag'] == 'section') { $lvl--; } break; } } } } } return $faq; }
/** * Returns button link html * * @param string $text * @param string $url * @param boolean $new_window * @return string */ function w3tc_button_link($text, $url, $new_window = false) { $url = str_replace('&', '&', $url);
if ($new_window) { $onclick = sprintf('window.open(\'%s\');', addslashes($url)); } else { $onclick = sprintf('document.location.href=\'%s\';', addslashes($url)); }
return w3tc_button($text, $onclick); }
/** * Returns hide note button html * * @param string $text * @param string $note * @param string $redirect * @param boolean $admin if to use config admin * @param string $page * @return string */ function w3tc_button_hide_note($text, $note, $redirect = '', $admin = false, $page ='') { if (!$page) { w3_require_once(W3TC_LIB_W3_DIR . '/Request.php'); $page = W3_Request::get_string('page'); }
$url = sprintf('admin.php?page=%s&w3tc_hide_note¬e=%s', $page, $note);
if ($admin) $url .= '&admin=1';
if ($redirect != '') { $url .= '&redirect=' . urlencode($redirect); }
$url = wp_nonce_url($url, 'w3tc');
return w3tc_button_link($text, $url); }
/** * Returns button html * * @param string $text * @param string $onclick * @param string $class * @return string */ function w3tc_button($text, $onclick = '', $class = '') { return sprintf('<input type="button" class="button %s" value="%s" onclick="%s" />', htmlspecialchars($class), htmlspecialchars($text), htmlspecialchars($onclick)); }
|