Skocz do zawartości

Split

Użytkownik
  • Postów

    316
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    41

Treść opublikowana przez Split

  1. Posiadam najnowszą wersję z IPS 4.4.3 świeżo zainstalowaną, nic nie aktualizowałem.
  2. Cześć. Mam pewien problem z tłem na forum w profilach użytkowników. Od jakiegoś czasu użytkownicy skarżą się że swojego tła nie widzą a pozostałych widzą tła na profilach. Co może być problemem?
  3. Ok dzięki. Problem rozwiązany.
  4. @DawPi Czyli to odpowiada za wysyłkę e-maila? $this->_sendWelcomeEmail();
  5. Cześć. Napisałem sobie ostatnio kod na rejestrację IPS na innej stronie. Ustawiłem że konto jest nie aktywne i musi osoba potwierdzić je klikając w link na e-mailu. Zrobiłem funkcję, która generuje kod aktywacyjny: function _Validating($member) { \IPS\Db::i()->delete('core_validating', ['member_id=? and new_reg=1', $member->member_id]); \IPS\Db::i()->insert('core_validating', [ 'vid' => md5($member->members_pass_hash . \IPS\Login::generateRandomString()), 'member_id' => $member->member_id, 'entry_date' => time(), 'new_reg' => 1, 'ip_address' => $member->ip_address, 'user_verified' => false, 'spam_flag' => false, 'email_sent' => time(), 'do_not_delete' => false ]); } Wszystko działa jak należy, tylko że podczas pierwszego logowania wyskakuje żebym potwierdził konto ale na poczcie nic nie przychodzi. Muszę klikać przycisk "Wyślij ponownie link aktywacyjny". Chciałbym żeby od razu wysłało ten link aktywacyjny. Kod od rejestracji: $member = new \IPS\Member; $member->name = $username; $member->email = $email; $member->members_pass_hash = password_hash($password, PASSWORD_BCRYPT); $member->members_bitoptions['validating'] = true; $member->save(); _Validating($member); Z góry dziękuję za pomoc.
  6. Hej. Myślę że ten temat Ci pomoże. Miałem podobny problem. Użyj: https://invisioncommunity.com/developers/docs/development/extensions/coremembersync-r147/
  7. Ok dzięki. Problem rozwiązany.
  8. Ok dzięki za pomoc. A wiesz może w jaki sposób mogę wyłączyć stronę przez plik php? Bo chciałbym zrobić że jak zewnętrza baza danych nie będzie odpowiadać to forum ma być niedostępne.
  9. Jeszcze mam ostatnie pytanie. Jak jest zdefiniowane połączenie z zewnętrzną bazą danych jeżeli ustawię połączenie w kategorii Logowanie i rejestracja kont? \IPS\Db::i('external_database')
  10. Po odnowieniu licencji możesz ją przetransferować. Zależy czy jest możliwość transferu bo chyba jak licencja została wcześniej przeniesiona na inne konto to teraz to już nie będzie możliwości, trzeba z IPS się dogadywać.
  11. Czy podczas wykonywania zapytania muszę dodawać warunek czy istnieje połączenie czy po prostu jeżeli nie połączy się z inną bazą danych to nie wyświetli błędu? $connection = \IPS\Db::i('test'); if (isset($connection)) { $connection->insert('users', array( 'id' => $member->member_id, 'username' => $member->name, 'email' => $member->email, 'password' => $member->members_pass_hash, 'ip' => $member->ip_address, )); }
  12. Jednak mam jeszcze jedno pytanie. Dlaczego wywala mi błąd z tego pliku gdzie mam połączenie do zewnętrznej bazy danych? <?php /** * @brief serverSync Task * @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a> * @copyright (c) Invision Power Services, Inc. * @license https://www.invisioncommunity.com/legal/standards/ * @package Invision Community * @subpackage serversync * @since 28 Apr 2019 */ namespace IPS\serversync\tasks; /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); exit; } /** * serverSync Task */ class _serverSync extends \IPS\Task { public $_connection; public function _getConnection() { return $this->_connection; } /** * Execute * * If ran successfully, should return anything worth logging. Only log something * worth mentioning (don't log "task ran successfully"). Return NULL (actual NULL, not '' or 0) to not log (which will be most cases). * If an error occurs which means the task could not finish running, throw an \IPS\Task\Exception - do not log an error as a normal log. * Tasks should execute within the time of a normal HTTP request. * * @return mixed Message to log or NULL * @throws \IPS\Task\Exception */ public function execute() { try { $this->_connection = \IPS\Db::i('external', array( 'sql_host' => 'xxx', 'sql_user' => 'xxxx', 'sql_pass' => 'xxx', 'sql_database' => 'xxx', 'sql_port' => 3306, 'sql_socket' => '/var/lib/mysql.sock', 'sql_utf8mb4' => true, )); } catch( \IPS\Db\Exception $e ){} } /** * Cleanup * * If your task takes longer than 15 minutes to run, this method * will be called before execute(). Use it to clean up anything which * may not have been done * * @return void */ public function cleanup() { } } Błąd Using $this when not in object context
  13. Bardzo dziękuję Ci za pomoc. To był mój błąd bo zamiast stworzyć aplikację stworzyłem hook. A teraz utworzyłem ją uruchomiłem dodatek Membersync i tam wprowadziłem w odpowiedniej funkcji kod. Problem rozwiązany.
  14. Zdaje mi się że tak.
  15. Przy developer mode błąd: Call to undefined method IPS\Member::loggedIn() Kod: //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { exit; } namespace IPS; class hook22 extends \IPS\Patterns\ActiveRecord { private $connection; public function __construct() { $this->connection = new PDO('mysql:host=xxx;dbname=xxxx;charset=utf8', 'xxxx', 'xxxx'); } /** * Member account has been created * * @param $member \IPS\Member New member account * @return void */ public function onCreateAccount($member) { $query = $this->connection->prepare('INSERT INTO og_users SET id = ?, username = ?, email = ?, password = ?, ip = ?, added = DATE_FORMAT(FROM_UNIXTIME(?), "%Y-%m-%d %H:%i:%s")'); $query->execute(array( $member->member_id, $member->name, $member->email, $member->members_pass_hash, $member->ip_address, $member->joined )); } }
  16. Nie rozumiem
  17. @DawPi Błąd: Fatal error: Uncaught Error: Call to undefined method IPS\Member::loggedIn() in .../forum/system/Log/Log.php:107 Stack trace: #0 .../forum/init.php(659): IPS\_Log::log('Error: Class 'I...', 'uncaught_except...') #1 [internal function]: IPS\IPS::exceptionHandler(Object(Error)) #2 {main} thrown in .../forum/system/Log/Log.php on line 107 Kod: //<?php namespace IPS; /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { exit; } class hook22 extends \IPS\Patterns\ActiveRecord { private $connection; public function __construct() { $this->connection = new PDO('mysql:host=xxx;dbname=xxx;charset=utf8', 'xxx', 'xxx'); } /** * Member account has been created * * @param $member \IPS\Member New member account * @return void */ public function onCreateAccount($member) { $query = $this->connection->prepare('INSERT INTO innaBaza SET id = ?, username = ?, email = ?, password = ?, ip = ?, added = DATE_FORMAT(FROM_UNIXTIME(?), "%Y-%m-%d %H:%i:%s")'); $query->execute(array( $member->member_id, $member->name, $member->email, $member->members_pass_hash, $member->ip_address, $member->joined )); } }
  18. @DawPi Napisałem coś takiego. Mógłbyś wskazać co jest nie tak? To jest mój pierwszy plugin i nie wiem gdzie popełniłem błąd. <?xml version="1.0" encoding="UTF-8"?> <plugin name="Creating an account in the game" version_long="10000" version_human="1.0.0" author=".WhiteBlue" website="https://og-rpg.eu/" update_check=""><hooks><hook type="C" class="\IPS\Member" filename="createAccountInGame"><![CDATA[//<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { exit; } class hook20 extends _HOOK_CLASS_ { public function onCreateAccount( $member ) { try { die('sss'); } catch ( \RuntimeException $e ) { if ( method_exists( get_parent_class(), __FUNCTION__ ) ) { return \call_user_func_array( 'parent::' . __FUNCTION__, \func_get_args() ); } else { throw $e; } } } } ]]></hook></hooks><tasks/><widgets/><htmlFiles/><cssFiles/><jsFiles/><resourcesFiles/><lang/><versions/></plugin>
  19. Dzięki. Problem rozwiązany.
  20. Nie wiedziałem czy tamten temat się zalicza do tego problemu więc na wszelki wypadek utworzyłem nowy.
  21. Cześć. Można w jakiś sposób skonfigurować funkcję "Logowanie i rejestracja kont" aby po rejestracji automatycznie tworzyło się także konto w innej bazie danych? Bo aktualnie to tylko pojawia się w ustawieniach użytkownika zakładka w której mogę się zalogować danymi z innej bazy danych. Pozdrawiam. Moja konfiguracja:
  22. Ok dzięki. A mogę użyć tę zmienną? $member = new \IPS\Member;
  23. Dziękuję za odpowiedź. Masz może poradnik w którym jest wytłumaczone jak tworzyć aplikację pod ten silnik?
  24. Cześć. Mam pytanie. Otóż planuję zrobić integrację forum z inną bazą danych. O co mi dokładniej chodzi? Chodzi mi o to że po stworzeniu konta wykonuje się dane zapytanie do innej bazy danych. Teraz mam pytanie w jakim pliku mogę znaleźć funkcję, która wykonuje się po utworzeniu konta przez użytkownika. Potrzebuję jeszcze funkcję, która tworzy konto użytkownikowi. W IPS 3 była bodajże taka funkcja: IPSMember::create Z góry dziękuję za odpowiedź.
  25. O właśnie o to mi chodziło. Dzięki. Problem rozwiązany. Wesołych świąt.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.