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

Recent

Welcome to TinyPortal. Please login or sign up.

Members
  • Total Members: 3,963
  • Latest: BiZaJe
Stats
  • Total Posts: 195,917
  • Total Topics: 21,308
  • Online today: 629
  • Online ever: 8,223 (February 19, 2025, 04:35:35 AM)
Users Online
  • Users: 0
  • Guests: 337
  • Total: 337

[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.

kefolds

Could this be used to pull random pictures instead of thumbnails?  I would like to have a random full size picture on my home page.

kefolds

I know you are very busy with the move but if there is a way to do this please let me know, if not please tell me that so I don't keep waiting.

Thanks

Freddy

Hi there :)

What exactly do you want it to show ?

Just the picture or also the details as shown with the thumbnail ?

How are you going to control the size of the images people upload ?

kefolds

I would like to be able to pull the actual picture, not the thumbnail. If it is too much trouble I can just change it manually every day. It is on the site I have for my son's Christian rock band  www.chosenrock.com

Freddy

Yep I understand you, but just the picture ?  No details or anything ?

QuoteHow are you going to control the size of the images people upload ?

And what about the image sizes...

kefolds

true, no details. size I would have to play with that. Probably a max width of 650

Freddy

#26
Okey dokey.

Try this out then :

////////////////////////////////////////////////////
// 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
//
// Modified 27 June 2010 by Freddy888 to work with SMF2
// and show full size images.
//
// 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;

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

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

// use random, or most recent pics?
// 0 = random, 1 = most recent, 2 = most viewed, 3 = most commented
$gal_showtype = 0;
// 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 = 1;

// information display flags (0 = No, 1 = Yes)
// display picture title?
$gal_dispTitle = 0;
// display membername who posted pic?
$gal_dispMember = 0;
// 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 = "4,2,7" - don't show categories 2, 4, or 7
$gal_disallowCats = "";
// 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'];
}
// allow member to view random pic based on security settings
if (empty($gal_viewPermission) || allowedTo('smfgallery_view')){
$gal_query = '
SELECT
filename,
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 ($gal_buddylist)")) : "AND id_member = $gal_member" ).'
'.(empty($gal_disallowCats) ? "" : " AND id_cat NOT IN ($gal_disallowCats)").'
'.(empty($gal_allowCats) ? "" : " AND id_cat IN ($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 = tp_query($gal_query, __FILE__, __LINE__);
if (!$gal_result){
// error retrieving information from database
if (mysql_errno() == 1146){
echo '<p />Error, no database found!<p />';
} else {
echo '<p />MySQL error:'.mysql_error().'<p />';
}
} else {
echo "\n".'<table cellspacing="0" cellpadding="5" border="0" align="center" width="90%">'."\n";

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

while ($row = tpdb_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 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";
// display poster's name and posted date if enabled
if (!empty($gal_dispMember) || !empty($gal_dispDate)){
echo 'Posted';
if (!empty($gal_dispMember)){
// display the member name who posted pic?  need to get name based on id_member
$get_name_result = tp_query("SELECT member_name FROM ".$db_prefix."members WHERE id_member = ".$row['id_member'], __FILE__, __LINE__);
$gal_tmp = tpdb_fetch_assoc($get_name_result);
echo ' by <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 = tp_query("SELECT title FROM ".$db_prefix."gallery_cat WHERE id_cat = ".$row['id_cat'], __FILE__, __LINE__);
$gal_tmp = tpdb_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++;
}

mysql_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!';
}

kefolds

Thanks. it seems to be working great. A little slow to load but that is to be expected (only about 1.5 seconds)

Freddy

Yep bigger pictures equals longer load times.  Glad it's working out though :)

Chinaren

It's only been minutes, but initial impressions are that this works fine on my RC3 board.  Thanks for your work!

This website is proudly hosted on Crocweb Cloud Website Hosting.