[MODDB] ReIMG Image Resizer

A place for MOD Authors to post and receive feedback on MODs still in development. No MODs within this forum should be used within a live environment!
Scam Warning
sugarie
Registered User
Posts: 18
Joined: Wed Nov 12, 2008 2:05 am

Re: [DEV] ReIMG Image Resizer (+lightbox)

Post by sugarie » Fri May 15, 2009 5:48 pm

Hi newbie here, this looks like an amazing mod and I followed the instructions for install and I think I have it half working, my problem atm is that in the ACP controls, the config drop down menu doesn't have any options (well I think they are there but they are not displaying) Here is a screen:
http://www.rabbleguild.com/images/sugar/phpprob.jpg

Also, instead of the magnifying glass image at the top left of the resized images, there is a green box.

I followed the instructions strictly save for the very beginning which simply states this:
SQL
Code:Select All
INSERT INTO phpbb_config (config_name, config_value) VALUES ('reimg_max_width', '640'), ('reimg_max_height', '480'), ('reimg_rel_width', '0'), ('reimg_swap_portrait', '1'), ('reimg_zoom', '_litebox');
Is this another line I'm supposed to edit somewhere?? I didn't change anything for that part of the install.

Here it is in action on my board http://rabbleguild.com/forums/viewtopic.php?f=4&t=44

Thanks for your time!

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 17066
Joined: Thu Jan 06, 2005 1:30 pm
Location: Fishkill, NY
Name: David Colón
Contact:

Re: [DEV] ReIMG Image Resizer (+lightbox)

Post by DavidIQ » Fri May 15, 2009 7:08 pm

This happens when you don't do any of the language edits.
sugarie wrote:I followed the instructions strictly save for the very beginning which simply states this:
SQL
Code:Select All
INSERT INTO phpbb_config (config_name, config_value) VALUES ('reimg_max_width', '640'), ('reimg_max_height', '480'), ('reimg_rel_width', '0'), ('reimg_swap_portrait', '1'), ('reimg_zoom', '_litebox');
You're supposed to run that query in phpMyAdmin or whatever other interface your hosting provider gives you to interact with the database.
Apply to become a Jr. Extension Validator
My extensions | In need of phpBB services? | Was I helpful today?
No unsolicited PMs unless you're planning on asking for paid help.

sugarie
Registered User
Posts: 18
Joined: Wed Nov 12, 2008 2:05 am

Re: [DEV] ReIMG Image Resizer

Post by sugarie » Fri May 15, 2009 7:26 pm

Thanks for the quick reply David.
I managed to fix the language edit problem, and found a guide on how to do the SQL edit in phpmyadmin.
However, after inputting the code

Code: Select all

INSERT INTO phpbb_config (config_name, config_value) VALUES ('reimg_max_width', '640'), ('reimg_max_height', '480'), ('reimg_rel_width', '0'), ('reimg_swap_portrait', '1'), ('reimg_zoom', '_litebox');
I get this error:
Error

SQL query:

INSERT INTO phpbb_config( config_name, config_value )
VALUES (
'reimg_max_width', '640'
), (
'reimg_max_height', '480'
), (
'reimg_rel_width', '0'
), (
'reimg_swap_portrait', '1'
), (
'reimg_zoom', '_litebox'
)

MySQL said: Documentation
#1062 - Duplicate entry 'reimg_max_width' for key 1
Is it because I'm trying to change this AFTER I've already done all the file edits? Should this have been run prior to editing any files? The resizing appears to be working as intended on my forums, the only issue now is the green colored box that is used to zoom instead of the magnifying glass image.

EDIT
I got it working after a clean install- found out that the SQL error was because the tables were already in there from accessing the ACP with the mod installed.

willemc
Registered User
Posts: 32
Joined: Tue Apr 28, 2009 8:07 am

Re: [DEV] ReIMG Image Resizer

Post by willemc » Wed May 20, 2009 10:00 am

Well, everything works okay on the forum itself.
I see the magnifying glass, the lightbox works etc.

When I go to the ACP and to the settings for the image resizer, there is an error displayed at the top of the page:

Code: Select all

[phpBB Debug] PHP Notice: in file /adm/index.php on line 347: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'acp_board::select_reimg_zoom_method' was given
Some ACP page's are not displayed completely normal. The text is shown much larger.

Also I'm not able to select anything in the zooming method. (same problem as above here), I've edited all language files (Dutch, as well as English)

Does someone know what's wrong?


EDIT:
Found the problem.
In the acp_board I edited everything, but in the second edit I put it before the { instead of behind it.

User avatar
Manhattan
Registered User
Posts: 211
Joined: Fri Nov 28, 2008 7:55 pm

Re: [DEV] ReIMG Image Resizer

Post by Manhattan » Thu May 21, 2009 7:05 pm

Hi David
I've got this error in the w3.validator,

Code: Select all

Error  Line 329, Column 467: Attribute "onload" exists, but can not be used for this element.

…d8.jpg" alt="" class="reimg" onload="reimg(this);" onerror="reimg(this);" /><
Try this page

Any idea?

Thanks in advance

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 17066
Joined: Thu Jan 06, 2005 1:30 pm
Location: Fishkill, NY
Name: David Colón
Contact:

Re: [DEV] ReIMG Image Resizer

Post by DavidIQ » Thu May 21, 2009 7:58 pm

There is a note about that in the install file put in by the original author. I can't get to it right now but if you open it you'll see what I mean.
Apply to become a Jr. Extension Validator
My extensions | In need of phpBB services? | Was I helpful today?
No unsolicited PMs unless you're planning on asking for paid help.

User avatar
Manhattan
Registered User
Posts: 211
Joined: Fri Nov 28, 2008 7:55 pm

Re: [DEV] ReIMG Image Resizer

Post by Manhattan » Thu May 21, 2009 9:13 pm

DavidIQ wrote:There is a note about that in the install file put in by the original author. I can't get to it right now but if you open it you'll see what I mean.
Thanks, I found it.

dragon9114
Registered User
Posts: 14
Joined: Fri May 15, 2009 4:43 pm

Re: [DEV] ReIMG Image Resizer

Post by dragon9114 » Fri May 22, 2009 10:37 am

i cant install this mod whit mod installer.
i get these errors :
[phpBB Debug] PHP Notice: in file /includes/editor.php on line 286: strpos() [function.strpos]: Empty delimiter
[phpBB Debug] PHP Notice: in file /includes/editor.php on line 286: strpos() [function.strpos]: Empty delimiter

i have set the premissions to 777 on the ftp but it doesnt have any effect.

Mr_makaveli
Registered User
Posts: 1159
Joined: Sun Oct 26, 2008 3:34 pm

Re: [DEV] ReIMG Image Resizer

Post by Mr_makaveli » Fri May 22, 2009 11:36 am

i cant get it working
http://rizaveli.freevar.com/viewtopic.p ... 960#p42960

login: guest
p/w: welcome
www.tgzforum.com, a new forum for all types of people

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 17066
Joined: Thu Jan 06, 2005 1:30 pm
Location: Fishkill, NY
Name: David Colón
Contact:

Re: [DEV] ReIMG Image Resizer

Post by DavidIQ » Fri May 22, 2009 12:11 pm

dragon9114 wrote:i cant install this mod whit mod installer.
i get these errors :
[phpBB Debug] PHP Notice: in file /includes/editor.php on line 286: strpos() [function.strpos]: Empty delimiter
[phpBB Debug] PHP Notice: in file /includes/editor.php on line 286: strpos() [function.strpos]: Empty delimiter

i have set the premissions to 777 on the ftp but it doesnt have any effect.
This MOD was created before AutoMOD so I'm not sure it's correctly written to work with it. Therefore I cannot help you.
Apply to become a Jr. Extension Validator
My extensions | In need of phpBB services? | Was I helpful today?
No unsolicited PMs unless you're planning on asking for paid help.

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 17066
Joined: Thu Jan 06, 2005 1:30 pm
Location: Fishkill, NY
Name: David Colón
Contact:

Re: [DEV] ReIMG Image Resizer

Post by DavidIQ » Fri May 22, 2009 12:18 pm

Mr_makaveli wrote:i cant get it working
http://rizaveli.freevar.com/viewtopic.p ... 960#p42960

login: guest
p/w: welcome
You've likely missed an edit somewhere particularly the one to bbcode.php or you've not cleared your cache.

P.S. Next time don't PM me in an attempt to rush me to help you. You won't get any help.
Apply to become a Jr. Extension Validator
My extensions | In need of phpBB services? | Was I helpful today?
No unsolicited PMs unless you're planning on asking for paid help.

Mr_makaveli
Registered User
Posts: 1159
Joined: Sun Oct 26, 2008 3:34 pm

Re: [DEV] ReIMG Image Resizer

Post by Mr_makaveli » Fri May 22, 2009 12:19 pm

Sorry :oops:

i assure you have i gone over all edits it may have something too do with wysiwyg?

is there a custom bbcode this uses? that i can attach?
www.tgzforum.com, a new forum for all types of people

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 17066
Joined: Thu Jan 06, 2005 1:30 pm
Location: Fishkill, NY
Name: David Colón
Contact:

Re: [DEV] ReIMG Image Resizer

Post by DavidIQ » Fri May 22, 2009 12:46 pm

No...the img BBCode should work just fine. Post the contents of your includes/bbcode.php file using the code tag.
Apply to become a Jr. Extension Validator
My extensions | In need of phpBB services? | Was I helpful today?
No unsolicited PMs unless you're planning on asking for paid help.

Mr_makaveli
Registered User
Posts: 1159
Joined: Sun Oct 26, 2008 3:34 pm

Re: [DEV] ReIMG Image Resizer

Post by Mr_makaveli » Fri May 22, 2009 12:47 pm

Code: Select all

<?php
/**
*
* @package phpBB3
* @version $Id: bbcode.php 8953 2008-09-28 17:08:09Z acydburn $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

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

/**
* BBCode class
* @package phpBB3
*/
class bbcode
{
	var $bbcode_uid = '';
	var $bbcode_bitfield = '';
	var $bbcode_cache = array();
	var $bbcode_template = array();

	var $bbcodes = array();

	var $template_bitfield;
	var $template_filename = '';

	/**
	* Constructor
	* Init bbcode cache entries if bitfield is specified
	*/
	function bbcode($bitfield = '')
	{
		if ($bitfield)
		{
			$this->bbcode_bitfield = $bitfield;
			$this->bbcode_cache_init();
		}
	}

	/**
	* Second pass bbcodes
	*/
	function bbcode_second_pass(&$message, $bbcode_uid = '', $bbcode_bitfield = false)
	{
$matchs = array (
			'#\[img(.*?)\](.*?)\[\/img(.*?)\]#is' => '<img src="\\2" alt="" />',
			'#\[color=(.*?)\]#is'				  => '<span style="color:\\1;">',
			'#\[highlight=(.*?)\]#is'				  => '<span style="background-color:\\1;">',
			'#\[font=(.*?)\]#is'				  => '<span style="font-family:\\1;">',
			'#\[\/(font|color|size|highlight)(.*?)\]#is'    => '</span>',
			'#\[size=1(.*?)\]#is'    => '[size=85]',
			'#\[size=2(.*?)\]#is'    => '[size=100]',
			'#\[size=3(.*?)\]#is'    => '[size=150]',
			'#\[size=4(.*?)\]#is'    => '[size=175]',
			'#\[size=5(.*?)\]#is'    => '[size=200]',
			'#\[size=6(.*?)\]#is'    => '[size=210]',
			'#\[size=7(.*?)\]#is'    => '[size=220]',
			'#\[size=([0-9]{2,3}+)(.*?)\]#is'    => '<span style="font-size: \\1%; line-height: 116%;">',
			'#\[table\]#is'    => '<table style="width: 100%; padding: 0px;border:1px dotted gray;">',
			'#\[td\]#is'    => '<td style="font-size: 20px; display:table-cell;padding:1px;vertical-align:inherit;border:1px dotted #CCCCCC;">',
			'#\[tr\]#is'    => '<tr>',
			'#\[\/tr\]#is'    => '</tr>',
			'#\[\/td\]#is'    => '</td>',
			'#\[\/table\]#is'    => '</table>',
			'#\[(indent|blockquote)\]#is'    => '<blockquote class="editor">',
			'#\[\/(indent|blockquote)\]#is'    => '</blockquote>',			
			'#\[size=(.*?)\]#is'    => '',
			);
		$message = preg_replace(array_keys($matchs), array_values($matchs), $message);
		if ($bbcode_uid)
		{
			$this->bbcode_uid = $bbcode_uid;
		}

		if ($bbcode_bitfield !== false)
		{
			$this->bbcode_bitfield = $bbcode_bitfield;

			// Init those added with a new bbcode_bitfield (already stored codes will not get parsed again)
			$this->bbcode_cache_init();
		}

		if (!$this->bbcode_bitfield)
		{
			// Remove the uid from tags that have not been transformed into HTML
			if ($this->bbcode_uid)
			{
				$message = str_replace(':' . $this->bbcode_uid, '', $message);
			}

			return;
		}

		$str = array('search' => array(), 'replace' => array());
		$preg = array('search' => array(), 'replace' => array());

		$bitfield = new bitfield($this->bbcode_bitfield);
		$bbcodes_set = $bitfield->get_all_set();

		$undid_bbcode_specialchars = false;
		foreach ($bbcodes_set as $bbcode_id)
		{
			if (!empty($this->bbcode_cache[$bbcode_id]))
			{
				foreach ($this->bbcode_cache[$bbcode_id] as $type => $array)
				{
					foreach ($array as $search => $replace)
					{
						${$type}['search'][] = str_replace('$uid', $this->bbcode_uid, $search);
						${$type}['replace'][] = $replace;
					}

					if (sizeof($str['search']))
					{
						$message = str_replace($str['search'], $str['replace'], $message);
						$str = array('search' => array(), 'replace' => array());
					}

					if (sizeof($preg['search']))
					{
						// we need to turn the entities back into their original form to allow the
						// search patterns to work properly
						if (!$undid_bbcode_specialchars)
						{
							$message = str_replace(array('&#58;', '&#46;'), array(':', '.'), $message);
							$undid_bbcode_specialchars = true;
						}

						$message = preg_replace($preg['search'], $preg['replace'], $message);
						$preg = array('search' => array(), 'replace' => array());
					}
				}
			}
		}

		// Remove the uid from tags that have not been transformed into HTML
		$message = str_replace(':' . $this->bbcode_uid, '', $message);
	}

	/**
	* Init bbcode cache
	*
	* requires: $this->bbcode_bitfield
	* sets: $this->bbcode_cache with bbcode templates needed for bbcode_bitfield
	*/
	function bbcode_cache_init()
	{
		global $user, $phpbb_root_path;

		if (empty($this->template_filename))
		{
			$this->template_bitfield = new bitfield($user->theme['bbcode_bitfield']);
			$this->template_filename = $phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template/bbcode.html';
			
			if (!@file_exists($this->template_filename))
			{
				if (isset($user->theme['template_inherits_id']) && $user->theme['template_inherits_id'])
				{
					$this->template_filename = $phpbb_root_path . 'styles/' . $user->theme['template_inherit_path'] . '/template/bbcode.html';
					if (!@file_exists($this->template_filename))
					{
						trigger_error('The file ' . $this->template_filename . ' is missing.', E_USER_ERROR);
					}
				}
				else
				{
					trigger_error('The file ' . $this->template_filename . ' is missing.', E_USER_ERROR);
				}
			}
		}

		$bbcode_ids = $rowset = $sql = array();

		$bitfield = new bitfield($this->bbcode_bitfield);
		$bbcodes_set = $bitfield->get_all_set();

		foreach ($bbcodes_set as $bbcode_id)
		{
			if (isset($this->bbcode_cache[$bbcode_id]))
			{
				// do not try to re-cache it if it's already in
				continue;
			}
			$bbcode_ids[] = $bbcode_id;

			if ($bbcode_id > NUM_CORE_BBCODES)
			{
				$sql[] = $bbcode_id;
			}
		}

		if (sizeof($sql))
		{
			global $db;

			$sql = 'SELECT *
				FROM ' . BBCODES_TABLE . '
				WHERE ' . $db->sql_in_set('bbcode_id', $sql);
			$result = $db->sql_query($sql, 3600);

			while ($row = $db->sql_fetchrow($result))
			{
				// To circumvent replacing newlines with <br /> for the generated html,
				// we use carriage returns here. They are later changed back to newlines
				$row['bbcode_tpl'] = str_replace("\n", "\r", $row['bbcode_tpl']);
				$row['second_pass_replace'] = str_replace("\n", "\r", $row['second_pass_replace']);

				$rowset[$row['bbcode_id']] = $row;
			}
			$db->sql_freeresult($result);
		}

		foreach ($bbcode_ids as $bbcode_id)
		{
			switch ($bbcode_id)
			{
				case 0:
					$this->bbcode_cache[$bbcode_id] = array(
						'str' => array(
							'[/quote:$uid]'	=> $this->bbcode_tpl('quote_close', $bbcode_id)
						),
						'preg' => array(
							'#\[quote(?:="(.*?)")?:$uid\]((?!\[quote(?:=".*?")?:$uid\]).)?#ise'	=> "\$this->bbcode_second_pass_quote('\$1', '\$2')"
						)
					);
				break;

				case 1:
					$this->bbcode_cache[$bbcode_id] = array(
						'str' => array(
							'[b:$uid]'	=> $this->bbcode_tpl('b_open', $bbcode_id),
							'[/b:$uid]'	=> $this->bbcode_tpl('b_close', $bbcode_id),
						)
					);
				break;

				case 2:
					$this->bbcode_cache[$bbcode_id] = array(
						'str' => array(
							'[i:$uid]'	=> $this->bbcode_tpl('i_open', $bbcode_id),
							'[/i:$uid]'	=> $this->bbcode_tpl('i_close', $bbcode_id),
						)
					);
				break;

				case 3:
					$this->bbcode_cache[$bbcode_id] = array(
						'preg' => array(
							'#\[url:$uid\]((.*?))\[/url:$uid\]#s'			=> $this->bbcode_tpl('url', $bbcode_id),
							'#\[url=([^\[]+?):$uid\](.*?)\[/url:$uid\]#s'	=> $this->bbcode_tpl('url', $bbcode_id),
						)
					);
				break;

				case 4:
					if ($user->optionget('viewimg'))
					{
						$this->bbcode_cache[$bbcode_id] = array(
							'preg' => array(
								'#\[img:$uid\](.*?)\[/img:$uid\]#s'		=> $this->bbcode_tpl('img', $bbcode_id),
							)
						);
					}
					else
					{
						$this->bbcode_cache[$bbcode_id] = array(
							'preg' => array(
								'#\[img:$uid\](.*?)\[/img:$uid\]#s'		=> str_replace('$2', '[ img ]', $this->bbcode_tpl('url', $bbcode_id, true)),
							)
						);
					}
				break;

				case 5:
					$this->bbcode_cache[$bbcode_id] = array(
						'preg' => array(
							'#\[size=([\-\+]?\d+):$uid\](.*?)\[/size:$uid\]#s'	=> $this->bbcode_tpl('size', $bbcode_id),
						)
					);
				break;

				case 6:
					$this->bbcode_cache[$bbcode_id] = array(
						'preg' => array(
							'!\[color=(#[0-9a-f]{6}|[a-z\-]+):$uid\](.*?)\[/color:$uid\]!is'	=> $this->bbcode_tpl('color', $bbcode_id),
						)
					);
				break;

				case 7:
					$this->bbcode_cache[$bbcode_id] = array(
						'str' => array(
							'[u:$uid]'	=> $this->bbcode_tpl('u_open', $bbcode_id),
							'[/u:$uid]'	=> $this->bbcode_tpl('u_close', $bbcode_id),
						)
					);
				break;

				case 8:
					$this->bbcode_cache[$bbcode_id] = array(
						'preg' => array(
							'#\[code(?:=([a-z]+))?:$uid\](.*?)\[/code:$uid\]#ise'	=> "\$this->bbcode_second_pass_code('\$1', '\$2')",
						)
					);
				break;

				case 9:
					$this->bbcode_cache[$bbcode_id] = array(
						'preg' => array(
							'#(\[\/?(list|\*):[mou]?:?$uid\])[\n]{1}#'	=> "\$1",
							'#(\[list=([^\[]+):$uid\])[\n]{1}#'			=> "\$1",
							'#\[list=([^\[]+):$uid\]#e'					=> "\$this->bbcode_list('\$1')",
						),
						'str' => array(
							'[list:$uid]'		=> $this->bbcode_tpl('ulist_open_default', $bbcode_id),
							'[/list:u:$uid]'	=> $this->bbcode_tpl('ulist_close', $bbcode_id),
							'[/list:o:$uid]'	=> $this->bbcode_tpl('olist_close', $bbcode_id),
							'[*:$uid]'			=> $this->bbcode_tpl('listitem', $bbcode_id),
							'[/*:$uid]'			=> $this->bbcode_tpl('listitem_close', $bbcode_id),
							'[/*:m:$uid]'		=> $this->bbcode_tpl('listitem_close', $bbcode_id)
						),
					);
				break;

				case 10:
					$this->bbcode_cache[$bbcode_id] = array(
						'preg' => array(
							'#\[email:$uid\]((.*?))\[/email:$uid\]#is'			=> $this->bbcode_tpl('email', $bbcode_id),
							'#\[email=([^\[]+):$uid\](.*?)\[/email:$uid\]#is'	=> $this->bbcode_tpl('email', $bbcode_id)
						)
					);
				break;

				case 11:
					if ($user->optionget('viewflash'))
					{
						$this->bbcode_cache[$bbcode_id] = array(
							'preg' => array(
								'#\[flash=([0-9]+),([0-9]+):$uid\](.*?)\[/flash:$uid\]#'	=> $this->bbcode_tpl('flash', $bbcode_id),
							)
						);
					}
					else
					{
						$this->bbcode_cache[$bbcode_id] = array(
							'preg' => array(
								'#\[flash=([0-9]+),([0-9]+):$uid\](.*?)\[/flash:$uid\]#'	=> str_replace('$1', '$3', str_replace('$2', '[ flash ]', $this->bbcode_tpl('url', $bbcode_id, true)))
							)
						);
					}
				break;

				case 12:
					$this->bbcode_cache[$bbcode_id] = array(
						'str'	=> array(
							'[/attachment:$uid]'	=> $this->bbcode_tpl('inline_attachment_close', $bbcode_id)
						),
						'preg'	=> array(
							'#\[attachment=([0-9]+):$uid\]#'	=> $this->bbcode_tpl('inline_attachment_open', $bbcode_id)
						)
					);
				break;

				default:
					if (isset($rowset[$bbcode_id]))
					{
						if ($this->template_bitfield->get($bbcode_id))
						{
							// The bbcode requires a custom template to be loaded
							if (!$bbcode_tpl = $this->bbcode_tpl($rowset[$bbcode_id]['bbcode_tag'], $bbcode_id))
							{
								// For some reason, the required template seems not to be available, use the default template
								$bbcode_tpl = (!empty($rowset[$bbcode_id]['second_pass_replace'])) ? $rowset[$bbcode_id]['second_pass_replace'] : $rowset[$bbcode_id]['bbcode_tpl'];
							}
							else
							{
								// In order to use templates with custom bbcodes we need
								// to replace all {VARS} to corresponding backreferences
								// Note that backreferences are numbered from bbcode_match
								if (preg_match_all('/\{(URL|LOCAL_URL|EMAIL|TEXT|SIMPLETEXT|IDENTIFIER|COLOR|NUMBER)[0-9]*\}/', $rowset[$bbcode_id]['bbcode_match'], $m))
								{
									foreach ($m[0] as $i => $tok)
									{
										$bbcode_tpl = str_replace($tok, '$' . ($i + 1), $bbcode_tpl);
									}
								}
							}
						}
						else
						{
							// Default template
							$bbcode_tpl = (!empty($rowset[$bbcode_id]['second_pass_replace'])) ? $rowset[$bbcode_id]['second_pass_replace'] : $rowset[$bbcode_id]['bbcode_tpl'];
						}

						// Replace {L_*} lang strings
						$bbcode_tpl = preg_replace('/{L_([A-Z_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $bbcode_tpl);

						if (!empty($rowset[$bbcode_id]['second_pass_replace']))
						{
							// The custom BBCode requires second-pass pattern replacements
							$this->bbcode_cache[$bbcode_id] = array(
								'preg' => array($rowset[$bbcode_id]['second_pass_match'] => $bbcode_tpl)
							);
						}
						else
						{
							$this->bbcode_cache[$bbcode_id] = array(
								'str' => array($rowset[$bbcode_id]['second_pass_match'] => $bbcode_tpl)
							);
						}
					}
					else
					{
						$this->bbcode_cache[$bbcode_id] = false;
					}
				break;
			}
		}
	}

	/**
	* Return bbcode template
	*/
	function bbcode_tpl($tpl_name, $bbcode_id = -1, $skip_bitfield_check = false)
	{
		static $bbcode_hardtpl = array();
		if (empty($bbcode_hardtpl))
		{
			global $user;
			
			$bbcode_hardtpl = array(
				'b_open'	=> '<span style="font-weight: bold">',
				'b_close'	=> '</span>',
				'i_open'	=> '<span style="font-style: italic">',
				'i_close'	=> '</span>',
				'u_open'	=> '<span style="text-decoration: underline">',
				'u_close'	=> '</span>',
				'img'		=> '<img src="$1" alt="' . $user->lang['IMAGE'] . '" class="reimg" onload="reimg(this);" onerror="reimg(this);" />',
				'size'		=> '<span style="font-size: $1%; line-height: normal">$2</span>',
				'color'		=> '<span style="color: $1">$2</span>',
				'email'		=> '<a href="mailto:$1">$2</a>'
			);
		}

		if ($bbcode_id != -1 && !$skip_bitfield_check && !$this->template_bitfield->get($bbcode_id))
		{
			return (isset($bbcode_hardtpl[$tpl_name])) ? $bbcode_hardtpl[$tpl_name] : false;
		}

		if (empty($this->bbcode_template))
		{
			if (($tpl = file_get_contents($this->template_filename)) === false)
			{
				trigger_error('Could not load bbcode template', E_USER_ERROR);
			}

			// replace \ with \\ and then ' with \'.
			$tpl = str_replace('\\', '\\\\', $tpl);
			$tpl = str_replace("'", "\'", $tpl);

			// strip newlines and indent
			$tpl = preg_replace("/\n[\n\r\s\t]*/", '', $tpl);

			// Turn template blocks into PHP assignment statements for the values of $bbcode_tpl..
			$this->bbcode_template = array();

			$matches = preg_match_all('#<!-- BEGIN (.*?) -->(.*?)<!-- END (?:.*?) -->#', $tpl, $match);

			for ($i = 0; $i < $matches; $i++)
			{
				if (empty($match[1][$i]))
				{
					continue;
				}

				$this->bbcode_template[$match[1][$i]] = $this->bbcode_tpl_replace($match[1][$i], $match[2][$i]);
			}
		}

		return (isset($this->bbcode_template[$tpl_name])) ? $this->bbcode_template[$tpl_name] : ((isset($bbcode_hardtpl[$tpl_name])) ? $bbcode_hardtpl[$tpl_name] : false);
	}

	/**
	* Return bbcode template replacement
	*/
	function bbcode_tpl_replace($tpl_name, $tpl)
	{
		global $user;

		static $replacements = array(
			'quote_username_open'	=> array('{USERNAME}'	=> '$1'),
			'color'					=> array('{COLOR}'		=> '$1', '{TEXT}'			=> '$2'),
			'size'					=> array('{SIZE}'		=> '$1', '{TEXT}'			=> '$2'),
			'img'					=> array('{URL}'		=> '$1'),
			'flash'					=> array('{WIDTH}'		=> '$1', '{HEIGHT}'			=> '$2', '{URL}'	=> '$3'),
			'url'					=> array('{URL}'		=> '$1', '{DESCRIPTION}'	=> '$2'),
			'email'					=> array('{EMAIL}'		=> '$1', '{DESCRIPTION}'	=> '$2')
		);

		$tpl = preg_replace('/{L_([A-Z_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $tpl);

		if (!empty($replacements[$tpl_name]))
		{
			$tpl = strtr($tpl, $replacements[$tpl_name]);
		}

		return trim($tpl);
	}

	/**
	* Second parse list bbcode
	*/
	function bbcode_list($type)
	{
		if ($type == '')
		{
			$tpl = 'ulist_open_default';
			$type = 'default';
		}
		else if ($type == 'i')
		{
			$tpl = 'olist_open';
			$type = 'lower-roman';
		}
		else if ($type == 'I')
		{
			$tpl = 'olist_open';
			$type = 'upper-roman';
		}
		else if (preg_match('#^(disc|circle|square)$#i', $type))
		{
			$tpl = 'ulist_open';
			$type = strtolower($type);
		}
		else if (preg_match('#^[a-z]$#', $type))
		{
			$tpl = 'olist_open';
			$type = 'lower-alpha';
		}
		else if (preg_match('#[A-Z]#', $type))
		{
			$tpl = 'olist_open';
			$type = 'upper-alpha';
		}
		else if (is_numeric($type))
		{
			$tpl = 'olist_open';
			$type = 'arabic-numbers';
		}
		else
		{
			$tpl = 'olist_open';
			$type = 'arabic-numbers';
		}

		return str_replace('{LIST_TYPE}', $type, $this->bbcode_tpl($tpl));
	}

	/**
	* Second parse quote tag
	*/
	function bbcode_second_pass_quote($username, $quote)
	{
		// when using the /e modifier, preg_replace slashes double-quotes but does not
		// seem to slash anything else
		$quote = str_replace('\"', '"', $quote);
		$username = str_replace('\"', '"', $username);

		// remove newline at the beginning
		if ($quote == "\n")
		{
			$quote = '';
		}

		$quote = (($username) ? str_replace('$1', $username, $this->bbcode_tpl('quote_username_open')) : $this->bbcode_tpl('quote_open')) . $quote;

		return $quote;
	}

	/**
	* Second parse code tag
	*/
	function bbcode_second_pass_code($type, $code)
	{
		// when using the /e modifier, preg_replace slashes double-quotes but does not
		// seem to slash anything else
		$code = str_replace('\"', '"', $code);

		switch ($type)
		{
			case 'php':
				// Not the english way, but valid because of hardcoded syntax highlighting
				if (strpos($code, '<span class="syntaxdefault"><br /></span>') === 0)
				{
					$code = substr($code, 41);
				}

			// no break;

			default:
				$code = str_replace("\t", '&nbsp; &nbsp;', $code);
				$code = str_replace('  ', '&nbsp; ', $code);
				$code = str_replace('  ', ' &nbsp;', $code);

				// remove newline at the beginning
				if (!empty($code) && $code[0] == "\n")
				{
					$code = substr($code, 1);
				}
			break;
		}

		$code = $this->bbcode_tpl('code_open') . $code . $this->bbcode_tpl('code_close');

		return $code;
	}
}

?>
www.tgzforum.com, a new forum for all types of people

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 17066
Joined: Thu Jan 06, 2005 1:30 pm
Location: Fishkill, NY
Name: David Colón
Contact:

Re: [DEV] ReIMG Image Resizer

Post by DavidIQ » Fri May 22, 2009 12:59 pm

I think I see what the problem is. You have "Maximum relative image width" set to 100% so the image won't get resized. Either set it to 0 so it pays attention to the Maximum image dimensions or change it to a lower number like 75%.
Apply to become a Jr. Extension Validator
My extensions | In need of phpBB services? | Was I helpful today?
No unsolicited PMs unless you're planning on asking for paid help.

Locked

Return to “[3.0.x] MODs in Development”