SimplePortal

Support => International Support => Portuguese => Topic started by: Costa on November 18, 2008, 09:05:11 AM

Title: Código para mudança de tema rápida no SimplePortal
Post by: Costa on November 18, 2008, 09:05:11 AM
Criem um bloco de PHP na administração do Portal

Dêm o nome que quiserem, eu dei o nome Mudar de Tema
Insiram o seguinte código

Code: [Select]
/*
This is a small Theme Picker.
Version 1.1.0 (19.11.08)
Tested only on SMF 1.1.x
*/

//Settings Start here, they are all checked, and disable itself it it not usefull to disable it ;P

//This will show the Submit button, this is only for user who disable the Javascript, if you don't like it you can remove it by set it to 0
$showSubmitButton = 1;
//Auto Remove the button if Java Script avaible and enabled and the button is shown
$autoRemoveButton = 1;
//Disable the Java Script? 0 = No, 1 = Yes!
$autoSubmitThemeChange = 0;
//Enable the Images? Disable the autoSubmitThemeChange for this! Only one of them will work ;)
$showPreviewImages = 1;
//Change Theme Text for the Button
$txt['sp_ThemeChange_submit'] = 'Mudar de Skin';

//Here start the script :D and you know if you not know what you do do nothing after this ;)
global $modSettings, $context, $db_prefix, $settings, $txt, $ID_MEMBER, $scripturl, $user_info;

//Checkup Settings :) Fix them so that it work ;)
$autoSubmitThemeChange = !empty($autoSubmitThemeChange);
$showPreviewImages = !empty($showPreviewImages);
$showSubmitButton = $showPreviewImages || !empty($showSubmitButton) || !$autoSubmitThemeChange;
$autoRemoveButton = $showSubmitButton && $autoSubmitThemeChange && !empty($autoRemoveButton);
$txt['sp_ThemeChange_submit'] = empty($txt['sp_ThemeChange_submit']) ? 'Mudar de Skin' : $txt['sp_ThemeChange_submit'];

//Load the Themerelated Language Things :)
loadLanguage('Profile');

// Load the themes for pull down list
$request = db_query("
SELECT ID_THEME, variable, value
FROM {$db_prefix}themes
WHERE variable IN ('name', 'theme_dir', 'theme_url', 'images_url')
AND ID_MEMBER = 0", __FILE__, __LINE__);

while ($row = mysql_fetch_assoc($request))
{
if (!isset($context['themes'][$row['ID_THEME']]))
$context['themes'][$row['ID_THEME']] = array(
'id' => $row['ID_THEME'],
);
$context['themes'][$row['ID_THEME']][$row['variable']] = $row['value'];
}
mysql_free_result($request);

//Let's see if i should update the theme on the userdata?
if(isset($_REQUEST['th']) && is_numeric($_REQUEST['th'])) {
checkSession('get');
$_REQUEST['th'] = (int) $_REQUEST['th'];
//Fall back to default?
if(empty($context['themes'][$_REQUEST['th']]))
$_REQUEST['th'] = -1;
if(!$context['user']['is_guest'])
updateMemberData($ID_MEMBER, array('ID_THEME' => ($_REQUEST['th'] == -1 ? 0 : $_REQUEST['th'])));
redirectexit('theme='.$_REQUEST['th']);
}

//Load the current user theme, could be possible updated ;)
if(!$context['user']['is_guest']) {
$request = db_query("
SELECT ID_THEME
FROM {$db_prefix}members
WHERE ID_MEMBER = $ID_MEMBER
LIMIT 1", __FILE__, __LINE__);
list ($context['current_theme']) = mysql_fetch_row($request);
mysql_free_result($request);
}
else
$context['current_theme'] = 0; //Only for guest ;)

//Enable the Image Thumbnails?
$context['current_theme_thumb'] = '';
if($showPreviewImages) {
foreach ($context['themes'] as $ID_THEME => $theme_data)
{
// Don't try to load the forum or board default theme's data... it doesn't have any!
if ($ID_THEME == 0)
continue;

$settings = $theme_data;
$settings['theme_id'] = $ID_THEME;

if (file_exists($settings['theme_dir'] . '/languages/Settings.' . $user_info['language'] . '.php'))
include($settings['theme_dir'] . '/languages/Settings.' . $user_info['language'] . '.php');
elseif (file_exists($settings['theme_dir'] . '/languages/Settings.' . $language . '.php'))
include($settings['theme_dir'] . '/languages/Settings.' . $language . '.php');
else
{
$txt['theme_thumbnail_href'] = $settings['images_url'] . '/thumbnail.gif';
$txt['theme_description'] = '';
}

$context['themes'][$ID_THEME]['thumbnail_href'] = $txt['theme_thumbnail_href'];
$context['themes'][$ID_THEME]['description'] = $txt['theme_description'];
}

//Default Theme need an thumnail :D (Hope this work :X)
$context['themes'][0]['thumbnail_href'] = !empty($context['themes'][$modSettings['theme_default']]['thumbnail_href']) ? $context['themes'][$modSettings['theme_default']]['thumbnail_href'] : $context['themes'][1]['thumbnail_href'];
//Standardthumb :x
$context['current_theme_thumb'] = $context['themes'][0]['thumbnail_href'];
}

//Default Theme :)
$context['themes'][0]['id'] = 0;
$context['themes'][0]['name'] = $txt['theme_forum_default'];
$context['themes'][0]['description'] = $txt['theme_global_description'];

//Sort it ;)
ksort($context['themes']);

//The Java Script Parts :) Only this or the other not both :O
if($autoSubmitThemeChange)
{
echo '
<script language="JavaScript" type="text/javascript">
function sportal_theme_change(obj)
{
var id = obj.options[obj.selectedIndex].value;
var url = new String(window.location);
loc = \'index.php?th=\' + id + \';sesc=', $context['session_id'], '\';
window.location = loc;
}
</script>';
}
elseif($showPreviewImages)
{
echo '
<script language="JavaScript" type="text/javascript">
var sp_smf_thumb_link_array = new Array();';
foreach($context['themes'] as $key => $item)
echo '
sp_smf_thumb_link_array['.$key.'] = "' . $item['thumbnail_href'] . '";';
echo '
function sportal_theme_change(obj)
{
var id = obj.options[obj.selectedIndex].value;
document.getElementById("sp_theme_thumbnail").src = sp_smf_thumb_link_array[id];
}
</script>';
}


//And the pulldown
echo '
<form>
<div style="text-align: center; width:99%;">
<select name="th"' . ($autoSubmitThemeChange || $showPreviewImages ? ' onchange="sportal_theme_change(this)"' : '') . ' style="width:95%;">';
foreach ($context['themes'] as $theme)
{
if($showPreviewImages && $context['current_theme'] == $theme['id'])
$context['current_theme_thumb'] = $theme['thumbnail_href'];
echo '
<option value="', $theme['id'], '"', ($context['current_theme'] == $theme['id'] ? ' selected="selected"' : ''), '>', $theme['name'], '</option>';
}
echo '
</select>' . ($showPreviewImages ? '
<img style="padding:5px 5px 5px 5px" id="sp_theme_thumbnail" src="'.$context['current_theme_thumb'].'" />' : '') . ($showSubmitButton ? '
<input type="hidden" name="sesc" value="' . $context['session_id'] . '" />
<input style="display:inline;" id="sp_theme_changer_submitt_button" type="submit" value="' . $txt['sp_ThemeChange_submit'] . '" name="submit" />
' : '') . '
</div>
</form>';

//Autoremove the Button?
if($autoRemoveButton)
{
echo '
<script language="JavaScript" type="text/javascript">
document.getElementById("sp_theme_changer_submitt_button").style.display = "none";
</script>';
}
SimplePortal 2.3.8 © 2008-2024, SimplePortal