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

Customizing SMF => Portais, Pontes e Integrations => Tópico iniciado por: joomlamz em 30 de Setembro de 2010, 08:44

Título: Guia para a integração do SMF
Enviado por: joomlamz em 30 de Setembro de 2010, 08:44
Uma das grandes coisas sobre o SMF é o fato de que tem formas de integração em todo o código em pontos-chave de modo que você pode adicionar funções de integração com os pontos-chave sem modificar qualquer código SMF em tudo.

Este tópico será um guia para os usos desses formas. Espero que serve útil

Iniciando o sistema de integração

Existem vários métodos para iniciar o sistema  de integração.

Normalmente, quando a criação de uma ponte, eu tenho SMF "envolvido" no contexto de um CMS, por isso a partida é feita no CMS, como parte do componente / módulo que exibe o fórum.

Eu prefiro usar o método serializado constante:

Código: [Seleccione]
//define the integration functions
define('SMF_INTEGRATION_SETTINGS', serialize(array(
   'integrate_change_email' => 'change_email_function',
   'integrate_change_member_data' => 'change_member_data_function',
   'integrate_reset_pass' => 'reset_pass_function',
   'integrate_exit' => 'exit_function',
   'integrate_logout' => 'logout_function',
   'integrate_outgoing_email' => 'outgoing_email_function',
   'integrate_login' => 'login_function',
   'integrate_validate_login' => 'validate_login_function',
   'integrate_redirect' => 'redirect_function',
   'integrate_delete_member' => 'delete_member_function',
   'integrate_register' => 'register_function',
   'integrate_pre_load' => 'pre_load_function',
   'integrate_whos_online' => 'whos_online_function',
)));


Agora que nós definimos as funções que serão chamados sempre que um evento de gancho tem lugar, precisamos saber o que esses ganchos são, e quando eles ocorrem, ea entrada e saída prevista para cada um.

Esta é uma lista de todos os nomes de integração SMF gancho até à data:

integrate_pre_include
integrate_pre_load
integrate_verify_user
integrate_validate_login
integrate_login
integrate_logout
integrate_activate
integrate_fix_url
integrate_verify_password
integrate_reset_pass
integrate_delete_member
integrate_register
integrate_outgoing_email
integrate_personal_message
integrate_change_member_data
integrate_redirect
integrate_exit
integrate_whos_online

Título: integrate_pre_include
Enviado por: joomlamz em 30 de Setembro de 2010, 08:45
Used in file:  Load.php
Used in function:  reloadSettings

Variables passed to hook function:  None
Variables expected from hook function: None

Usage:  This hook actually calls a file, not a function.

e.g. 'integrate_pre_include' => 'integration.php

Este é o gancho de integração muito encontrado pela primeira vez no fluxo de trabalho. Ele é iniciado imediatamente após o carregamento das configurações SMF. Então, se você precisar de algum script no início do SMF, isso pode ser feito com este livro em um arquivo separado, sem qualquer necessidade de modificar o código do SMF.
Título: integrate_pre_load
Enviado por: joomlamz em 30 de Setembro de 2010, 08:46
Used in file:  Load.php
Used in function:  reloadSettings

Variables passed to hook function:  None
Variables expected from hook function: None

Uso: Este livro é iniciado imediatamente após o gancho integrate_pre_include. Serve muito do mesmo tipo de propósito, mas ele chama uma função em vez de incluir um arquivo.

Exemplo de uso: modificando configurações SMF para coincidir com os de um sistema integrado
Título: integrate_verify_user
Enviado por: joomlamz em 30 de Setembro de 2010, 08:47
Used in file:  Load.php
Used in function:  loadUserSettings

Variables passed to hook function:  None
Variables expected from hook function: $ID_MEMBER (int)

Uso: Este livro é iniciado antes de verificar o cookie SMF para um utilizador válido. A SMF válida $ ID_MEMBER é esperado de volta a partir da função de gancho, ou SMF assumirá ele deve verificar o cookie SMF vez.

Exemplo de uso: O utilizador está conectado a um CMS, mas não em SMF, por isso queremos auto-login para SMF sem o cookie SMF
Título: integrate_validate_login
Enviado por: joomlamz em 30 de Setembro de 2010, 08:49
Uso: Este livro é iniciado antes da verificação de um utilizador na SMF válido login. Isto dá a aplicação integrada a chance de usar as credenciais de login antes SMF faz. Algo para se manter em mente é que o SMF hashes de senha no SHA1 no lado do cliente, portanto, uma senha unhashed não está disponível para esta função.

Um valor de verdadeiro ou falso retornado da função continuará como normal, e um valor de 'repetir' vai voltar a exibir o formulário de login, com a mensagem "Senha de segurança foi recentemente actualizado. Faça o login novamente."

Exemplo de uso: Um utilizador que existe na aplicação integrada, mas não em SMF está a tentar entrar, por isso precisa ber migrado para SMF antes SMF tem a chance de se autenticar. Algo para se manter em mente aqui é que o SMF é possível autenticar com muitos outros tipos de hashes, assim que o hash de senhas de outros sistemas normalmente pode ser escrito diretamente para a tabela de membros do SMF, com o gancho de retornar 'repetir', que irá chamar automaticamente a SMF reescrever o seu próprio hash sobre a tentativa de login segundo.
Título: integrate_login
Enviado por: joomlamz em 30 de Setembro de 2010, 08:51
Used in file:  LoginOut.php
Used in function:  Login2

Variables passed to hook function:  $user_settings['memberName'], $_REQUEST['hash_passwrd'], $modsettings['cookieTime']
Variables expected from hook function: None

Uso: Este livro é iniciado após a autenticação na SMF, mas antes de definir o cookie SMF. A sua utilização principal é definir o cookie de login de um sistema alternativo. Porque o utilizador já está autenticado no SMF, neste ponto, há muito pouca necessidade de verificações de autenticação adicional.

Exemplo de uso: um utilizador entrou em SMF, e também deve ser registrado no sistema integrado, ao mesmo tempo
Título: integrate_logout
Enviado por: joomlamz em 30 de Setembro de 2010, 08:52
Used in file:  LoginOut.php
Used in function:  Logout

Variables passed to hook function:  $user_settings['memberName']
Variables expected from hook function: None

Uso: Este livro é iniciado antes da entrada do utilizador será excluída da tabela de log SMF em linha, e SMF o cookie é descartado.

Exemplo de uso: Um utilizador que quer estar desconectado do SMF, e também deve ser desconectado do sistema integrado, ao mesmo tempo
Título: integrate_fix_url
Enviado por: joomlamz em 30 de Setembro de 2010, 08:53
Used in file:  News.php
Used in function:  fix_possible_url

Variables passed to hook function:  The current URL passed to the fix_possible_url function
Variables expected from hook function: The modified URL

Uso: Este livro é iniciado somente em feeds XML. Ela espera uma URL, e é esperado para retornar uma URL alternativa baseada na que foi passado para ele.

Exemplo de uso: SMF é envolvido em um CMS, eo URL do CMS envolto precisa aparecer na saída RSS feeds.
Título: integrate_verify_password
Enviado por: joomlamz em 30 de Setembro de 2010, 09:00
Used in file:  Profile.php, Security.php
Used in function:  modifyProfile2, validateSession

Variables passed to hook function:  username, password
Variables expected from hook function: true/false


Uso: Este livro é iniciado apenas quando a informação sensível pode estar ficando alterado. Ele é chamado quando um utilizaor está mudando o seu endereço de e-mail, e quando um administrador é utilizando o painel de admin do SMF. É valida o utilizador e senha contra o sistema integrado antes de prosseguir. SMF espera um valor de verdadeiro se a autenticação passa, e false se ele falhar.

Exemplo de uso: Você quer uma camada adicional de segurança para autenticar as alterações do usuário e acesso ao painel de admin do SMF.
Título: integrate_reset_pass
Enviado por: joomlamz em 30 de Setembro de 2010, 09:01
Used in file:  Profile.php, Reminder.php, Subs-Auth.php
Used in function:  modifyProfile2, setPassword2, secretAnswer2, resetPassword

Variables passed to hook function:  old username, new username, password
Variables expected from hook function: None


Uso: Este livro só é iniciado quando um utilizador ou senha é alterada no SMF.

Exemplo de uso: Um utilizador muda sua senha, assim que a senha também precisa mudar no sistema integrado
Título: integrate_delete_member
Enviado por: joomlamz em 30 de Setembro de 2010, 09:03
Used in file:  Subs-Members.php
Used in function:  deleteMembers

Variables passed to hook function:  user's ID_MEMBER (int)
Variables expected from hook function: None


Uso: Este livro é iniciado pouco antes de um utilizaor é excluído do SMF.

Exemplo de uso: Um usuário excluiu sua conta, ou o administrador tenha excluído uma conta de utilizador, ea conta deve ser excluída do sistema integrado também
Título: integrate_register
Enviado por: joomlamz em 30 de Setembro de 2010, 09:05
Used in file:  Subs-Members.php
Used in function:  registerMember

Variables passed to hook function:  $regOptions (array), $theme_vars (array)
Variables expected from hook function: None

Uso: Este livro é iniciado pouco antes de um utilizador entrou em SMF. É um dos mais poderosos ganchos de integração, passando por todas as variáveis necessárias em uma matriz para uso em sistema integrado.

O array $ RegOptions por padrão irá conter as seguintes chaves

memberName
emailAddress
passwd (SHA1 hash)
passwordSalt
posts
dateRegistered
memberIP
memberIP2
validation_code
realName
personalText
pm_email_notify
ID_THEME
ID_POST_GROUP

É importante notar que todos os valores de texto já vai estar entre aspas simples para facilidade de uso em consultas. Mais campos estão disponíveis, e mais são adicionados com a adição de mods como o mod campos personalizados perfil.

Exemplo de uso: Um utilizador registrado no SMF, ou um administrador tenha criado um utilizador no painel de admin do SMF, eo usuário precisa ser criado no sistema integrado também
Título: integrate_outgoing_email
Enviado por: joomlamz em 30 de Setembro de 2010, 16:32
Used in file:  Subs-Post.php
Used in function:  sendmail

Variables passed to hook function:  $subject, $message, $headers
Variables expected from hook function: true/false

Uso: Este livro é iniciado pouco antes da saída do e-mail está modificado para o envio. O corpo da mensagem de texto simples ainda é neste momento.

Exemplo de uso: O fórum é envolvido em um CMS, para todas as URLs em e-mails enviados precisam ser reescritos para apontar para o CMS.
Título: integrate_personal_message
Enviado por: joomlamz em 30 de Setembro de 2010, 16:33
Used in file:  Subs-Post.php
Used in function:  sendpm

Variables passed to hook function:  $recipients, $from['username'], $subject, $message
Variables expected from hook function: None


Uso: Este livro é iniciado pouco antes de um SMF Mensagem Pessoal é enviado. Ele passa uma série de receptores, o nome do remetente, assunto e corpo da mensagem.

Exemplo de uso: Um utilizador envia uma PM, e que a PM deve aparecer no sistema integrado, bem como sistema SMF PM.

Título: integrate_change_member_data
Enviado por: joomlamz em 30 de Setembro de 2010, 16:34
Used in file:  Subs.php
Used in function:  updateMemberData

Variables passed to hook function:  $memberNames (array), $var (string), $data (string)
Variables expected from hook function: None

Uso: Este livro é iniciado pouco antes de as alterações são feitas para perfis de utilizadores. Ele é iniciado quando um administrador está mudando vários usuários no painel de administração, e também quando um usuário está mudando o seu perfil.

O array $ var é semelhante à matriz RegOptions $ integrate_register no gancho. Ele contém todos os nomes-chave para os campos a serem alterados. O array $ dados contenha os valores associados a essas chaves.
 
Exemplo de uso: Um utilizador muda seu perfil de informação, e que a informação deve ser passada para o sistema integrado.
Título: integrate_redirect
Enviado por: joomlamz em 30 de Setembro de 2010, 16:40
Used in file:  Subs.php
Used in function:  redirectexit

Variables passed to hook function:  $setLocation, $refresh
Variables expected from hook function: None


Uso: Este livro é iniciado pouco antes SMF redireciona após a submissão do formulário. Para evitar a apresentação de formulário de dados, SMF usa seu próprio sistema de redirecionamento. A variável $ setLocation será a URL para o qual redirecionar, e actualizar a variável $ é um valor booleano que determina se uma atualização da página deve ser feito após o carregamento.
 
Exemplo de uso: Assim como a função integrate_outgoing_email acima, esta pode ser usada para reescrever as URLs de redirecionamento de volta para uma página do CMS envolto.
Título: integrate_exit
Enviado por: joomlamz em 30 de Setembro de 2010, 16:49
Used in file:  Subs.php
Used in function:  obExit

Variables passed to hook function:  $do_footer && !WIRELESS (boolean)
Variables expected from hook function: None

Uso: Este livro é iniciado pouco antes de sair do SMF. Este livro é extremamente importante para pontes verdade, porque em determinadas circunstâncias, o fórum pode se desembrulhou a partir do contexto integrado sem esse gancho. Ele vai executar o código na função de gancho antes de sair do PHP.
 
Exemplo de uso: SMF é envolvido em um CMS, eo CMS precisa terminar sua execução antes de sair.
Título: integrate_whos_online
Enviado por: joomlamz em 30 de Setembro de 2010, 16:50
Used in file:  Who.php
Used in function:  determineActions

Variables passed to hook function:  $actions (array)
Variables expected from hook function: $data (text defining current user action)


Uso: Este livro é iniciado durante o processo de descobrir o que cada utilizador está fazendo para a lista Quem está on-line. Ele espera que o texto de volta, dependendo das variáveis na seqüência de consulta da página o usuário está vendo, que todos devem ser passados na matriz de ações $.
 
Exemplo de uso: Um utilizador que está acessando uma página em um sistema integrado, e que a página deve ser relatado corretamente na linha Whos.
Título: integrate_create_topic
Enviado por: joomlamz em 30 de Setembro de 2010, 17:21
Used in file: Subs-Post.php
Used in function: createPost

Variables passed to hook function: $msgOptions (array), $topicOptions (array), $posterOptions (array)
Variables expected from hook function: None


Uso: Este livro é iniciado logo após um novo tópico é inserido no banco de dados SMF. Ele passa todas as informações pertinentes a postagem para a função de gancho de integração.

Exemplo de uso: O fórum tem um "News" bordo, e todos os tópicos postados nesse fórum são também artigos de notícia na primeira página de um CMS
Título: integrate_load_theme
Enviado por: joomlamz em 30 de Setembro de 2010, 17:21
Used in File: Load.php
Used in function: loadTheme

Variables passed to hook function: None
Variables expected from hook function: None


Uso: Este livro é iniciado após SMF tem definido seu modelo de camadas, mas antes que as camadas do modelo são utilizados. Ele dá a integração a chance de alterar o modelo de camadas antes de serem usados.

Exemplo de uso: O fórum é envolvido em um CMS, que os cabeçalhos HTML precisam ser omitidos para permanecer W3C
Título: integrate_output_error
Enviado por: joomlamz em 30 de Setembro de 2010, 17:25
Used in file: Errors.php
Used in function: error_handler

Variables passed to hook function: $message (string), $error_type (string), $error_level (int), $file (string), $line (int)
Variables expected from hook function: None

Uso: Este livro é iniciado após uma mensagem de erro é gerado no SMF, mas antes SMF exibe.

Exemplo de uso: A integração deve redirecionar para uma página de erro global, em vez de uma página da SMF