403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/fileman/classes/general/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/fileman/classes/general/spellchecker.php
<?
IncludeModuleLangFile(__FILE__);

class CSpellchecker
{
	private
		$lang,
		$skip_len,
		$pspell,
		$pspell_mode,
		$custom_spell,
		$wrongWords,
		$dics_path,
		$custom_dics_path,
		$dic;

	public function __construct($params)
	{
		$this->lang = (isset($params["lang"]) && $params["lang"] != '') ? $params["lang"] : 'en';
		$this->skip_len = $params["skip_length"];

		$this->pspell = (function_exists('pspell_config_create') && ($params["use_pspell"] == "Y"));
		//$this->custom_spell = $params["use_custom_spell"] == "Y";
		$this->custom_spell = false;
		$this->pspell_mode = $params["mode"];

		$this->dics_path = $this->checkDicPath();
		$this->user_dics_path = $this->dics_path."/custom.pws";
		$this->custom_dics_path = $this->dics_path.'/custom_dics/'.$this->lang.'_';

		if($this->custom_spell)
		{
			$this->dic = array();
		}

		if ($this->pspell)
		{
			$pspell_config = pspell_config_create ($this->lang, null, null, 'utf-8');
			pspell_config_ignore($pspell_config, $this->skip_len);
			pspell_config_mode($pspell_config, $params["mode"]);
			pspell_config_personal($pspell_config, $this->user_dics_path);
			$this->pspell_link = pspell_new_config($pspell_config);
		}
	}

	private function checkDicPath()
	{
		global $USER;
		$dics_path = $_SERVER["DOCUMENT_ROOT"].COption::GetOptionString('fileman', "user_dics_path", "/bitrix/modules/fileman/u_dics");

		$custom_path = $dics_path.'/'.$this->lang;

		if (COption::GetOptionString('fileman', "use_separeted_dics", "Y") == "Y")
		{
			$custom_path = $custom_path.'/'.$USER->GetID();
		}

		$io = CBXVirtualIo::GetInstance();
		if(!$io->DirectoryExists($custom_path))
		{
			$io->CreateDirectory($custom_path);
		}

		return $custom_path;
	}

	function codeLetter($letter)
	{
		return (in_array($letter, $this->letters) && $letter != 'ы' && $letter != 'ь' && $letter != 'ъ') ? ord($letter) : 'def';
	}

	function loadDic($letter)
	{
		$path = $this->custom_dics_path.$letter.'.dic';
		if (is_readable($path))
		{
			$dic = file($path);
			foreach ($dic as $dict_word)
			{
				$this->dic[$letter][mb_strtolower(trim($dict_word))] = $dict_word;
			}
		}
		else
			$this->dic[$letter] = array();
	}

	function checkWord($word)
	{
		//pspell
		if ($this->pspell)
		{
			return pspell_check($this->pspell_link, $word);
		}
	}


	function checkWords($words)
	{
		$this->wrongWords = array();

		for ($i = 0; $i < count($words); $i++)
		{
			if (!$this->checkWord($words[$i]))
			{
				$this->wrongWords[] = array(
					0 => $i,
					1 => $this->suggest($words[$i])
				);
			}
		}

		return $this->wrongWords;
	}

	function suggest($word)
	{
		$suggestions = array();
		//pspell
		if ($this->pspell)
		{
			$suggestions = pspell_suggest($this->pspell_link, $word);
		}
		return array_unique($suggestions);
	}

	function addWord($word = '')
	{
		//pspell
		if ($this->pspell)
		{
			if (!pspell_add_to_personal($this->pspell_link, $word) || !pspell_save_wordlist($this->pspell_link))
			{
				return false;
			}
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit