TP-Docs
HTML5 Icon HTML5 Icon HTML5 Icon
TP on Social Media

Recent

Welcome to TinyPortal. Please login or sign up.

May 18, 2024, 04:16:54 PM

Login with username, password and session length
Members
  • Total Members: 3,886
  • Latest: Grendor
Stats
  • Total Posts: 195,189
  • Total Topics: 21,220
  • Online today: 112
  • Online ever: 3,540 (September 03, 2022, 01:38:54 AM)
Users Online
  • Users: 1
  • Guests: 38
  • Total: 39
  • @rjen

[Discuss] SMF Gallery Block for SMF2

Started by freddy888, April 10, 2010, 03:55:29 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Mick

Quote from: ZarPrime on July 10, 2011, 05:10:59 PM
Hey Bluedevil.  Nice to see you again.  Is this with you using the latest TP as well, 1.0 RC2?  tp_query has been replaced in favor of the SMF 2.0 SMF functions in the latest versions.  Any block code snippets that use tp_query will need to be edited.  Freddy knows just what to do on these.  Can you give him a couple of days to look at it?

ZarPrime

Hey ZP long time no see.... ;)

Yea bro, no problem :P

Freddy

I'll take a look when I have a spare minute, I'm a bit tied up at the moment. Not in a pervy way...

Mick

Quote from: Freddy on July 10, 2011, 09:07:37 PM
I'll take a look when I have a spare minute, I'm a bit tied up at the moment. Not in a pervy way...

lol, no worries  :D

Freddy

Try this out, I haven't tested all the options, but the settings you had seem to work okay.
I tidied up the code a bit too as it was a nightmare to read lol

Also changed $gal_disallowCats in the settings to use an array - same idea just made more sense to me.


////////////////////////////////////////////////////
// SMF Gallery Random Picture - ver. 1.8          //
////////////////////////////////////////////////////
//
// Developed by Thurnok
// Thurnok -AT- tinyportal .DOT. net
// November 30, 2006
//
// Updated 9/26/2008
// 1.8
//      - added display # of comments option
//
// Updated 10 April 2010 by Freddy888 to work with SMF2
// Updated 12 July 2011 by Freddy888 to work with TP1
// Used in a TinyPortal phpblock or Article.
// This block displays random/most/least/newest/oldest picture(s) from
// the SMF Gallery mod along with other information
//
//////////////////////////////////////////////

global $scripturl, $db_prefix, $modSettings, $boardurl, $user_info, $context, $smcFunc;

/*
****************************************
****************************************
***    !! Admin Config Section !!    ***
****************************************
****************************************
*/

//   *****   LAYOUT OPTIONS   *****
// how many pictures do you want to show?  0 = all!
$gal_numpics = 7;

// use random, or most recent pics?
// 0 = random, 1 = most recent, 2 = most viewed, 3 = most commented
$gal_showtype = 1;
// sort :: 0 = Descending, 1 = Ascending
$gal_sort = 0;

// enable profile pics display?
// 0 = disable, 1 = enable --- if enabled, and you are viewing a member profile, show pics from that member only
// other options still apply (showtype, sort order, etc)
$gal_profile = 1;

// only show pics from buddies?
// 0 = disable, 1 = enable --- if enabled, will only show pics posted by members in your buddy list
$gal_buddies = 0;

// use Normal Size Text, or Small Size Text? (0 = Normal Size, 1 = Small Size)
$gal_smalltext = 1;

// put pictures in how many columns?  (1 for left/right block, more for centerblock / article if you wish)
$gal_columns = 7;

// information display flags (0 = No, 1 = Yes)
// display picture title?
$gal_dispTitle = 0;
// display membername who posted pic?
$gal_dispMember = 1;
// display posted date?
$gal_dispDate = 0;
// display category the picture is in?
$gal_dispCategory = 0;
// display number of views?
$gal_dispViews = 0;
// display dimensions?
$gal_dispDimensions = 0;
// display filesize?
$gal_dispSize = 0;
// display picture description?
$gal_dispDescription = 0;
// display # comments
$gal_dispNumComments = 0;

//   *****   SECURITY CONFIGURATION   *****
// do not allow the following category numbers to be displayed
// example: $gal_disallowCats = array(4,2,7) - don't show categories 2, 4, or 7
$gal_disallowCats = array(3,4,13,15,16,17,155,172,175);
// select only from the following cats - leave empty for all - NOTE:($gal_disallowCats overrides)
// example: $gal_allowCats = "1,3,4" - show only categories 1, 3, and 4
$gal_allowCats = "";
// Require the user has allowedTo('smfgallery_view') permission to view random pics thumbnails in block?
$gal_viewPermission = 1;

/*
****************************************
****************************************
***  !! END Admin Config Section !!  ***
****************************************
****************************************
*/

//###############################################
//###############################################
//   You shouldn't change anything below here
//###############################################
//###############################################

if (empty($modSettings['gallery_url']))
{
$modSettings['gallery_url'] = $boardurl . '/gallery/';
}

$gal_textclass = empty($gal_smalltext) ? "normaltext" : "smalltext";

// get this user's buddy list
$gal_buddylist = implode(",", $user_info['buddies']);

// prep for our switch routine
if (empty($gal_showtype))
$gal_showtype = 0;

// sort text
if (empty($gal_sort))
{
$gal_sort_text = 'DESC';
}
else
{
$gal_sort_text = '';
}

// are we viewing a member profile and $gal_profile is enabled?
if (!empty($gal_profile) && strtolower($context['current_action']) == "profile")
{
$gal_member = empty($_GET['u']) ? $context['user']['id'] : $_GET['u'];
}
else
$gal_member = '';

// allow member to view random pic based on security settings
if (empty($gal_viewPermission) || allowedTo('smfgallery_view'))
{
$gal_query = '
SELECT
thumbfilename,
id_picture,
id_member,
date,
title,
description,
views,
filesize,
height,
width,
commenttotal,
id_cat
FROM {db_prefix}gallery_pic
WHERE approved = 1
'.(empty($gal_member) ? (empty($gal_buddies) ? "" : (empty($gal_buddylist) ? "
AND id_member = NULL " : "AND id_member IN ({array_int:gal_buddylist})")) : "AND id_member = {int:gal_member}" ).'
'.(empty($gal_disallowCats) ? "" : "   AND id_cat NOT IN ({array_int:gal_disallowCats})").'
'.(empty($gal_allowCats) ? "" : "   AND id_cat IN ({array_int:gal_allowCats})").'
GROUP BY thumbfilename ';

switch ($gal_showtype){
// most/least recent
case 1:
$gal_query .= '
ORDER BY date '.$gal_sort_text;
break;

// most/least viewed
case 2:
$gal_query .= '
ORDER BY views '.$gal_sort_text;
break;

// most/least commented
case 3:
$gal_query .= '
ORDER BY commenttotal '.$gal_sort_text;
break;

default:
$gal_query .= '
ORDER BY rand() '.$gal_sort_text;
break;
}

$gal_query .= (empty($_GET['gal_viewall']) && !empty($gal_numpics)) ? ' LIMIT '.$gal_numpics : '';

$gal_result = $smcFunc['db_query']('', $gal_query ,
array(
'gal_buddylist' => $gal_buddylist,
'gal_member' => $gal_member,
'gal_disallowCats' => $gal_disallowCats,
'gal_allowCats' => $gal_allowCats,
)
);


if (!$gal_result)
{
$db_error = @$smcFunc['db_error']($db_connection);
echo '<p />MySQL error:'.$db_error.'<p />';
}
else
{
echo "\n".'
<table cellspacing="0" cellpadding="2" border="0" align="center" width="100%">'."\n";

$gal_colcnt = 1;
echo "
<tr>\n";

while ($row = $smcFunc['db_fetch_assoc']($gal_result))
{
if ($gal_colcnt > $gal_columns)
{
// close out the row and start a new row
echo "   </tr>\n   <tr>\n".'      <td colspan="'.$gal_columns.'"><hr /></td>'."\n   </tr>\n   <tr>\n";
// reset count to column 1
$gal_colcnt = 1;
}

echo   '      <td class="'.$gal_textclass.'" align="center">'."\n";

// display title if enabled, make edit link if viewing user is picture poster
if (!empty($gal_dispTitle))
{
echo "         ".($context['user']['id'] == $row['id_member'] ? ('<a href="'.$scripturl.'?action=gallery;sa=edit;pic='.$row['id_picture'].'">'.$row['title'].'</a>') : $row['title'])."<br />\n";
}

// display the picture thumbnail and link it to gallery full picture
echo   '         <a href="'.$scripturl.'?action=gallery;sa=view;id='.$row['id_picture'].'"><img src="'.$modSettings['gallery_url'].$row['thumbfilename'].'" /></a><br />'."\n";

// display poster's name and posted date if enabled
if (!empty($gal_dispMember) || !empty($gal_dispDate))
{
echo 'Owner:';
if (!empty($gal_dispMember))
{

// display the member name who posted pic?  need to get name based on id_member
$get_name_result = $smcFunc['db_query']('' , '
SELECT member_name
FROM {db_prefix}members
WHERE id_member = {int:id_member}
LIMIT 1',
array (
'id_member' => $row['id_member'],
)
);

//$get_name_result = tp_query("SELECT member_name FROM ".$db_prefix."members WHERE id_member = ".$row['id_member'], __FILE__, __LINE__);
$gal_tmp = $smcFunc['db_fetch_assoc']($get_name_result);
echo '  <a href="'.$scripturl.'?action=profile;u='.$row['id_member'].'">'.$gal_tmp['member_name'].'</a>';
}

if (!empty($gal_dispDate))
{
// display the date it was posted
echo ' on '.date("d M Y", $row['date']);
}
echo "<br />\n";
}

// display category if enabled
if (!empty($gal_dispCategory))
{
// get category name based on category id
$get_category_result = $smcFunc['db_query']('' , '
SELECT title
FROM {db_prefix}gallery_cat
WHERE id_cat = {int:id_cat}
LIMIT 1',
array (
'id_cat' => $row['id_cat'],
)
);

//$get_category_result = tp_query("SELECT title FROM ".$db_prefix."gallery_cat WHERE id_cat = ".$row['id_cat'], __FILE__, __LINE__);
$gal_tmp = $smcFunc['db_fetch_assoc']($get_category_result);

echo '<br />in<br /><a href="'.$scripturl.'?action=gallery;cat='.$row['id_cat'].'">'.$gal_tmp['title']."</a><br /><br />\n";
}

// display number of views if enabled
if (!empty($gal_dispViews))
echo "Viewed ".$row['views']." times<br />\n";

// display dimensions if enabled
if (!empty($gal_dispDimensions))
echo $row['width']."w X ".$row['height']."h<br />\n";

// display filesize if enabled
if (!empty($gal_dispSize))
echo $row['filesize']." bytes<br />\n";

// display description if enabled
if (!empty($gal_dispDescription))
echo "<br />".$row['description']."<br />\n";

// display # of comments if enabled
if (!empty($gal_dispNumComments))
echo '<br /><i><a href="'.$scripturl.'?action=gallery;sa=view;id='.$row['id_picture'].'">'.$row['commenttotal']."</a> comment(s)</i><br />\n";

echo   "      </td>\n";
$gal_colcnt++;
}

$smcFunc['db_free_result']($gal_result);

echo "   </tr>\n</table>\n";
if (!empty($gal_member) && empty($_GET['gal_viewall']))
echo '<br /><a href="'.$boardurl.'/index.php?action=profile;u='.$gal_member.';gal_viewall=1">View all pics from this member</a>';

if (!empty($gal_buddies) && empty($_GET['gal_viewall']))
{
// build the link
$gal_querystring = $context['TPortal']['querystring'];
$gal_querystring .= empty($gal_querystring) ? 'gal_viewall=1' : ';gal_viewall=1';
echo '<br /><a href="'.$boardurl.'/index.php?'.$gal_querystring.'">View all pics of buddies</a>';
}
}
}
else
{
echo 'Sorry, you do not have permission to view pictures!';
}

Ken.

That works Freddy.  O0

Here's my test block.
... works OK, with no errors showing in the log.
" If everything seems under control, you're not going fast enough." - Mario Andretti
Yesterday When I was Young.

Freddy


WillyP

Works so well you sliced your finger open on it.  :o

Mick


Ken.

Quote from: WillyP on July 11, 2011, 03:51:04 PM
Works so well you sliced your finger open on it.  :o
Quote from: WillyP on July 11, 2011, 03:51:04 PM
Works so well you sliced your finger open on it.  :o
Ah... so you noticed that part Willy.  :)

That was not a fun event.  ^-^
" If everything seems under control, you're not going fast enough." - Mario Andretti
Yesterday When I was Young.

NeoX

Quote from: Freddy on July 05, 2010, 03:54:29 PM
Yes, I said image sizes could pose a problem with this if you read back a bit.

Two solutions :

1) Limit the size of images that people upload.

2) Force the browser to resize the full size image on the fly by editing the code :

Find this :

// display the picture thumbnail and link it to gallery full picture
echo ' <a href="'.$scripturl.'?action=gallery;sa=view;id='.$row['id_picture'].'"><img src="'.$modSettings['gallery_url'].$row['filename'].'" /></a><br />'."\n";


Replace it with something like this :

// display the picture and link it to gallery full picture
echo ' <a href="'.$scripturl.'?action=gallery;sa=view;id='.$row['id_picture'].'"><img src="'.$modSettings['gallery_url'].$row['filename'].'" width="650" /></a><br />'."\n";


Just change the width="650" to whatever width you want to rescale it to.  It should rescale height automatically I think.

Hi Tinyportal Support, nice to meet you!  :)
I have only a little question about thumbsnails resize. With this code I can reduce width and height dimension, fantastic!
There is possibility to crop thumbsnails so all picture are with same size?


Thank You very much!  :)