Página 1 de 1

NV advanced word censor Update Y.y

Publicado: 01 Abr 2014, 15:16
por drAkeTool
URL: http://www.esparcraft.corpmore.com/
Versión phpBB: 3.0.12
MODs Instalados: UMIL - Unified Mod Install Library
NV recent topics
Topic Preview
Reputation System
Advanced BBCode Box 3 (aka ABBC3)
board3 Portal
PBWoW 2
PBWoW 2 - Topic Preview 2.0 MOD
Sortables CAPTCHA Plugin
Plantilla(s) usada(s): Prosilver
Servidor: Hostgator
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
AutoMOD: Si

Hola amigos me gustaria saber si se puede hacer Update a este Mod :)
http://www.flying-bits.org/download.php?mod_id=8

que la verdad me interesa demasiado y me es muy útil :)
si lograran el mod completo se que a mas de uno le agradara, o sino si me pudieran decir como modificar lo que el Automod no encuentra
aqui les especifico :)

Código: Seleccionar todo

includes/acp/acp_bbcode.php
No se puede localizar el archivo

Código: Seleccionar todo

includes/acp/acp_words.php
Encontrar
if (!$word || !$replacement)
Reemplazar por
				// AWC - need this 2 arrays
				$replacements	= request_var('replacements', array(''), true);
				$isos			= request_var('isos', array(''));

				// AWC - we don't have a replacement - if (!$word || !$replacement)
				if (!$word)

Código: Seleccionar todo

includes/acp/acp_words.php
Encontrar
				$sql_ary = array(
					'word'			=> $word,
					'replacement'	=> $replacement,
				);
Después añadir
				// AWC - update all languages and there bbcode-fields
				$count = count($isos);
				while ($count > 0)
				{
					$count = $count - 1;
					if (!$replacements[$count])
					{
						trigger_error($user->lang['ENTER_WORD'] . adm_back_link($this->u_action), E_USER_WARNING);
					}
					$seven = 7;
					generate_text_for_storage($replacements[$count], $uid, $bitfield, $seven, 1, 1, 1);
					$sql_ary = array_merge($sql_ary, array('replacement_' . $isos[$count]	=> $replacements[$count],));
					$sql_ary = array_merge($sql_ary, array('replacement_' . $isos[$count] . '_uid'	=> $uid,));
					$sql_ary = array_merge($sql_ary, array('replacement_' . $isos[$count] . '_bitfield'	=> $bitfield,));
				}

Código: Seleccionar todo

includes/ucp/ucp_pm_compose.php

Encontrar
$message_parser->message = implode("\n", $forward_text) . "\n\n[quote=\"{$quote_username}\"]\n" . censor_text(trim($message_parser->message)) . "\n[/quote]";
Reemplazar por
$message_parser->message = implode("\n", $forward_text) . "\n\n[quote=\"{$quote_username}\"]\n" . trim($message_parser->message) . "\n[/quote]";

Código: Seleccionar todo

includes/cache.php

Encontrar
	function obtain_word_list()
	{
		global $db;

		if (($censors = $this->get('_word_censors')) === false)
		{
			$sql = 'SELECT word, replacement
				FROM ' . WORDS_TABLE;
			$result = $db->sql_query($sql);

			$censors = array();
			while ($row = $db->sql_fetchrow($result))
			{
				$censors['match'][] = '#(?<!\w)(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')(?!\w)#i';
				$censors['replace'][] = $row['replacement'];
			}
			$db->sql_freeresult($result);

			$this->put('_word_censors', $censors);
		}

		return $censors;
	}

Reemplazar por
	function obtain_word_list()
	{
		global $db;

		if (($censors = $this->get('_word_censors')) === false)
		{
			function fake_smiley_text($text, $force_option = false)
			{
				global $config, $user, $phpbb_root_path;

				if ($force_option || !$config['allow_smilies'] || !$user->optionget('viewsmilies'))
				{
					return preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $text);
				}
				else
				{
					return preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/(.*?) \/><!\-\- s\1 \-\->#', '<img src="' . $config['server_protocol'] . $config['server_name'] . $config['script_path'] . '/' . $config['smilies_path'] . '/\2 />', $text);
				}
			}
			function fake_text_for_display($text, $uid, $bitfield, $flags)
			{
				static $bbcode;
				if (!$text)
				{
					return '';
				}
				// Parse bbcode if bbcode uid stored and bbcode enabled
				if ($uid && ($flags & OPTION_FLAG_BBCODE))
				{
					if (!class_exists('bbcode'))
					{
						global $phpbb_root_path, $phpEx;
						include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
					}
					if (empty($bbcode))
					{
						$bbcode = new bbcode($bitfield);
					}
					else
					{
						$bbcode->bbcode($bitfield);
					}
					$bbcode->bbcode_second_pass($text, $uid);
				}
				$text = bbcode_nl2br($text);
				$text = fake_smiley_text($text, !($flags & OPTION_FLAG_SMILIES));
				return $text;
			}

			// AWC - one array for each language
			$sql = 'SELECT lang_iso
				FROM ' . LANG_TABLE;
			$result = $db->sql_query($sql);

			$langs = $select_langs = array();
			while ($row = $db->sql_fetchrow($result))
			{
				$langs[] = $row['lang_iso'];
				$select_langs[] = 'replacement_' . $row['lang_iso'];
				$select_langs[] = 'replacement_' . $row['lang_iso'] . '_uid';
				$select_langs[] = 'replacement_' . $row['lang_iso'] . '_bitfield';
			}
			$db->sql_freeresult($result);
			$select_langs =  implode(', ', $select_langs);

			$sql = "SELECT word, $select_langs
				FROM " . WORDS_TABLE;
			$result = $db->sql_query($sql);

			$censors = array();
			while ($row = $db->sql_fetchrow($result))
			{
				$censors['match'][] = '#(?<!\w)(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')(?!\w)#i';
				$flags = 7;
				foreach ($langs as $value)
				{
					$text = $row['replacement_' . $value];
					$uid = $row['replacement_' . $value . '_uid'];
					$bitfield = $row['replacement_' . $value . '_bitfield'];
					$censors['replace_' . $value][] = fake_text_for_display($text, $uid, $bitfield, $flags);
				}
			}
			$db->sql_freeresult($result);

			$this->put('_word_censors', $censors);
		}

		return $censors;
	}
Muchas gracias por su atención :)

Re: NV advanced word censor Update Y.y

Publicado: 01 Abr 2014, 16:36
por angelismo
No instales con automod, instala de forma manual

Re: NV advanced word censor Update Y.y

Publicado: 01 Abr 2014, 17:04
por drAkeTool
angelismo escribió:No instales con automod, instala de forma manual
Si eso lo intente pero hay lugares donde no entiendo y la verdad no quise moverle =(
mira por ejemplo en:

Código: Seleccionar todo

includes/acp/acp_words.php
Encontrar
if (!$word || !$replacement)
me encontre con esto

Código: Seleccionar todo

if ($word === '' || $replacement === '')
creo yo que esa es la linea, ahora como la replazo con esto?

Código: Seleccionar todo

Reemplazar por
				// AWC - need this 2 arrays
				$replacements	= request_var('replacements', array(''), true);
				$isos			= request_var('isos', array(''));

				// AWC - we don't have a replacement - if (!$word || !$replacement)
				if (!$word)
justo ahi entre en panico :lee
asi lo pongo tal cual? o las variables cambian Y.y es lo que no se jeje por eso les pedi ayuda :rock:

Re: NV advanced word censor Update Y.y

Publicado: 03 Abr 2014, 15:35
por drAkeTool
Alguien tiene alguna idea de como es que cambian esas variables?

O si se le puede hacer Update? :desert:

Re: NV advanced word censor Update Y.y

Publicado: 03 Abr 2014, 19:05
por micontre
es normal que no se encuentren codigos y que hayan sido ambiados . ten en cuenta que ese mod fue creado para phpbb 3.0.1 han habido muchos cambios des de esa vercion.
no se recomienda hacer uso de mod tan anticuados y abandonados.
usalo bajo tu responsabilidad.
el cambio de el ultimo código que pusiste seria
busca:

Código: Seleccionar todo

if ($word === '' || $replacement === '')
reemplaza por

Código: Seleccionar todo

// AWC - need this 2 arrays
				$replacements	= request_var('replacements', array(''), true);
				$isos			= request_var('isos', array(''));

				// AWC - we don't have a replacement - if ($word === '' || $replacement === '')
				if (!$word)