Aktuelles "Top Smilies" Module gesucht

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
insy
Mitglied
Beiträge: 208
Registriert: 31.10.2005 23:01
Kontaktdaten:

Aktuelles "Top Smilies" Module gesucht

Beitrag von insy »

Hallo,

habe den Statistik Mod 2.1.5. Das Top Smilies Module scheint irgendwie nicht zu funktionieren, finde aber auch kein neueres. Hat jemand einen Link?
hell is others..
Benutzeravatar
Miroerr
Mitglied
Beiträge: 611
Registriert: 21.11.2005 21:47
Kontaktdaten:

Beitrag von Miroerr »

Was funktioniert bei dir nicht ? Werden die Smilies nicht gezählt ? Das ist zumindest bei mir so.
Benutzeravatar
insy
Mitglied
Beiträge: 208
Registriert: 31.10.2005 23:01
Kontaktdaten:

Beitrag von insy »

http://www.mychemicalromanceforum.de/statistics.php
Jo, die Smilies werden weder gezählt (es steht bei allen unter Anzahl "1" und bei Prozent überall "2%") noch stimmt die Rangliste in irgendeiner Weise.
hell is others..
!anfänger!
Mitglied
Beiträge: 37
Registriert: 25.10.2004 10:38

Beitrag von !anfänger! »

Das Problem habe ich auch. Hat irgendeiner eine Lösung dafür???
Benutzeravatar
-=Fable=-
Mitglied
Beiträge: 491
Registriert: 16.09.2005 19:12
Wohnort: Nahe Lüneburg
Kontaktdaten:

Beitrag von -=Fable=- »

Da gabs ne ne Lösung für, find ich aber leider nicht....Ersetze einfach mal den ganzen Inhalt deiner module.php des smilies moduls mit:

Code: Alles auswählen

<?php
/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

// Result Cache used here

//
// Top Smilies
//

//
// Start user modifiable variables
//

//
// Set smile_pref to 0, if you want that smilies are only counted once per post.
// This means that, if the same smilie is entered ten times in a message, only one is counted in that message.
//
$smile_pref = 0;

$bars = array(
	'left' => 'images/vote_lcap.gif',
	'right' => 'images/vote_rcap.gif',
	'bar' => 'images/voting_bar.gif'
);

//
// End user modifiable variables
//

$statistics->init_bars($bars);

//
// Functions
//

//
// sort multi-dimensional array - from File Attachment Mod
//
function smilies_sort_multi_array_attachment ($sort_array, $key, $sort_order) 
{
	$last_element = count($sort_array) - 1;

	$string_sort = ( is_string($sort_array[$last_element-1][$key]) ) ? TRUE : FALSE;

	for ($i = 0; $i < $last_element; $i++) 
	{
		$num_iterations = $last_element - $i;

		for ($j = 0; $j < $num_iterations; $j++) 
		{
			$next = 0;

			//
			// do checks based on key
			//
			$switch = FALSE;
			if ( !($string_sort) )
			{
				if ( ( ($sort_order == 'DESC') && (intval($sort_array[$j][$key]) < intval($sort_array[$j + 1][$key])) ) || ( ($sort_order == 'ASC') &&    (intval($sort_array[$j][$key]) > intval($sort_array[$j + 1][$key])) ) )
				{
					$switch = TRUE;
				}
			}
			else
			{
				if ( ( ($sort_order == 'DESC') && (strcasecmp($sort_array[$j][$key], $sort_array[$j + 1][$key]) < 0) ) || ( ($sort_order ==   'ASC') && (strcasecmp($sort_array[$j][$key], $sort_array[$j + 1][$key]) > 0) ) )
				{
					$switch = TRUE;
				}
			}

			if ($switch)
			{
				$temp = $sort_array[$j];
				$sort_array[$j] = $sort_array[$j + 1];
				$sort_array[$j + 1] = $temp;
			}
		}
	}

	return ($sort_array);
}

//
// END Functions
//

$template->assign_vars(array(
	'L_TOP_SMILIES' => $lang['module_name'],

	'L_USES' => $lang['Uses'],
	'L_RANK' => $lang['Rank'],
	'L_PERCENTAGE' => $lang['Percent'],
	'L_GRAPH' => $lang['Graph'],
	'L_IMAGE' => $lang['smiley_url'],
	'L_CODE' => $lang['smiley_code'])
);

//
// Most used smilies
//

// Determine if Caching is used
if (!$statistics->result_cache_used)
{
	@set_time_limit(0);

	// Init Cache -- tells the Stats Mod that we want to use the result cache
	$result_cache->init_result_cache();

	// With every new sql_query insult, the Statistics Mod will end the previous Control. ;)
	$sql = 'SELECT code, smile_url
	FROM ' . SMILIES_TABLE;

	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Couldn\'t retrieve smilies data', '', __LINE__, __FILE__, $sql);
	}

	$rows = $db->sql_fetchrowset($result);
	$num_rows = $db->sql_numrows($result);
	
	$all_smilies = array();
	$total_smilies = 0;
	$where_query = '';
	$smile_group = array();
	$smile_urls = array();
	$smile_urls['url'] = array();
	$count = 0;

	for ($i = 0; $i < $num_rows; $i++)
	{
		$where_query .= ($where_query == '') ? ' (post_text LIKE \'%' . str_replace("'", "\'", $rows[$i]['code']) . '%\')' : ' OR (post_text LIKE \'%' . str_replace("'", "\'", $rows[$i]['code']) . '%\')';
		
		if (!in_array($rows[$i]['smile_url'], $smile_urls['url']))
		{
			$smile_urls['url'][] = $rows[$i]['smile_url'];
			$smile_urls[$rows[$i]['smile_url']] = $count;
			$count++;
			$all_smilies[$smile_urls[$rows[$i]['smile_url']]]['code'] = str_replace("'", "\'", $rows[$i]['code']);
		    $all_smilies[$smile_urls[$rows[$i]['smile_url']]]['smile_url'] = $rows[$i]['smile_url'];
		}

		$smile_group[$smile_urls[$rows[$i]['smile_url']]]['code'][] = str_replace("'", "\'", $rows[$i]['code']);
		$smile_group[$smile_urls[$rows[$i]['smile_url']]]['url'][] = $rows[$i]['smile_url'];

		$all_smilies[$smile_urls[$rows[$i]['smile_url']]]['count'] = 0;
	
	}
		
	$sql = "SELECT post_text
	FROM " . POSTS_TEXT_TABLE . "
	WHERE " . $where_query . "
	GROUP BY post_text";

	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Couldn\'t retrieve smilies data', '', __LINE__, __FILE__, $sql);
	}

	$rows = $db->sql_fetchrowset($result);
	$message = '';
// BEGIN: Modified to cycle through each message separately to correct count = 1 problem
   for ($k = 0; $k < count($rows); $k++)
   {
      //$message .= $rows[$i]['post_text'];
      $message = $rows[$k]['post_text'];
   //}
   
      //echo ";".$message.";";   
      for ($i = 0; $i < count($smile_group); $i++)
      {
         $found = FALSE;
         $match_regexp = '';
         for ($j = 0; $j < count($smile_group[$i]['code']) && $found == FALSE; $j++)
         {
            if ($smile_pref == 0)
            {
               if (strstr($message, $smile_group[$i]['code'][$j]))
               {
                  $all_smilies[$i]['count'] = $all_smilies[$i]['count'] + 1;
                  $found = TRUE;
               }
            }
            else
            {
               $match_regexp .= ($match_regexp == '') ? '/(?<=.\W|\W.|^\W)' . preg_quote($smile_group[$i]['code'][$j], "/") . '(?=.\W|\W.|\W$)' : '|(?<=.\W|\W.|^\W)' . preg_quote($smile_group[$i]['code'][$j], "/") . '(?=.\W|\W.|\W$)';
            }
         }
   
         if (!$found)
         {
            if ($match_regexp != '')
            {
               $match_regexp .= '/';
         //      echo "<br /><br />" . $match_regexp . "<br />";
         //      echo "#".$all_smilies[$i]['smile_url']."#";
               preg_match_all($match_regexp, ' ' . $message . ' ', $matches);
         //      echo "<br />-" . count($matches[0]) . "-<br />";
               $all_smilies[$i]['count'] = $all_smilies[$i]['count'] + count($matches[0]);
            }
         }
      }
   }
// END: Modified to cycle through each message separately to correct count = 1 problem 
	
	for ($i = 0; $i < count($all_smilies); $i++)
	{
		$total_smilies = $total_smilies + $all_smilies[$i]['count'];
	}

	// Sort array
	$all_smilies = smilies_sort_multi_array_attachment($all_smilies, 'count', 'DESC');

	$limit = ( $return_limit > count($all_smilies) ) ? count($all_smilies) : $return_limit;

	for ($i = 0; $i < $limit; $i++)
	{
		$class = ($i % 2) ? $theme['td_class2'] : $theme['td_class1'];

		$statistics->do_math($all_smilies[0]['count'], $all_smilies[$i]['count'], $total_smilies);

		if ($all_smilies[$i]['count'] != 0)
		{
			$template->assign_block_vars('topsmilies', array(
				'RANK' => $i+1,
				'CLASS' => $class,
				'CODE' => $all_smilies[$i]['code'],
				'USES' => $all_smilies[$i]['count'],
				'PERCENTAGE' => $statistics->percentage,
				'BAR' => $statistics->bar_percent,
				'URL' => '<img src="'. $board_config['smilies_path'] . '/' . $all_smilies[$i]['smile_url'] . '" alt="' . $all_smilies[$i]['smile_url'] . '" border="0">')
			);
		}

		$result_cache->assign_template_block_vars('topsmilies');
	}
}
else
{
	// Now use the result cache, with block_num_vars we are getting the number of variables within the block
	for ($i = 0; $i < $result_cache->block_num_vars('topsmilies'); $i++)
	{
		$template->assign_block_vars('topsmilies', $result_cache->get_block_array('topsmilies', $i));
	}

}

?>
So funzt es bei mir
Besucht meine Page unter http://www.roqbar.de
!anfänger!
Mitglied
Beiträge: 37
Registriert: 25.10.2004 10:38

Beitrag von !anfänger! »

Danke! Doch könntest du mir vielleicht nochmal deine module.tpl posten/verlinken?! Denn irgendwie habe ich da Mist gebaut und da wird gar ncihts mehr angezeigt... :lol:
!anfänger!
Mitglied
Beiträge: 37
Registriert: 25.10.2004 10:38

Beitrag von !anfänger! »

Brauche sie nicht mehr! Habe mir die original-Datei nochmal heruntergeldaden und jetzt funktioniert's! Danke!!!
Doch ein weiteres Problem:
Die Balken rechts sind falsch dargestellt. Kann es damit zusammenhängen, dass ich das Forum schmaler gemacht habe??? Ach ja, ich verwende NoseBleed. :wink:
matthiaswehnert
Mitglied
Beiträge: 25
Registriert: 28.02.2006 11:47

Beitrag von matthiaswehnert »

Ja, das selbe Problem habe ich auch!!!, und ich habe auch nosebleed, wisst ihr da weiter???
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“