Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

cin34

Użytkownik
  • Postów

    94
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez cin34

  1. Utworzenie hooka do klasy \IPS\core\modules\front\clubs\directory

    I do klasy w hooku wstawić funkcję:

    protected function create()
    	{
    		try
    		{
    			try
    			{
    				try
    				{
    					try
    					{
    						//I TU WŁASNY KOD, KTÓRY SIĘ WYKONUJE PODCZAS TWORZENIA KLUBU
    		
    						parent::create();
    					}
    					catch ( \RuntimeException $e )
    					{
    						if ( method_exists( get_parent_class(), __FUNCTION__ ) )
    						{
    							return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
    						}
    						else
    						{
    							throw $e;
    						}
    					}
    				}
    				catch ( \RuntimeException $e )
    				{
    					if ( method_exists( get_parent_class(), __FUNCTION__ ) )
    					{
    						return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
    					}
    					else
    					{
    						throw $e;
    					}
    				}
    			}
    			catch ( \RuntimeException $e )
    			{
    				if ( method_exists( get_parent_class(), __FUNCTION__ ) )
    				{
    					return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
    				}
    				else
    				{
    					throw $e;
    				}
    			}
    		}
    		catch ( \RuntimeException $e )
    		{
    			if ( method_exists( get_parent_class(), __FUNCTION__ ) )
    			{
    				return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
    			}
    			else
    			{
    				throw $e;
    			}
    		}
    	}

     

    • Lubię to 1
  2. Mam hooka, który ustawia mi limit tworzenia klubów oraz tworzenie klubu za punkty, mam problem z aktualizacją salda punktów, ponieważ funkcja create() wykonuje się 4 razy co w efekcie zamiast zabrać użytkownikowi 10 punktów zabiera ich 40.

    Poniżej załączam zawartość hooka:

    //<?php
    
    /* To prevent PHP errors (extending class does not exist) revealing path */
    if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
    {
    	exit;
    }
    
    class hook187 extends _HOOK_CLASS_
    {
    	protected function create()
    	{
    		try
    		{
    			try
    			{
    				try
    				{
    					try
    					{
    						if( \IPS\Settings::i()->clubLimitCreate > 0 )
    						{
    							$totalClubs = \IPS\Db::i()->select( 'count(*)', 'core_clubs', array( "owner=?", \IPS\Member::loggedIn()->member_id ) )->first();
    		
    							if( $totalClubs >= \IPS\Settings::i()->clubLimitCreate )
    							{
    								\IPS\Output::i()->error( 'clubError', 'Clubs Enhancements/12', 403, '' );
    							}
    						}
    						
    						if( \IPS\Settings::i()->clubCreatePoints > 0 )
    						{
    							$totalPoints = \IPS\Db::i()->select( 'points', 'points_members', array( "member_id=?", \IPS\Member::loggedIn()->member_id ), NULL, 1 )->first();
    		
    							if( $totalPoints >= \IPS\Settings::i()->clubCreatePoints )
    							{
    								$newPoints = $totalPoints - \IPS\Settings::i()->clubCreatePoints;
    								try
    								{
    									\IPS\Db::i()->update( 'points_members', array( 'points' => $newPoints ), array( 'member_id=?', \IPS\Member::loggedIn()->member_id ) );
    								}
    								catch( \UnderflowException $ex )
    								{
    									\IPS\Output::i()->error( 'clubError', 'Clubs Enhancements/12', 403, '' );
    								}
    								
    							}
    						}
    		
    						parent::create();
    					}
    					catch ( \RuntimeException $e )
    					{
    						if ( method_exists( get_parent_class(), __FUNCTION__ ) )
    						{
    							return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
    						}
    						else
    						{
    							throw $e;
    						}
    					}
    				}
    				catch ( \RuntimeException $e )
    				{
    					if ( method_exists( get_parent_class(), __FUNCTION__ ) )
    					{
    						return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
    					}
    					else
    					{
    						throw $e;
    					}
    				}
    			}
    			catch ( \RuntimeException $e )
    			{
    				if ( method_exists( get_parent_class(), __FUNCTION__ ) )
    				{
    					return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
    				}
    				else
    				{
    					throw $e;
    				}
    			}
    		}
    		catch ( \RuntimeException $e )
    		{
    			if ( method_exists( get_parent_class(), __FUNCTION__ ) )
    			{
    				return call_user_func_array( 'parent::' . __FUNCTION__, func_get_args() );
    			}
    			else
    			{
    				throw $e;
    			}
    		}
    	}
    
    
    }

    Poratuje mnie ktoś i naprowadzi na właściwy tor? :P

     

  3. Czy jest możliwość uniknięcia edycji oryginalnych modułów IPS? Dokładnie chodzi mi o moduł klubu "applications/core/modules/front/clubs/directory.php"

    W 329 linijce mam dodane:

    	protected function create()
    	{
    		try
    		{
    			$points = \IPS\Db::i()->select( 'points', 'points_members', array('member_id=?', \IPS\Member::loggedIn()->member_id), NULL, 1)->first();
    			if($points < 10)
    				\IPS\Output::i()->error( \IPS\Member::loggedIn()->member_id ? 'no_module_permission' : 'no_module_permission_guest', '2C349/1', 403, '' );
    		}
    		catch( \UnderflowException $ex )
    		{
    			\IPS\Output::i()->error( \IPS\Member::loggedIn()->member_id ? 'no_module_permission' : 'no_module_permission_guest', '2C349/1', 403, '' );
    		}
                  
            //Tu dalsza część kodu

    Chciałbym sprawdzanie, czy użytkownik ma wymaganą ilość punktów przenieść do hooka osobnej aplikacji, niestety nie wiem jak to powinno wyglądać i czy w ogóle jest możliwe.

  4. Witam, mam taki problem:

    VFaNEF7.png

     

    Błąd się wyświetla, gdy w kodzie jest:

    $member2 = \IPS\Member::loggedIn();

    A cały kod wygląda tak:

    //<?php
    
    /* To prevent PHP errors (extending class does not exist) revealing path */
    if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
    {
    	exit;
    }
    
    class ts3client_hook_profileSettings extends _HOOK_CLASS_
    {
        protected function _ts3()
        {
    
    			$member2 = \IPS\Member::loggedIn();
    			
    		
    			$ts3client = \IPS\Db::i()->select( '*', 'ts3_clients', array('client_global_id=?', $member2->member_id), NULL, 1)->first();
    	
    			$isAccount = count( $ts3client );
    
    			$form = new \IPS\Helpers\Form;
    			$form->add( new \IPS\Helpers\Form\Text( 'ts3_uid', NULL, TRUE, array(), function($val)
    			{
    				if(empty($val))
    				{
    					throw new \DomainException('Proszę o wpisanie identyfikatora');
    				}
    				
    			}));
    
    	
    			return \IPS\Theme::i()->getTemplate( "profile", "ts3client", "front" )->ts3Settings($member2, $isAccount, $ts3client, $form);
    
    	}
    
    }

    Dlaczego tak się dzieje?

  5. Witam, mam pewien problem. Zrobiłem sobie dodatkową kartę w profilu do której wstawiłem wykres, wykres potrzebuje..

    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

    do działania. Problem polega na tym, że gdy do szablonu profileModern dodam powyższy kod, to zakładki na boku przestają działać, a w konsoli wyświetla błędy.

    cNYQzLv.png

     

    Nie bardzo wiem co zrobić, bo wygląda na to, że prototype gryzie się z jquery. :/

  6. 51 minut temu, DawPi napisał:

    Daj więcej treści tego błędu.

    Tylko tyle w ssh było. Zainstalowałem xampp i próbowałem wrzucić przez phpmyadmin, oto pierwszy błąd jaki otrzymałem:

    Błąd
    Static analysis:
    
    2 błędów zostało znalezionych podczas analizy.
    
    Oczekiwano początku polecenia. (near "NSERT" at position 0)
    Nierozpoznany typ polecenia. (near "INTO" at position 6)
    Zapytanie SQL:
    
    NSERT INTO core_share_links_log (log_id, log_date, log_member_id, log_url, log_title, log_share_key, log_data_app, log_data_type, log_data_primary_id, log_data_secondary_id, log_ip_address) VALUES('4907','1495521039','0','http://mojastrona.pl/index.php?/topic/1884-p-kanały/','[P] Kanały','stumble','','','0','0','217.182.132.72')
    
    MySQL zwrócił komunikat: Dokumentacja
    
    #1064 - Something is wrong in your syntax obok 'NSERT INTO core_share_links_log (log_id, log_date, log_member_id, log_url, log_t' w linii 1

     

  7. Witam, jakiś czas temu wyexportowałem bazę mojego forum poprzez ACP, dziś chciałem wrzucić bazę danych przez ssh niestety wywala błąd.

     

    ERROR 1064 (42000) at line 205758: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'char int(11) NOT NULL,
      PRIMARY KEY (uid)
    ) ENGINE=MyISAM AUTO_INCREMENT=3850 D' at line 6
    

    A tu kawałek bazy od  205758 linijki:

    CREATE TABLE panel_admins_online (
      id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
      player_uid mediumint(9) NOT NULL,
      global_id mediumint(9) NOT NULL,
      online mediumint(8) unsigned NOT NULL,
      date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=1292 DEFAULT CHARSET=latin1;

     

    Liczę na Waszą pomoc.

  8. Witajcie, szukam osoby, która posiada transferowaną licencję(jest jej drugim właścicielem) i posiada ją dłużej niż 6 miesięcy od zakupu. Chciałbym się dowiedzieć, czy może ją transferować.

    Po wprowadzeniu nowego panelu w Client Area opcja transferu dla mojej licencji zniknęła, a na pytanie dlaczego tak jest support odpowiedział mi, że licencję można transferować tylko raz. Inni użytkownicy twierdzą, że licencje można transferować gdy minie 6 miesięcy od transferu i po kolejnym odnowieniu będę miał tą opcję. W tym momencie zgłupiałem i nie wiem jak to w końcu wygląda.

    Pozdrawiam!

×
×
  • 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ę.