/** * Returns the single instance * * @access static * @return PMF_Helper_Category */ public static function getInstance() { if (null == self::$instance) { $className = __CLASS__; self::$instance = new $className(); } return self::$instance; }
// a. We use plain PMF urls w/o any SEO schema $link = str_replace($_SERVER['SCRIPT_NAME'], '/index.php', $item['url']); // b. We use SEO PMF urls if (PMF_SITEMAP_GOOGLE_USE_SEO) { if (isset($item['thema'])) { $oL = new PMF_Link($link); $oL->itemTitle = $item['thema']; $link = $oL->toString(); } } $sitemap .= buildSitemapNode(PMF_Link::getSystemUri('/sitemap.google.php') . $link, PMF_Date::createISO8601Date($item['date']), PMF_SITEMAP_GOOGLE_CHANGEFREQ_DAILY, $priority); } $sitemap .= '</urlset>'; $getgezip = PMF_Filter::filterInput(INPUT_GET, PMF_SITEMAP_GOOGLE_GET_GZIP, FILTER_VALIDATE_INT); if (!is_null($getgezip) && 1 == $getgezip) { if (function_exists('gzencode')) { $sitemapGz = gzencode($sitemap); header('Content-Type: application/x-gzip'); header('Content-Disposition: attachment; filename="' . PMF_SITEMAP_GOOGLE_FILENAME_GZ . '"'); header('Content-Length: ' . strlen($sitemapGz)); print $sitemapGz; } else { PMF_Helper_Http::getInstance()->printHTTPStatus404(); } } else { header('Content-Type: text/xml'); header('Content-Disposition: inline; filename="' . PMF_SITEMAP_GOOGLE_FILENAME . '"'); header('Content-Length: ' . PMF_String::strlen($sitemap)); print $sitemap; } $db->dbclose();
* @author Thorsten Rinne <*****@*****.**> * @copyright 2009-2012 phpMyFAQ Team * @license http://www.mozilla.org/MPL/MPL-1.1.html Mozilla Public License Version 1.1 * @link http://www.phpmyfaq.de * @since 2009-09-03 */ // // Prepend and start the PHP session // define('IS_VALID_PHPMYFAQ', null); require 'inc/Init.php'; PMF_Init::cleanRequest(); session_name(PMF_COOKIE_NAME_AUTH . trim($faqconfig->get('main.phpMyFAQToken'))); session_start(); // Send headers $http = PMF_Helper_Http::getInstance(); $http->setContentType('application/json'); $http->addHeader(); // Set user permissions $current_user = -1; $current_groups = array(-1); $action = PMF_Filter::filterInput(INPUT_GET, 'action', FILTER_SANITIZE_STRING); $language = PMF_Filter::filterInput(INPUT_GET, 'lang', FILTER_SANITIZE_STRING, 'en'); $categoryId = PMF_Filter::filterInput(INPUT_GET, 'categoryId', FILTER_VALIDATE_INT); $recordId = PMF_Filter::filterInput(INPUT_GET, 'recordId', FILTER_VALIDATE_INT); // Get language (default: english) $Language = new PMF_Language(); $language = $Language->setLanguage($faqconfig->get('main.languageDetection'), $faqconfig->get('main.language')); // Set language if (PMF_Language::isASupportedLanguage($language)) { require 'lang/language_' . $language . '.php';
* @author Matteo Scaramuccia <*****@*****.**> * @copyright 2005-2015 phpMyFAQ Team * @license http://www.mozilla.org/MPL/2.0/ Mozilla Public License Version 2.0 * @link http://www.phpmyfaq.de * @since 2005-12-15 */ if (!defined('IS_VALID_PHPMYFAQ')) { $protocol = 'http'; if (isset($_SERVER['HTTPS']) && strtoupper($_SERVER['HTTPS']) === 'ON') { $protocol = 'https'; } header('Location: ' . $protocol . '://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])); exit; } // Send headers $http = new PMF_Helper_Http(); $http->setContentType('application/json'); $http->addHeader(); $oTag = new PMF_Tags($faqConfig); $autoCompleteValue = PMF_Filter::filterInput(INPUT_GET, 'q', FILTER_SANITIZE_STRIPPED); if (!is_null($autoCompleteValue)) { if (strpos($autoCompleteValue, ',')) { $arrayOfValues = explode(',', $autoCompleteValue); $autoCompleteValue = end($arrayOfValues); } $tags = $oTag->getAllTags(strtolower($autoCompleteValue), PMF_TAGS_CLOUD_RESULT_SET_SIZE, true); } else { $tags = $oTag->getAllTags(); } if ($permission['editbt']) { $i = 0;
$rss->writeElement('description', html_entity_decode($faqConfig->get('main.metaDescription'))); $rss->writeElement('link', $faqConfig->get('main.referenceURL')); $rss->startElementNS('atom', 'link', 'http://www.w3.org/2005/Atom'); $rss->writeAttribute('rel', 'self'); $rss->writeAttribute('type', 'application/rss+xml'); $rss->writeAttribute('href', $faqConfig->get('main.referenceURL') . 'feed/openquestions/rss.php'); $rss->endElement(); if ($num > 0) { $counter = 0; foreach ($rssData as $item) { if ($counter < PMF_RSS_OPENQUESTIONS_MAX) { $counter++; $rss->startElement('item'); $rss->writeElement('title', PMF_Utils::makeShorterText(html_entity_decode($item['question'], ENT_COMPAT, 'UTF-8'), 8) . " (" . $item['username'] . ")"); $rss->startElement('description'); $rss->writeCdata($item['question']); $rss->endElement(); $rss->writeElement('link', (isset($_SERVER['HTTPS']) ? 's' : '') . "://" . $_SERVER["HTTP_HOST"] . str_replace("feed/openquestions/rss.php", "index.php", $_SERVER['SCRIPT_NAME']) . "?action=open#openq_" . $item['id']); $rss->writeElement('guid', (isset($_SERVER['HTTPS']) ? 's' : '') . "://" . $_SERVER["HTTP_HOST"] . str_replace("feed/openquestions/rss.php", "index.php", $_SERVER['SCRIPT_NAME']) . "?action=open#openq_" . $item['id']); $rss->writeElement('pubDate', PMF_Date::createRFC822Date($item['created'], true)); $rss->endElement(); } } } $rss->endElement(); $rss->endElement(); $rssData = $rss->outputMemory(); $headers = array('Content-Type: application/rss+xml', 'Content-Length: ' . strlen($rssData)); $http = new PMF_Helper_Http(); $http->sendWithHeaders($rssData, $headers); $faqConfig->getDb()->close();
* @copyright 2009-2015 phpMyFAQ Team * @license http://www.mozilla.org/MPL/2.0/ Mozilla Public License Version 2.0 * @link http://www.phpmyfaq.de * @since 2009-04-01 */ if (!defined('IS_VALID_PHPMYFAQ') || !$permission['editconfig']) { header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])); exit; } $ajaxAction = PMF_Filter::filterInput(INPUT_GET, 'ajaxaction', FILTER_SANITIZE_STRING); $instanceId = PMF_Filter::filterInput(INPUT_GET, 'instanceId', FILTER_VALIDATE_INT); $stopwordId = PMF_Filter::filterInput(INPUT_GET, 'stopword_id', FILTER_VALIDATE_INT); $stopword = PMF_Filter::filterInput(INPUT_GET, 'stopword', FILTER_SANITIZE_STRING); $stopwordsLang = PMF_Filter::filterInput(INPUT_GET, 'stopwords_lang', FILTER_SANITIZE_STRING); $csrfToken = PMF_Filter::filterInput(INPUT_GET, 'csrf', FILTER_SANITIZE_STRING); $http = new PMF_Helper_Http(); $stopwords = new PMF_Stopwords($faqConfig); switch ($ajaxAction) { case 'add_instance': $url = PMF_Filter::filterInput(INPUT_GET, 'url', FILTER_SANITIZE_STRING); $instance = PMF_Filter::filterInput(INPUT_GET, 'instance', FILTER_SANITIZE_STRING); $comment = PMF_Filter::filterInput(INPUT_GET, 'comment', FILTER_SANITIZE_STRING); $email = PMF_Filter::filterInput(INPUT_GET, 'email', FILTER_VALIDATE_EMAIL); $admin = PMF_Filter::filterInput(INPUT_GET, 'admin', FILTER_SANITIZE_STRING); $password = PMF_Filter::filterInput(INPUT_GET, 'password', FILTER_SANITIZE_STRING); $data = array('url' => 'http://' . $url . '.' . $_SERVER['SERVER_NAME'], 'instance' => $instance, 'comment' => $comment); $faqInstance = new PMF_Instance($faqConfig); $instanceId = $faqInstance->addInstance($data); $faqInstanceClient = new PMF_Instance_Client($faqConfig); $faqInstanceClient->createClient($faqInstance); $urlParts = parse_url($data['url']);
* @package Administraion * @author Thorsten Rinne <*****@*****.**> * @copyright 2003-2015 phpMyFAQ Team * @license http://www.mozilla.org/MPL/2.0/ Mozilla Public License Version 2.0 * @link http://www.phpmyfaq.de * @since 2003-02-26 */ if (!defined('IS_VALID_PHPMYFAQ')) { $protocol = 'http'; if (isset($_SERVER['HTTPS']) && strtoupper($_SERVER['HTTPS']) === 'ON') { $protocol = 'https'; } header('Location: ' . $protocol . '://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])); exit; } $httpHeader = new PMF_Helper_Http(); $httpHeader->setContentType('text/html'); $httpHeader->addHeader(); $secLevelEntries = ''; $dashboardPage = true; $contentPage = false; $userPage = false; $statisticsPage = false; $exportsPage = false; $backupPage = false; $configurationPage = false; $edAutosave = 'editentry' === $action && $faqConfig->get('records.autosaveActive'); $adminHelper = new PMF_Helper_Administration(); $adminHelper->setPermission($permission); switch ($action) { case 'user':
$link = str_replace($_SERVER['SCRIPT_NAME'], '/index.php', $item['url']); // b. We use SEO PMF urls if (PMF_SITEMAP_GOOGLE_USE_SEO) { if (isset($item['thema'])) { $oL = new PMF_Link($link, $faqConfig); $oL->itemTitle = $item['thema']; $link = $oL->toString(); } } $sitemap .= buildSitemapNode($faqConfig->get('main.referenceURL') . $link, PMF_Date::createIsoDate($item['date'], DATE_W3C), PMF_SITEMAP_GOOGLE_CHANGEFREQ_DAILY, $priority); } $sitemap .= '</urlset>'; $getgezip = PMF_Filter::filterInput(INPUT_GET, PMF_SITEMAP_GOOGLE_GET_GZIP, FILTER_VALIDATE_INT); if (!is_null($getgezip) && 1 == $getgezip) { if (function_exists('gzencode')) { $sitemapGz = gzencode($sitemap); header('Content-Type: application/x-gzip'); header('Content-Disposition: attachment; filename="' . PMF_SITEMAP_GOOGLE_FILENAME_GZ . '"'); header('Content-Length: ' . strlen($sitemapGz)); print $sitemapGz; } else { $http = new PMF_Helper_Http(); $http->sendStatus(404); } } else { header('Content-Type: text/xml'); header('Content-Disposition: inline; filename="' . PMF_SITEMAP_GOOGLE_FILENAME . '"'); header('Content-Length: ' . PMF_String::strlen($sitemap)); print $sitemap; } $faqConfig->getDb()->close();
* @since 2009-04-04 */ if (!defined('IS_VALID_PHPMYFAQ')) { $protocol = 'http'; if (isset($_SERVER['HTTPS']) && strtoupper($_SERVER['HTTPS']) === 'ON') { $protocol = 'https'; } header('Location: ' . $protocol . '://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])); exit; } $ajaxAction = PMF_Filter::filterInput(INPUT_GET, 'ajaxaction', FILTER_SANITIZE_STRING); $userId = PMF_Filter::filterInput(INPUT_GET, 'user_id', FILTER_VALIDATE_INT); $usersearch = PMF_Filter::filterInput(INPUT_GET, 'q', FILTER_SANITIZE_STRING); $csrfToken = PMF_Filter::filterInput(INPUT_GET, 'csrf', FILTER_SANITIZE_STRING); // Send headers $http = new PMF_Helper_Http(); $http->setContentType('application/json'); $http->addHeader(); if ($permission['adduser'] || $permission['edituser'] || $permission['deluser']) { $user = new PMF_User($faqConfig); switch ($ajaxAction) { case 'get_user_list': $users = array(); foreach ($user->searchUsers($usersearch) as $singleUser) { $users[] = array('user_id' => $singleUser['user_id'], 'name' => $singleUser['login']); } echo json_encode($users); break; case 'get_user_data': $user->getUserById($userId, true); $userdata = array();
* @package PMF_Service * @author Thorsten Rinne <*****@*****.**> * @copyright 2009-2015 phpMyFAQ Team * @license http://www.mozilla.org/MPL/2.0/ Mozilla Public License Version 2.0 * @link http://www.phpmyfaq.de * @since 2009-09-03 */ define('IS_VALID_PHPMYFAQ', null); // // Bootstrapping // require 'inc/Bootstrap.php'; // // Send headers // $http = new PMF_Helper_Http(); $http->setContentType('application/json'); $http->addHeader(); // // Set user permissions // $currentUser = -1; $currentGroups = array(-1); $action = PMF_Filter::filterInput(INPUT_GET, 'action', FILTER_SANITIZE_STRING); $language = PMF_Filter::filterInput(INPUT_GET, 'lang', FILTER_SANITIZE_STRING, 'en'); $categoryId = PMF_Filter::filterInput(INPUT_GET, 'categoryId', FILTER_VALIDATE_INT); $recordId = PMF_Filter::filterInput(INPUT_GET, 'recordId', FILTER_VALIDATE_INT); // // Get language (default: english) // $Language = new PMF_Language($faqConfig);
$current_groups = array(-1); } } else { $current_user = -1; $current_groups = array(-1); } $currentCategory = PMF_Filter::filterInput(INPUT_GET, 'cat', FILTER_VALIDATE_INT); $id = PMF_Filter::filterInput(INPUT_GET, 'id', FILTER_VALIDATE_INT); $getAll = PMF_Filter::filterInput(INPUT_GET, 'getAll', FILTER_VALIDATE_BOOLEAN, false); $faq = new PMF_Faq($faqConfig); $faq->setUser($current_user); $faq->setGroups($current_groups); $category = new PMF_Category($faqConfig, $current_groups, true); $category->setUser($current_user); $pdf = new PMF_Export_Pdf($faq, $category, $faqConfig); $http = new PMF_Helper_Http(); if (true === $getAll) { $category->buildTree(); } $tags = new PMF_Tags($faqConfig); session_cache_limiter('private'); $headers = array("Pragma: public", "Expires: 0", "Cache-Control: must-revalidate, post-check=0, pre-check=0"); if (true === $getAll && $permission['export']) { $filename = 'FAQs.pdf'; $pdfFile = $pdf->generate(0, true, $lang); } else { if (is_null($currentCategory) || is_null($id)) { $http->redirect($faqConfig->get('main.referenceURL')); exit; } $faq->getRecord($id);