Página 1 de 3

sobre el abbcode box 3

Publicado: 23 May 2011, 19:10
por Megabyte
Solo es una pequeña consulta:

Es posible agregarle al bbcode hidden de este mod, la opcion de no mostrarlo hasta postear? (aparte de estar registrado y logueado por supuesto), como lo hace el (ABD)Simple Hiden BBcode Mod (http://www.phpbb-es.com/foro/mods-desar ... 24821.html)

:lee

Re: sobre el abbcode box 3

Publicado: 23 May 2011, 19:13
por Alorse
No se si leviatan21 ya tendrá algún add-on o modificación para esto, esperemos haber que dice, pero si no la tiene la podemos hacer, es una buena opción.

Re: sobre el abbcode box 3

Publicado: 23 May 2011, 19:54
por Megabyte
y si se adaptara con el mod que adjunto...

Bueno, leviatan21 sabrá mejor...a la espera.... :lee

leviatan21 :bravo:
Off Topic

no creen que sería interesante poner el mod que te genera el formulario solo para llenarlo, por lo menos en el area de mods, me refiero para aportar un mod, independientemente si es en desarrollo o ya aprobado?

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 18:04
por Megabyte
sorry por el "bump". :oops:

Pero la verdad me interesa. Y pues a la espera de la respuesta de Leviatan21, ya sea positiva o negativa.

o será que nos quiere dar una grata sorpresa??? :mrgreen:
Bueno sea lo que sea...a la espera.... :lee


***************************************************
La verdad no quisiera instalar el mod simple hide bbcode mod...
Pero si no hay de otra, ni modo....

************************************************

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 18:15
por leviatan21
Recién leo este tema, ayer estuve ocupado y no visité el foro.
Megabyte escribió:como lo hace el (ABD)Simple Hiden BBcode Mod
Megabyte escribió:y si se adaptara con el mod que adjunto...
Son dos comportamientos diferentes, uno se fija si ya ha postrado en ese tema y el otro la cantidad general de mensajes en el foro

De todas maneras no tengo nada parecido no se si Alorse tiene idea de como lograrlo

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 18:43
por Megabyte
ok. gracias por tu respuesta Leviatan21 , a la espera de Alorse.... :D

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 19:01
por Alorse
Megabyte escribió:a la espera de Alorse....
Voy a probar que se puede hacer, en el ABBC 3 de leviatan21 nunca lo he intentando, pero si con otros MODs, tenme paciencia :jaja:

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 19:04
por leviatan21
Alorse escribió:Voy a probar que se puede hacer
¿ Cual de los 2 métodos mensajes en ese tema o mensajes generales ?
Off Topic

hoy estaré ocupado, pero puedes contactarme por alguna duda :mrgreen:

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 19:05
por Megabyte
Alorse escribió:
Megabyte escribió:a la espera de Alorse....
Voy a probar que se puede hacer, en el ABBC 3 de leviatan21 nunca lo he intentando, pero si con otros MODs, tenme paciencia :jaja:
:ok:

ok... trataré.....de ser paciente.... :jaja: :jaja: :jaja:

aunq no me pidan la opinion..jeje...mensajes en ese tema....

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 19:31
por Alorse
leviatan21 escribió:¿ Cual de los 2 métodos mensajes en ese tema o mensajes generales ?
Con el de mensajes en el tema, si no a posteado en dicho tema no puede ver el contenido del hidden

Bueno en local me funciono con una simple consulta igual tu Megabyte seras quien siga si funciona o no.

Abre includes/abbcode.php y busca la función function hidden_pass($in), todos los cambios los haremos en dicha función y en dicho archivo.
En la función busca:

Código: Seleccionar todo

global $user; 
Y reemplazarla por:

Código: Seleccionar todo

        global $user, $topic_id, $db;

        $sql = "SELECT topic_id, poster_id
        FROM " . POSTS_TABLE . "
        WHERE topic_id = $topic_id 
        AND poster_id = " . $user->data['user_id'];

        $result = $db->sql_query($sql); 
En la función busca:

Código: Seleccionar todo

if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot']) 
Y reemplazarla por:

Código: Seleccionar todo

if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] || $db->sql_affectedrows($result) == false) 
Con eso debería funcionar como lo deseas, ya tu te encargaras de cambiar el mensaje que sale en los archivos de idioma.

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 19:47
por leviatan21
Alorse escribió:Con eso debería funcionar como lo deseas, ya tu te encargaras de cambiar el mensaje que sale en los archivos de idioma.
En base a tu propuesta, hice esta, a ver que opinas :

Código: Seleccionar todo

	/**
	* Parsing the hidden tag - Second pass.
	* @param string		$in		post text between [hidden] & [/hidden]
	* @version 3.0.6
	**/
	function hidden_pass($in)
	{
		global $user;

		// Check if the topic viewer has posted in a topic
		$unhide		= false;
		$topic_id	= request_var('t', 0);
		if ($user->data['user_id'] != ANONYMOUS && $topic_id)
		{
			global $db;

			$sql = "SELECT poster_id, topic_id 
					FROM " . POSTS_TABLE . "
					WHERE topic_id = $topic_id 
						AND poster_id = " . $user->data['user_id'];
			$result = $db->sql_query($sql);
			$unhide = $db->sql_affectedrows($result) ? true : false;
			$db->sql_freeresult($result);	
		}

		if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'])
		{
			return str_replace(array('{HIDDEN_ON}', '{HIDDEN_TEXT}'), array($user->lang['HIDDEN_ON'], $user->lang['HIDDEN_EXPLAIN']), $this->bbcode_tpl('hidden'));
		}
		else
		{
			if (!$unhide)
			{
				return str_replace(array('{HIDDEN_ON}', '{HIDDEN_TEXT}'), array($user->lang['HIDDEN_ON'], $user->lang['HIDDEN_NO_POSTS_EXPLAIN']), $this->bbcode_tpl('hidden'));
			}
			$in	= make_clickable(trim(preg_replace('#<!-- ([lmwe]) --><a class=(.*?) href=(.*?)>(.*?)</a><!-- ([lmwe]) -->#si','$3', $in)));
			$in	= str_replace(array("\r\n", '\"', '\'', '(', ')'), array("\n", '"', ''', '&#40;', '&#41;'), trim($in)) ;
			return str_replace(array('{HIDDEN_OFF}', '{UNHIDDEN_TEXT}'), array($user->lang['HIDDEN_OFF'], $in), $this->bbcode_tpl('unhidden'));
		}
	}

Y en el archivo raíz/language/es/mods/abbcode.php, debajo de

Código: Seleccionar todo

	'HIDDEN_EXPLAIN'			=> 'La Administración del Sitio requiere que esté registrado y se haya identificado para ver este mensaje.',
agregar :

Código: Seleccionar todo

	'HIDDEN_NO_POSTS_EXPLAIN'	=> 'La Administración del Sitio requiere que al menos hayas respondido e este tema para ver este mensaje.',

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 19:53
por Megabyte
Alorse: me dió un error..

Imagen

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 19:59
por leviatan21
Megabyte escribió:Alorse: me dió un error..
ese error es por el portal, en el portal no hay variable $topic_id, prueba mi version ;)

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 20:03
por Alorse
Parece que hubieras hecho un cambio mal ya que no le esta llegando a la consulta el ID del tema.
Fijate que si estes llamando en el global el topic_id global $user, $topic_id, $db;
Sino prueba la opción de leviatan21 aunque hace lo mismo con algunas validaciones mas.

Re: sobre el abbcode box 3

Publicado: 24 May 2011, 20:21
por Megabyte
leviatan21 escribió:
Alorse escribió:Con eso debería funcionar como lo deseas, ya tu te encargaras de cambiar el mensaje que sale en los archivos de idioma.
En base a tu propuesta, hice esta, a ver que opinas :

Código: Seleccionar todo

	/**
	* Parsing the hidden tag - Second pass.
	* @param string		$in		post text between [hidden] & [/hidden]
	* @version 3.0.6
	**/
	function hidden_pass($in)
	{
		global $user;

		// Check if the topic viewer has posted in a topic
		$unhide		= false;
		$topic_id	= request_var('t', 0);
		if ($user->data['user_id'] != ANONYMOUS && $topic_id)
		{
			global $db;

			$sql = "SELECT poster_id, topic_id 
					FROM " . POSTS_TABLE . "
					WHERE topic_id = $topic_id 
						AND poster_id = " . $user->data['user_id'];
			$result = $db->sql_query($sql);
			$unhide = $db->sql_affectedrows($result) ? true : false;
			$db->sql_freeresult($result);	
		}

		if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'])
		{
			return str_replace(array('{HIDDEN_ON}', '{HIDDEN_TEXT}'), array($user->lang['HIDDEN_ON'], $user->lang['HIDDEN_EXPLAIN']), $this->bbcode_tpl('hidden'));
		}
		else
		{
			if (!$unhide)
			{
				return str_replace(array('{HIDDEN_ON}', '{HIDDEN_TEXT}'), array($user->lang['HIDDEN_ON'], $user->lang['HIDDEN_NO_POSTS_EXPLAIN']), $this->bbcode_tpl('hidden'));
			}
			$in	= make_clickable(trim(preg_replace('#<!-- ([lmwe]) --><a class=(.*?) href=(.*?)>(.*?)</a><!-- ([lmwe]) -->#si','$3', $in)));
			$in	= str_replace(array("\r\n", '\"', '\'', '(', ')'), array("\n", '"', ''', '&#40;', '&#41;'), trim($in)) ;
			return str_replace(array('{HIDDEN_OFF}', '{UNHIDDEN_TEXT}'), array($user->lang['HIDDEN_OFF'], $in), $this->bbcode_tpl('unhidden'));
		}
	}

lo agrego al final????