Autor Tópico: Guia para a integração do SMF  (Lida 17719 vezes)

0 Membros e 10 Visitantes estão a ver este tópico.

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
Guia para a integração do SMF
« 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

Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_pre_include
« Responder #1 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.
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_pre_load
« Responder #2 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
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_verify_user
« Responder #3 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
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_validate_login
« Responder #4 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.
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_login
« Responder #5 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
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_logout
« Responder #6 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
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_fix_url
« Responder #7 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.
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_verify_password
« Responder #8 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.
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_reset_pass
« Responder #9 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
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_delete_member
« Responder #10 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
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_register
« Responder #11 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
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_outgoing_email
« Responder #12 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.
Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_personal_message
« Responder #13 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.

Apllic   Alojamentos Profissionais de Moçambique!

Offline joomlamz

  • Fundador
  • *
  • Mensagens: 4265
  • Rank: 4877
  • Sexo: Masculino
  • Joomla!
    • Web Master !
integrate_change_member_data
« Responder #14 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.
Apllic   Alojamentos Profissionais de Moçambique!