Hack no Cumulus Tag Cloud

Suporte aos MODs/Hacks para phpBB.
professor mauricio
Novato
Novato
Mensagens: 130
Registrado em: 02 Abr 2011, 11:58

Hack no Cumulus Tag Cloud

Mensagem por professor mauricio »

URL do Fórum: http://forumdepizzarias.com.br

Em primeiro lugar, thx to love stories.

Estamos tentando fazer aparecerem os nomes dos tópicos no cloud, mas não estamos conseguindo.

Aparecer o nome dos membros, dos fóruns, dos subfóruns, das palavras da busca, dos últimos membros conectados etc já foi possível. Mas os benditos nomes dos tópicos ainda não deu!

A ideia é trocar a lista de tópicos do viewforum_body.html por uma enorme nuvem.

Pelo que entendi, precisaremos ter uma função dentro do includes/functions_display.php que assine um bloco de template com as devidas permissões. Para tanto, já tentamos tirar o topicrow do viewforum.php e passar para o functions, porém, sem sucesso!

Conseguimos também colocar posts recents, top20 exibições, top20 respostas e 'sendo vistos' na index, no viewforum e no viewtopic, porém, essas funções rodam "depois" do cloud, ou seja, ainda não sabemos como fazer rodar "antes ou dentro" do cloud.

outra coisa: dentro do functions_cloud a opção 'title' é apenas visual, pois qualquer bloco colocado ali, por mais simples que seja, não funcionou! (apenas dentro das outras cases)

Um opção também seria fazer um $sql gerando template de diversos tipos dentro de uma das clauses do functions_cloud.php. O problema é setar as devidas permissões, afinal, as funções nessas clauses são wordlist e members, portanto, independentes de permissões.

Obs.: Cloud só funciona no prosilver e usamos absolution prosilver.

thx e desculpa a pressa e os xenismos... to correndo.
inté
Editado pela última vez por professor mauricio em 22 Ago 2011, 23:20, em um total de 1 vez.
Comeu uma pizza que pode melhorar?
Indique o Fórum de Pizzarias para a pizzaria do seu bairro!
Somos um grupo de empreendedores focados em capacitação e desenvolvimento de expertise em pizzas.
professor mauricio
Novato
Novato
Mensagens: 130
Registrado em: 02 Abr 2011, 11:58

Re: Hack no Cumulus Tag Cloud

Mensagem por professor mauricio »

Alguma ideia?

Alguém sabe como conferir as permissões para criar um sql que retorna os nomes do tópicos, por fórum?

ou algo assim?

teria de funcionar dentro do includes/includes_display.php
Comeu uma pizza que pode melhorar?
Indique o Fórum de Pizzarias para a pizzaria do seu bairro!
Somos um grupo de empreendedores focados em capacitação e desenvolvimento de expertise em pizzas.
Avatar do usuário
_Vinny_
Administrador
Administrador
Mensagens: 5971
Registrado em: 03 Set 2009, 21:59
Contato:

Re: Hack no Cumulus Tag Cloud

Mensagem por _Vinny_ »

Posta aqui o functions_cloud.php
Tradução Português Brasileiro: https://www.phpbb.com/customise/db/translation/brazilian_portuguese/

Precisa de serviços phpBB? Me mande um mensagem privada ou visite https://vinny.quest
professor mauricio
Novato
Novato
Mensagens: 130
Registrado em: 02 Abr 2011, 11:58

Re: Hack no Cumulus Tag Cloud

Mensagem por professor mauricio »

Grande _Vinny_,

Código: Selecionar todos

<?php

/**
*
* @author austin881 (Austin M.) support@moderndignity.com
* @author Flash swf component by (Roy Tanck) www.RoyTanck.com
*
* @package root/includes/functions_cloud.php
* @version $Id:$
* @copyright (c) 2010 ModernDignity.com
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
* ModernDignity.com Flash Animated Cumulus Tag Cloud for phpBB
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

// Specify localization
$user->setup('mods/cloud_lang');

function display_cloud()
{
	global $auth, $cache, $config, $db, $template, $user;
	global $phpbb_root_path, $phpEx;
		
    // Grab the config entries in the ACP
    if (($config_cloud = $cache->get('_cloud_config')) === false)
    {
       $sql = 'SELECT * FROM ' . CONFIG_CLOUD_TABLE;
       $result = $db->sql_query($sql);
       $config_cloud = array();
	   
       while ($row = $db->sql_fetchrow($result))   
       {
          $config_cloud[$row['config_name']] = $row['config_value'];
       }
       $db->sql_freeresult($result);

       // Cache this data forever (one year?). Improves performance. Can only change in ACP.
       $cache->put('_cloud_config', $config_cloud);
    }
	
	// Define variables from database
	$cloud_enabled = $config_cloud['cumulus_cloud_enabled'];
	
	$cloud_mode = $config_cloud['cumulus_cloud_mode'];

	$cloud_width = $config_cloud['cumulus_cloud_width'];
	$cloud_height = $config_cloud['cumulus_cloud_height'];
	$cloud_font_size_floor = $config_cloud['cumulus_cloud_font_size_floor']; // Not passed to template. Only used locally in this file.
	$cloud_font_size_ceiling = $config_cloud['cumulus_cloud_font_size_ceiling']; // Not passed to template. Only used locally in this file.
	
	$cloud_bgcolor = $config_cloud['cumulus_cloud_bgcolor'];
	$cloud_tcolor = $config_cloud['cumulus_cloud_tcolor'];
	$cloud_tcolor2 = ($config_cloud['cumulus_cloud_tcolor2']) ? $config_cloud['cumulus_cloud_tcolor2'] : $cloud_tcolor;
	$cloud_hicolor = $config_cloud['cumulus_cloud_hicolor'];
	$cloud_color_cat = $config_cloud['cumulus_cloud_color_cat'];
	$cloud_color_forum = $config_cloud['cumulus_cloud_color_forum'];
	$cloud_color_subforum = $config_cloud['cumulus_cloud_color_subforum'];

	$cloud_trans = $config_cloud['cumulus_cloud_trans'];
	$cloud_counts = $config_cloud['cumulus_cloud_counts']; // Not passed to template. Only used locally in this file.
	$cloud_distr = ($config_cloud['cumulus_cloud_distr']) ? 'true' : 'false';
	$cloud_max_words = $config_cloud['cumulus_cloud_max_words']; // Not passed to template. Only used locally in this file.
	$cloud_tspeed = $config_cloud['cumulus_cloud_tspeed'];
	
	// Set up class
	class hedonic
	{
		public $h;
		public function display()
		{
			global $user, $template;
			if (!$this->h)
			{
				$this->h = 'VGhlICdBbmltYXRlZCBUYWcgQ2xvdWQnIGNvcHlyaWdodCB3YXMgcmVtb3ZlZCB0aGVyZWZvcmUgdGhlIE1vZCB3YXMgZGlzYWJsZWQuIFdlIHJlcXVlc3QgeW91IHJldGFpbiB0aGUgZnVsbCBjb3B5cmlnaHQgbm90aWNlIGluY2x1ZGluZyB0aGUgbGluayB0byB3d3cubW9kZXJuZGlnbml0eS5jb20uIFRoaXMgbm90IG9ubHkgZ2l2ZXMgcmVzcGVjdCB0byB0aGUgbGFyZ2UgYW1vdW50IG9mIHRpbWUgZ2l2ZW4gZnJlZWx5IGJ5IHRoZSBkZXZlbG9wZXIgYnV0IGFsc28gaGVscHMgYnVpbGQgaW50ZXJlc3QsIHRyYWZmaWMgYW5kIHVzZSBvZiB0aGUgTW9kLiBJZiB5b3UgKGhvbmVzdGx5KSBjYW5ub3QgcmV0YWluIHRoZSBmdWxsIGNvcHlyaWdodCB3ZSBhc2sgeW91IGF0IGxlYXN0IGxlYXZlIGluIHBsYWNlIHRoZSAiQW5pbWF0ZWQgVGFnIENsb3VkIiBwb3J0aW9uLCB3aXRoICJBbmltYXRlZCBUYWcgQ2xvdWQiIGxpbmtlZCB0byB3d3cubW9kZXJuZGlnbml0eS5jb20uIElmIHlvdSByZWZ1c2UgdG8gaW5jbHVkZSBldmVuIHRoaXMgdGhlbiBzdXBwb3J0IG9uIGFsbCBmb3J1bXMgbWF5IGJlIGFmZmVjdGVkLg==';
				trigger_error(base64_decode($this->h));
			}
			$s = ((!empty($user->lang['TRANSLATION_INFO'])) ? $user->lang['TRANSLATION_INFO'] . '<br />' : '') . base64_decode($this->h);
			$user->lang['TRANSLATION_INFO'] = $s;
		}
	}

	// Assign variables to template
	$template->assign_vars(array(
		'CLOUD_ENABLED'			=> $cloud_enabled,						// (boolean)
		
		'CLOUD_MODE'			=> $cloud_mode,							// (string)

		'CLOUD_WIDTH'			=> $cloud_width,						// (int)
		'CLOUD_HEIGHT'			=> $cloud_height,						// (int)
		
		'CLOUD_BGCOLOR'			=> $cloud_bgcolor,						// (string)
		'CLOUD_TCOLOR'			=> $cloud_tcolor,						// (string)
		'CLOUD_TCOLOR2'			=> $cloud_tcolor2,						// (string)
		'CLOUD_HICOLOR'			=> $cloud_hicolor,						// (string)
		'CLOUD_COLOR_CAT'		=> $cloud_color_cat,					// (string)
		'CLOUD_COLOR_FORUM'		=> $cloud_color_forum,					// (string)
		'CLOUD_COLOR_SUBFORUM'	=> $cloud_color_subforum,				// (string)
		
		'CLOUD_TRANS'			=> $cloud_trans,						// (boolean)
		'CLOUD_DISTR'			=> $cloud_distr,						// (boolean)->(string)
		'CLOUD_TSPEED'			=> $cloud_tspeed,						// (int)
		)
	);
	
	$d = new hedonic();
	$d->h = 'PGEgaHJlZj0iaHR0cDovL3d3dy5tb2Rlcm5kaWduaXR5LmNvbSIgdGl0bGU9IkZsYXNoIEFuaW1hdGVkIEN1bXVsdXMgVGFnIENsb3VkIFdvcmRn';
//	$d->h .= 'FwaCBtb2QgYGU9IkZsYXNoIEFuaW1hdGVkHkuY29tIj5BbmltYXRgQ2xvdWQgZtb2QgYWRhcHRhdGlvbiBmb3IgcGhwQkIgJmNvcHk7IE1v';
	$d->h .= 'cmFwaCBtb2QgYWRhcHRhdGlvbiBmb3IgcGhwQkIgJmNvcHk7IE1vZGVybkRpZ25pdHkuY29tIj5BbmltYXRlZCBUYWcgQ2xvdWQgZm9yIHBocEJCPC9hPg==';
	
	switch($cloud_mode)
	{
		case 'titles': // "Forum Titles" mode.
			// Nothing to do here. It's all done in the template.

		break;
	
		case 'search': // "Search Wordlist" mode.
			// Get words and count of those words from search wordlist
			$sql = 'SELECT l.word_text, COUNT(*) AS cloud_count
				FROM ' . SEARCH_WORDLIST_TABLE . ' AS l, ' . SEARCH_WORDMATCH_TABLE . ' AS m
				WHERE m.word_id = l.word_id
				GROUP BY m.word_id
				ORDER BY cloud_count DESC';
			$result = $db->sql_query_limit($sql, $cloud_max_words);
			
			$clouds_array = array();
			
			// Do this for each word in the search wordlist
			while ($row = $db->sql_fetchrow($result))
			{
				$u_action = append_sid("{$phpbb_root_path}search.$phpEx", "keywords=" . $row['word_text']);
				$cloud_font_size = rand($cloud_font_size_floor, $cloud_font_size_ceiling);
				$clouds_array[$row['word_text']] = $row['cloud_count'];
				$tag = ($cloud_counts) ? $row['word_text'] . '(' . $clouds_array[$row['word_text']] . ')' : $row['word_text'];
				
				// Send block variables to template
				$template->assign_block_vars('cloud_search_loop', array(
					'CLOUD_SEARCH_LINK'	=> urlencode("<a href='" . $u_action . "' style='font-size:" . $cloud_font_size . "px'>" . $tag . "</a>"),
				));
				
			}
			$db->sql_freeresult($result);
		break;
		
		case 'users': // "All Users" mode.
			// Gather all registered members info
			$sql = 'SELECT user_id, username, user_colour, user_avatar
				FROM ' . USERS_TABLE . '
				WHERE user_type <> ' . USER_IGNORE . '
				ORDER BY username_clean ASC';
			$result = $db->sql_query_limit($sql, $cloud_max_words);   
			
			// Do this for each user in the users table
			while($row = $db->sql_fetchrow($result))
			{
				$u_action = append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=viewprofile&u=" . $row['user_id']);
				$cloud_font_size = rand($cloud_font_size_floor, $cloud_font_size_ceiling);
				$tag = $row['username'];
				
				// Send block variables to template
				$template->assign_block_vars('cloud_users_loop', array(
					'CLOUD_USERS_LINK'	=> urlencode("<a href='" . $u_action . "' style='font-size:" . $cloud_font_size . "px' color='0x" . $row['user_colour'] . "'>" . $tag . "</a>"),
				));
			}
			$db->sql_freeresult($result);
		break;
	}
	
	$d->display();
}
?>
A bbcode nao aceitou code=php
Comeu uma pizza que pode melhorar?
Indique o Fórum de Pizzarias para a pizzaria do seu bairro!
Somos um grupo de empreendedores focados em capacitação e desenvolvimento de expertise em pizzas.
professor mauricio
Novato
Novato
Mensagens: 130
Registrado em: 02 Abr 2011, 11:58

Re: Hack no Cumulus Tag Cloud

Mensagem por professor mauricio »

No switch ($cloud_mode) eu tentei colocar alguma coisa no case 'titles' mas sem sucesso.

mexi no wordlist com sucesso

mexi no 'all users' com sucesso. aliás, facil de colocar os últimos conectados em uma nuvem ou qualquer outra coisa.

Pensei assim: como ele pega o template do functions_display.php para gerar os nomes do fóruns, se puder assinalar um template para nomes de tópicos ficaria de bom tamanho...

Continuo estudando esse tag cloud, entendendo aos poucos, mas sem grandes progressos...

_Vinny_, vc viu que escrevi códigos de 'recentes' tópicos, sendo vistos etc na index, no viewforum e no viewtopic?
Fiquei muito alegre, mas ainda não consegui entender com clareza as permissões...

abc
Comeu uma pizza que pode melhorar?
Indique o Fórum de Pizzarias para a pizzaria do seu bairro!
Somos um grupo de empreendedores focados em capacitação e desenvolvimento de expertise em pizzas.
professor mauricio
Novato
Novato
Mensagens: 130
Registrado em: 02 Abr 2011, 11:58

Re: Hack no Cumulus Tag Cloud

Mensagem por professor mauricio »

Nada ainda/
Comeu uma pizza que pode melhorar?
Indique o Fórum de Pizzarias para a pizzaria do seu bairro!
Somos um grupo de empreendedores focados em capacitação e desenvolvimento de expertise em pizzas.
Trancado