SMFPT - Suporte e Manutenção de Fórum em Português

SMF 1.1.x (Móbulos Manual) => SMF 1.1.x Módulos Manual => Tópico iniciado por: aalex em 15 de Fevereiro de 2008, 22:26

Título: [mod manual] passewdboard
Enviado por: aalex em 15 de Fevereiro de 2008, 22:26
Password Protect Boards

ficheiros em anexo
Código: [Seleccione]

antes de mais nada mandar o passwdBoard.php para a pasta Sources

depois amndar o passwdBoard.template.php para a pasta do teu tema





agora vou por aqui as alteracoes que tem de afzer manualmente


source/Load.php

pesquisar por
Código: [Seleccione]
b.ID_THEME, b.override_theme, b.permission_mode, b.countPosts
adicionar antes
Código: [Seleccione]
, b.passwd

pesquisar por
Código: [Seleccione]
'posts_count' => empty($row['countPosts']),
adicionar antes
Código: [Seleccione]
'passwd' => $row['passwd'],

pesquisar por
Código: [Seleccione]
if ($user_info['is_mod'])
$user_info['groups'][] = 3;

adicionar antes
Código: [Seleccione]
// Can they view this board?
if ( !$user_info['is_admin'] && !$user_info['is_mod'] && $board_info['passwd'] && !in_array($board, $_SESSION['board_access']) )
{
if ( !isset($_POST['passwd']) || sha1($board_info['name'].$_POST['passwd']) != $board_info['passwd'] )
{
loadPermissions();
loadTheme();
require_once($GLOBALS['sourcedir'] . '/passwdBoard.php');
passwdBoardFailed(!empty($board) ? "board=$board" : "topic=$topic");
}
else
$_SESSION['board_access'][] = $board;
}


pesquisar por
Código: [Seleccione]
$sc = $_SESSION['rand_code'];
adicionar antes
Código: [Seleccione]
if ( !isset($_SESSION['board_access']) )
$_SESSION['board_access'] = array();




agora no source/BoardIndex.php

pesquisar por
Código: [Seleccione]
IFNULL(mods_mem.ID_MEMBER, 0) AS ID_MODERATOR, mods_mem.realName AS modRealName
adicionar antes
Código: [Seleccione]
, b.passwd

pesquisar por
Código: [Seleccione]
'href' => $scripturl . '?board=' . $row_board['ID_BOARD'] . '.0',
adicionar antes
Código: [Seleccione]
'passwd' => !empty($row_board['passwd']),



agora no source/Subs-Boards.php

pesquisar por
Código: [Seleccione]
if (isset($boardOptions['board_name']))
$boardUpdates[] = 'name = \'' . $boardOptions['board_name'] . '\'';


adicionar antes
Código: [Seleccione]

if (isset($boardOptions['passwd']))
$boardUpdates[] = 'passwd = \'' . $boardOptions['passwd'] . '\'';


pesquisar por
Código: [Seleccione]
b.permission_mode, c.ID_CAT, c.name AS cName, c.catOrder, c.canCollapse
adicionar antes
Código: [Seleccione]
, b.passwd

pesquisar por
Código: [Seleccione]
'prev_board' => $prevBoard
adicionar depois
Código: [Seleccione]
'passwd' => !empty($row['passwd']),


agora no source/ManageBoards.php

pesquisar por
Código: [Seleccione]
'override_theme' => 0,
adicionar antes
Código: [Seleccione]
'passwd' => '',

pesquisar por
Código: [Seleccione]
$boardOptions['board_description'] = preg_replace('~[&]([^;]{8}|[^;]{0,8}$)~', '&$1', $_POST['desc']);
adicionar antes
Código: [Seleccione]
if ( $_POST['passwdBoard'] != "#FAKEPASSWORD" )
$boardOptions['passwd'] = !empty($_POST['passwdBoard']) ? sha1($boardOptions['board_name'].$_POST['passwdBoard']) : '';






agora todas as alteraçoes que se seguem seram feitas nos ficheiros do teu tema

/languages/Modifications.portuguese.php

pesquisar por
Código: [Seleccione]
?>
adicionar antes
Código: [Seleccione]
$txt['passwdBoard1'] = "Palavra pass para este quadro";
$txt['passwdBoard2'] = "Deixe espaço em branco para não tem palavra pass";
$txt['passwdBoard3'] = "Introduzir Password: ";
$txt['passwdBoard4'] = "Entrar no Quadro";
$txt['passwdBoard5'] = "Este quadro esta protegido so tem acesso se colocar a palavra pass ( Password ) ";
$txt['passwdBoard6'] = "Quadro Protegido";



/ManageBoards.template.php

pesquisar por
Código: [Seleccione]
// Finish off the table.
adicionar depois
Código: [Seleccione]
echo '
<tr>
<td>
<b>', $txt['passwdBoard1'], '</b><br />
', $txt['passwdBoard2'], '<br /><br />
</td>
<td align="right">
<input type="password" name="passwdBoard" value="', $context['board']['passwd'] ? '#FAKEPASSWORD' : '', '" />
</td>
</tr>';



/BoardIndex.template.php

pesquisar por
Código: [Seleccione]
// Show some basic information about the number of posts, etc.
adicionar depois
Código: [Seleccione]
if ( !$context['user']['is_admin'] && !$context['user']['is_mod'] && !isset($board['moderators'][$context['user']['id']]) && $board['passwd'] && !in_array($board['id'], $_SESSION['board_access']) )
echo '<br/>
', $txt['passwdBoard3'], '
<form style="display:inline" action="', $board['href'], '" method="post">
<input type="password" name="passwd" />
<input type="submit" value="', $txt['passwdBoard4'], '" />
</form>';
else if ( $board['passwd'] )
echo '<img src="', $settings['images_url'], '/icons/quick_lock.gif" style="vertical-align:bottom" title="', $txt['passwdBoard6'], '" />';




aconselho vivamente a afzerem um backup antes de procederem as alteracoes pois nao serei responsabel se se enganarem


Topico criado por: aalex Nao autorizo a divulzação sem pedirem autorizaçao
Título: Re: [mod manual] passewdboard
Enviado por: archa em 16 de Fevereiro de 2008, 11:17
Bom trabalho...
 :palmas
Título: Re: [mod manual] passewdboard
Enviado por: aalex em 16 de Fevereiro de 2008, 19:20
Bom trabalho...
 :palmas

obrigado amigo
Título: Re: [mod manual] passewdboard
Enviado por: K@Kus Lda.™ em 22 de Novembro de 2008, 12:24
Viva!...

Pois mas, o anexo foi-se!...
 cry
Título: Re: [mod manual] passewdboard
Enviado por: candidosa2 em 22 de Novembro de 2008, 15:28
O Link vai ser actualizado
dentro em breve