diff options
Diffstat (limited to 'phpBB/includes/search/sphinx/config.php')
-rw-r--r-- | phpBB/includes/search/sphinx/config.php | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/phpBB/includes/search/sphinx/config.php b/phpBB/includes/search/sphinx/config.php deleted file mode 100644 index f1864f0c8c..0000000000 --- a/phpBB/includes/search/sphinx/config.php +++ /dev/null @@ -1,288 +0,0 @@ -<?php -/** -* -* @package search -* @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* phpbb_search_sphinx_config -* An object representing the sphinx configuration -* Can read it from file and write it back out after modification -* @package search -*/ -class phpbb_search_sphinx_config -{ - private $sections = array(); - - /** - * Constructor which optionally loads data from a variable - * - * @param string $config_data Variable containing the sphinx configuration data - * - * @access public - */ - function __construct($config_data) - { - if ($config_data != '') - { - $this->read($config_data); - } - } - - /** - * Get a section object by its name - * - * @param string $name The name of the section that shall be returned - * @return phpbb_search_sphinx_config_section The section object or null if none was found - * - * @access public - */ - function get_section_by_name($name) - { - for ($i = 0, $size = sizeof($this->sections); $i < $size; $i++) - { - // Make sure this is really a section object and not a comment - if (($this->sections[$i] instanceof phpbb_search_sphinx_config_section) && $this->sections[$i]->get_name() == $name) - { - return $this->sections[$i]; - } - } - } - - /** - * Appends a new empty section to the end of the config - * - * @param string $name The name for the new section - * @return phpbb_search_sphinx_config_section The newly created section object - * - * @access public - */ - function add_section($name) - { - $this->sections[] = new phpbb_search_sphinx_config_section($name, ''); - return $this->sections[sizeof($this->sections) - 1]; - } - - /** - * Reads the config file data - * - * @param string $config_data The config file data - * - * @access private - */ - function read($config_data) - { - $this->sections = array(); - - $section = null; - $found_opening_bracket = false; - $in_value = false; - - foreach ($config_data as $i => $line) - { - // If the value of a variable continues to the next line because the line - // break was escaped then we don't trim leading space but treat it as a part of the value - if ($in_value) - { - $line = rtrim($line); - } - else - { - $line = trim($line); - } - - // If we're not inside a section look for one - if (!$section) - { - // Add empty lines and comments as comment objects to the section list - // that way they're not deleted when reassembling the file from the sections - if (!$line || $line[0] == '#') - { - $this->sections[] = new phpbb_search_sphinx_config_comment($config_file[$i]); - continue; - } - else - { - // Otherwise we scan the line reading the section name until we find - // an opening curly bracket or a comment - $section_name = ''; - $section_name_comment = ''; - $found_opening_bracket = false; - for ($j = 0, $length = strlen($line); $j < $length; $j++) - { - if ($line[$j] == '#') - { - $section_name_comment = substr($line, $j); - break; - } - - if ($found_opening_bracket) - { - continue; - } - - if ($line[$j] == '{') - { - $found_opening_bracket = true; - continue; - } - - $section_name .= $line[$j]; - } - - // And then we create the new section object - $section_name = trim($section_name); - $section = new phpbb_search_sphinx_config_section($section_name, $section_name_comment); - } - } - else - { - // If we're looking for variables inside a section - $skip_first = false; - - // If we're not in a value continuing over the line feed - if (!$in_value) - { - // Then add empty lines and comments as comment objects to the variable list - // of this section so they're not deleted on reassembly - if (!$line || $line[0] == '#') - { - $section->add_variable(new phpbb_search_sphinx_config_comment($config_file[$i])); - continue; - } - - // As long as we haven't yet actually found an opening bracket for this section - // we treat everything as comments so it's not deleted either - if (!$found_opening_bracket) - { - if ($line[0] == '{') - { - $skip_first = true; - $line = substr($line, 1); - $found_opening_bracket = true; - } - else - { - $section->add_variable(new phpbb_search_sphinx_config_comment($config_file[$i])); - continue; - } - } - } - - // If we did not find a comment in this line or still add to the previous - // line's value ... - if ($line || $in_value) - { - if (!$in_value) - { - $name = ''; - $value = ''; - $comment = ''; - $found_assignment = false; - } - $in_value = false; - $end_section = false; - - /* ... then we should prase this line char by char: - - first there's the variable name - - then an equal sign - - the variable value - - possibly a backslash before the linefeed in this case we need to continue - parsing the value in the next line - - a # indicating that the rest of the line is a comment - - a closing curly bracket indicating the end of this section*/ - for ($j = 0, $length = strlen($line); $j < $length; $j++) - { - if ($line[$j] == '#') - { - $comment = substr($line, $j); - break; - } - else if ($line[$j] == '}') - { - $comment = substr($line, $j + 1); - $end_section = true; - break; - } - else if (!$found_assignment) - { - if ($line[$j] == '=') - { - $found_assignment = true; - } - else - { - $name .= $line[$j]; - } - } - else - { - if ($line[$j] == '\\' && $j == $length - 1) - { - $value .= "\n"; - $in_value = true; - // Go to the next line and keep processing the value in there - continue 2; - } - $value .= $line[$j]; - } - } - - // If a name and an equal sign were found then we have append a - // new variable object to the section - if ($name && $found_assignment) - { - $section->add_variable(new phpbb_search_sphinx_config_variable(trim($name), trim($value), ($end_section) ? '' : $comment)); - continue; - } - - /* If we found a closing curly bracket this section has been completed - and we can append it to the section list and continue with looking for - the next section */ - if ($end_section) - { - $section->set_end_comment($comment); - $this->sections[] = $section; - $section = null; - continue; - } - } - - // If we did not find anything meaningful up to here, then just treat it - // as a comment - $comment = ($skip_first) ? "\t" . substr(ltrim($config_file[$i]), 1) : $config_file[$i]; - $section->add_variable(new phpbb_search_sphinx_config_comment($comment)); - } - } - - } - - /** - * Returns the config data - * - * @return string $data The config data that is generated - * - * @access public - */ - function get_data() - { - $data = ""; - foreach ($this->sections as $section) - { - $data .= $section->to_string(); - } - - return $data; - } -} |