View Full Version : Adding an album type?
Warlord
12-30-2009, 01:58 AM
Right now there are three album types, Public, Private and Profile. How would one go about adding a fourth option?
My final goal is to create an option for Webcomics and then display the latest image uploaded on an extra tab in the profile but I believe this would be where I need to start.
Warlord
01-10-2010, 03:36 AM
Ok, well I added the option in the SQL (added webcomic as an option in the state row of the album table) and figured out how to add it to the album_edit template by doing the following.
Find:
<div><label for="rb_albumtype_public"><input type="radio" name="albumtype" value="public" id="rb_albumtype_public" $formdata[albumtype_public] />$vbphrase[public]</label></div>
Add AFTER:
<!-- START WEBCOMIC OPTION -->
<div><label for="rb_albumtype_webcomic"><input type="radio" name="albumtype" value="webcomic" id="rb_albumtype_webcomic" $formdata[albumtype_webcomic] />$vbphrase[webcomic]</label></div>
<!-- END WEBCOMIC OPTION -->
(Obviously I had to add the vbphrase webcomic as well.)
Actually figuring out the php needed to update the SQL with the webcomic option seems to be kicking my butt though.
I tried adding a plugin at the hook album_album_update with the following code, although it was a total shot in the dark as I really don't have much of an idea as to what I'm doing and this is just edited code from the album.php file where I found code on updating an album.
// if changing an album to a webcomic album, be sure we actually have perm to change it
if ($vbulletin->GPC['albumtype'] == 'webcomic' AND $albuminfo['state'] != 'webcomic')
{
$creator = fetch_userinfo($albumdata->fetch_field('userid'));
cache_permissions($creator);
$can_profile_album = (
$vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_profile_styling']
AND $creator['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditbgimage']
);
if (!$can_webcomic_album)
{
$vbulletin->GPC['albumtype'] = 'webcomic';
}
}
$albumdata->set('state', $vbulletin->GPC['albumtype']);
$albumdata->pre_save();
As you may have guessed, this didn't work. If there is anyone out there that may have any pointers for me, I'm all ears. :)
--------------- Added 1263103168 at 1263103168 ---------------
Just tried changing the plugin to use the hook album_album_edit and changed the code to the following:
// if album is already a webcomic-type, show the webcomic-type option
$creator = fetch_userinfo($formdata['userid']);
cache_permissions($creator);
$show['albumtype_webcomic'] = (
$albuminfo['state'] == 'webcomic'
);
Still no luck yet. :(
Warlord
01-12-2010, 01:34 AM
No one has any idea how I can get this option to save when a user selects it? I feel like I'm at that point where I'm so close but still so far away. :(
--------------- Added 1263269702 at 1263269702 ---------------
Well I figured that maybe this in the hook albumdata_presave, which I thought would work....
// if changing an album to a webcomic album, be sure we actually have perm to change it
if ($vbulletin->GPC['albumtype'] == 'webcomic' AND $albuminfo['state'] != 'webcomic')
{
$creator = fetch_userinfo($albumdata->fetch_field('userid'));
cache_permissions($creator);
{
$vbulletin->GPC['albumtype'] = 'webcomic';
}
}
But it didn't. I got this error...
Parse error: syntax error, unexpected $end, expecting ')' in /home/righscom/public_html/addons/projectfanboy/vb/album.php on line 1770
Which I'm looking into but haven't figured out where this missing ) is supposed to be. (They all seem to match up so I'm kind of confused on that one.)
Then I figured that maybe the code wasn't getting inserted before the code:
$albumdata->set('state', $vbulletin->GPC['albumtype']);
$albumdata->pre_save();
Since the hook appears after it in album.php so I manually edited the file just to see if it would work then. That didn't work either.
Warlord
01-17-2010, 09:10 PM
bump
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.