diff options
Diffstat (limited to 'phpBB/includes/search/sphinx')
-rw-r--r-- | phpBB/includes/search/sphinx/config.php | 288 | ||||
-rw-r--r-- | phpBB/includes/search/sphinx/config_comment.php | 49 | ||||
-rw-r--r-- | phpBB/includes/search/sphinx/config_section.php | 162 | ||||
-rw-r--r-- | phpBB/includes/search/sphinx/config_variable.php | 80 |
4 files changed, 0 insertions, 579 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; - } -} diff --git a/phpBB/includes/search/sphinx/config_comment.php b/phpBB/includes/search/sphinx/config_comment.php deleted file mode 100644 index 7f695dbf0c..0000000000 --- a/phpBB/includes/search/sphinx/config_comment.php +++ /dev/null @@ -1,49 +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_comment -* Represents a comment inside the sphinx configuration -*/ -class phpbb_search_sphinx_config_comment -{ - private $exact_string; - - /** - * Create a new comment - * - * @param string $exact_string The content of the comment including newlines, leading whitespace, etc. - * - * @access public - */ - function __construct($exact_string) - { - $this->exact_string = $exact_string; - } - - /** - * Simply returns the comment as it was created - * - * @return string The exact string that was specified in the constructor - * - * @access public - */ - function to_string() - { - return $this->exact_string; - } -} diff --git a/phpBB/includes/search/sphinx/config_section.php b/phpBB/includes/search/sphinx/config_section.php deleted file mode 100644 index 79c9c8563d..0000000000 --- a/phpBB/includes/search/sphinx/config_section.php +++ /dev/null @@ -1,162 +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_section -* Represents a single section inside the sphinx configuration -*/ -class phpbb_search_sphinx_config_section -{ - private $name; - private $comment; - private $end_comment; - private $variables = array(); - - /** - * Construct a new section - * - * @param string $name Name of the section - * @param string $comment Comment that should be appended after the name in the - * textual format. - * - * @access public - */ - function __construct($name, $comment) - { - $this->name = $name; - $this->comment = $comment; - $this->end_comment = ''; - } - - /** - * Add a variable object to the list of variables in this section - * - * @param phpbb_search_sphinx_config_variable $variable The variable object - * - * @access public - */ - function add_variable($variable) - { - $this->variables[] = $variable; - } - - /** - * Adds a comment after the closing bracket in the textual representation - * - * @param string $end_comment - * - * @access public - */ - function set_end_comment($end_comment) - { - $this->end_comment = $end_comment; - } - - /** - * Getter for the name of this section - * - * @return string Section's name - * - * @access public - */ - function get_name() - { - return $this->name; - } - - /** - * Get a variable object by its name - * - * @param string $name The name of the variable that shall be returned - * @return phpbb_search_sphinx_config_section The first variable object from this section with the - * given name or null if none was found - * - * @access public - */ - function get_variable_by_name($name) - { - for ($i = 0, $size = sizeof($this->variables); $i < $size; $i++) - { - // Make sure this is a variable object and not a comment - if (($this->variables[$i] instanceof phpbb_search_sphinx_config_variable) && $this->variables[$i]->get_name() == $name) - { - return $this->variables[$i]; - } - } - } - - /** - * Deletes all variables with the given name - * - * @param string $name The name of the variable objects that are supposed to be removed - * - * @access public - */ - function delete_variables_by_name($name) - { - for ($i = 0, $size = sizeof($this->variables); $i < $size; $i++) - { - // Make sure this is a variable object and not a comment - if (($this->variables[$i] instanceof phpbb_search_sphinx_config_variable) && $this->variables[$i]->get_name() == $name) - { - array_splice($this->variables, $i, 1); - $i--; - } - } - } - - /** - * Create a new variable object and append it to the variable list of this section - * - * @param string $name The name for the new variable - * @param string $value The value for the new variable - * @return phpbb_search_sphinx_config_variable Variable object that was created - * - * @access public - */ - function create_variable($name, $value) - { - $this->variables[] = new phpbb_search_sphinx_config_variable($name, $value, ''); - return $this->variables[sizeof($this->variables) - 1]; - } - - /** - * Turns this object into a string which can be written to a config file - * - * @return string Config data in textual form, parsable for sphinx - * - * @access public - */ - function to_string() - { - $content = $this->name . ' ' . $this->comment . "\n{\n"; - - // Make sure we don't get too many newlines after the opening bracket - while (trim($this->variables[0]->to_string()) == '') - { - array_shift($this->variables); - } - - foreach ($this->variables as $variable) - { - $content .= $variable->to_string(); - } - $content .= '}' . $this->end_comment . "\n"; - - return $content; - } -} diff --git a/phpBB/includes/search/sphinx/config_variable.php b/phpBB/includes/search/sphinx/config_variable.php deleted file mode 100644 index 2c1d35a49c..0000000000 --- a/phpBB/includes/search/sphinx/config_variable.php +++ /dev/null @@ -1,80 +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_variable -* Represents a single variable inside the sphinx configuration -*/ -class phpbb_search_sphinx_config_variable -{ - private $name; - private $value; - private $comment; - - /** - * Constructs a new variable object - * - * @param string $name Name of the variable - * @param string $value Value of the variable - * @param string $comment Optional comment after the variable in the - * config file - * - * @access public - */ - function __construct($name, $value, $comment) - { - $this->name = $name; - $this->value = $value; - $this->comment = $comment; - } - - /** - * Getter for the variable's name - * - * @return string The variable object's name - * - * @access public - */ - function get_name() - { - return $this->name; - } - - /** - * Allows changing the variable's value - * - * @param string $value New value for this variable - * - * @access public - */ - function set_value($value) - { - $this->value = $value; - } - - /** - * Turns this object into a string readable by sphinx - * - * @return string Config data in textual form - * - * @access public - */ - function to_string() - { - return "\t" . $this->name . ' = ' . str_replace("\n", " \\\n", $this->value) . ' ' . $this->comment . "\n"; - } -} |