| Informações | |
|---|---|
| Título: | Funções do phpBB 2.0 (Parte 1/3) |
| Descrição: | Funções do arquivo functions.php |
| Autor: | Yuri Menzl Celaschi |
| Número de exibições: | 3857 |
| Versão para impressão | |
Funções do phpBB 2.0 (Parte 1/3)
Esse artigo tem como finalidade principal explicar quais são e para que servem as funções do phpBB 2.0. Utilizaremos como base a última versão que é a 2.0.22.
Existem 6 arquivos de funções que são functions.php, functions_admin.php, functions_post.php, functions_search.php, functions_selects.php e functions_validate.php todos localizados na pasta includes do phpBB 2.0.22. Nesse artigo explicarei o arquivo functions.php.
O arquivo functions.php é sem dúvida o mais utilizado em todo o código, todos as páginas que possuem a inclusão do arquivo commom.php, estão herdando as funções do arquivo functions.php. Resumidamente, o functions.php é o arquivo que possui todas as funções principais do código do fórum.
As funções contidas no arquivo functions.php são:
get_db_stat($mode)
phpbb_clean_username($username)
phpbb_ltrim($str, $charlist = false)
phpbb_rtrim($str, $charlist = false)
dss_rand()
get_userdata($user, $force_str = false)
make_jumpbox($action, $match_forum_id = 0)
init_userprefs($userdata)
setup_style($style)
encode_ip($dotquad_ip)
decode_ip($int_ip)
create_date($format, $gmepoch, $tz)
generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
phpbb_preg_quote($str, $delimiter)
obtain_word_list(&$orig_word, &$replacement_word)
message_die($msg_code, $msg_text = '', $msg_title = '', $err_line = '', $err_file = '\', $sql = '')
phpbb_realpath($path)
redirect($url)
A seguir os parâmetros que cada função possui serão descritos conjuntamente com o que cada uma delas fazem. Seguiremos a ordem em que aparecem no arquivo.
Get_db_stat($mode)
A função get_db_stat tem como objetivo retornar as informações usercount, newestuser, postcount e topiccount. O usercount retorna o número de usuários registrados, newestuser retorna o último usuário registrado, postcount retorna o número de posts e topiccount o número de tópicos.
O parâmetro que é necessário para esse método é o $mode, ou seja no código quando você utilizar essa função você precisará informar qual informação você gostaria de retornar entre as 4 citadas.
phpbb_clean_username($username)
Essa função tem como objetivo “limpar” o nome do usuário, ela irá remover alguns caracteres que foram adicionados buscando uma melhor segurança do fórum. O parâmetro necessário é $username, que representa o nome do usuário a ser limpo.
phpbb_ltrim($str, $charlist = false)
Essa função tem como objetivo remover alguns caracteres pré-definidos à esquerda de uma variável do tipo String (Texto). Notem que como parâmetro temos a variável $str e uma variável que está sendo definida, $charlist. Esse valor será atribuído a essa variável, se no chamado da função no código não for definido algo diferente. Se você atribuir no chamado dessa função o código TRUE, ela irá realizar a função inversa, phpbb_rtrim.
phpbb_rtrim($str, $charlist = false)
Essa função tem como objetivo remover alguns caracteres pré-definidos à direita de uma variável do tipo String (Texto). Notem que como parâmetro temos a variável $str e uma variável que está sendo definida, $charlist. Esse valor será atribuído a essa variável, se no chamado da função no código não for definido algo diferente. Se você atribuir no chamado dessa função o código TRUE, ela irá realizar a função inversa, phpbb_ltrim.
dss_rand()
Essa função irá gerar os caracteres da confirmação visual na hora do registro de um novo usuário. Para ela não é necessário nenhum parâmetro.
get_userdata($user, $force_str = false)
Essa função irá retornar todas as informações relativas ao um usuário específico, caso não seja definido o valor TRUE para a variável $force_str a função irá chamar a função phpbb_clean_username. Caso não seja definido nada, a função irá pegar os valores inteiros da variável $user, utilizando a função intval(), e retornará as informações do usuário em questão.
make_jumpbox($action, $match_forum_id = 0)
Essa função tem como objetivo criar a caixa de seleção de fórums, onde o usuário pode escolher o fórum que quer ir. Seus parâmetros são $action que é o arquivo de referência e $match_forum_id, que é o id do fórum a ser redirecionado.
init_userprefs($userdata)
A função tem como objetivo inicializar as preferências do usuário, como estilo, linguagem, formato de data, etc. Possui como parâmetro a variável global $userdata, que retorna nas informações da tabela phpbb_users. Essa função é chamada em nó início de todos os arquivos do root.
setup_style($style)
A função tem como objetivo retornar o estilo (template) do usuário, isso inclui também a pasta de imagens na linguagem escolhida pelo o usuário. O parâmeto é $style que é o id do template do usuário.
encode_ip($dotquad_ip)
A função tem como criar uma variavel do tipo String do ip no formato QQxWWxEExRRx, onde QQ, WW, EE, RR são os 2 algarismos iniciais de cada um dos campos do ip. Para isso são utilizados as funções explode() e sprintf(). O parâmetro a ser passado é o $dotquad_ip, ou seja, o IP do usuário.
decode_ip($int_ip)
A função reversa de encode_ip, ou seja ela pega a variável criada pela função encode_ip e a tranforma novamente no formato de IP padrão (qqq.www.eee.rrr). Ela utiliza as funções explode() e chunk_split(). O parâmetro é $int_ip, que é a variavel retornada na função encode_ip().
create_date($format, $gmepoch, $tz)
A função tem como objetivo de criar e retornar o formato da data escolhida pelo o usuário. Os parâmetros são $format que é o formato da data, $gmepoch que é fuso horário GMT/CUT da localidade de pc e $tz que é fuso horário escolhido pelo o usuário. Maiores informações sobre a função gmdate, acesse Manual do PHP.
generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
A função tem como objetivo criar a paginação das páginas de fórum e de tópicos. Seus parâmetros são $base_url, que é o link da paginação; $num_items, que representa o número de itens totais do chamado da função; $per_page, que é o número de itens por página; $start_item, que representa ao item inicial de cada página e $add_prevnext_text, responsável por mostrar o número de páginas na tela. Caso seja determinado o valor FALSE não mostrará as páginas.
phpbb_preg_quote($str, $delimiter)
A função tem o mesmo objetivo da função preg_quote(). Os parâmetros são $str, que é a string a ser modificada e $delimiter, que é o delimitador da string. Maiores informações sobre a função preg_quote(), acesse Manual do PHP.
obtain_word_list(&$orig_word, &$replacement_word)
A função tem como objetivo identificar e substituir as palavras censuradas no fórum. Notem que aparece um caractere & nos parâmetros da função, esse caractere representa que a variável é um vetor (array), portanto será necessário passar um vetor quando o método for chamado no código. $orig_word é a palavra censurada e $replacement_word é pelo o que a palavra será substituída.
message_die($msg_code, $msg_text = '', $msg_title = '', $err_line = '', $err_file = '', $sql = '')
A função tem como objetivo converter a função die() para um formato pré-definido. Os parâmetros são $msg_code que é o tipo da mensagem (GENERAL MESSAGE / ERROR, CRITICAL MESSAGE / ERROR), $msg_text que é o texto mostrado (o valor padrão é nulo), $msg_title que representa o título da mensagem (o valor padrão é nulo), $err_line que é a linha do erro (o valor padrão é nulo), $err_file que representa o arquivo de erro (o valor padrão é nulo) e $sql que é o código SQL que está incorreto (o valor padrão é nulo).
A variável $msg_code pode ter os valores:
GENERAL_MESSAGE: Usada para qualquer mensagem de texto simples. Exemplos: resultados de uma operação, falha de autorização, etc.
GENERAL ERROR: Usada para qualquer erro que ocorra após a inclusão do arquivo common.php e do código da sessão. Exemplo: A maior parte dos erros nos arquivos da pasta root e da pasta includes.
CRITICAL_MESSAGE: Usada quando uma configuração básica está disponível, mas a sessão não existe. Exemplo: Usuários banidos.
CRITICAL_ERROR: Usada quando as configurações do fórum não são obtidas. Exemplo: Não exitir conexão com o banco de dados. Não deve ser usada em 99.5% dos casos.
phpbb_realpath($path)
A função foi criada para ser compatível com a função realpath().
redirect($url)
A função tem como objetivo criar um redirecionamento seguro para os links. Nessa função existem alguns códigos de segurança para redirecionamentos e códigos para redirecionamentos para determinados webservers.
Esse artigo ainda será revisado por programadores e conhecedores do phpBB. No próximo artigo falarei dos arquivos functions_admin.php e functions_post.php.
Esse artigo foi escrito por Yuri Menzl Celaschi e pode ser reproduzido se forem mantidos os créditos ao autor.