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

marcin5541289779971

Użytkownik
  • Postów

    43
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez marcin5541289779971

  1. <?php
    /**
     * @brief		Moderator Control Panel Extension: changegroupmcp
     * @author		<a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
     * @copyright	(c) 2001 - 2016 Invision Power Services, Inc.
     * @license		http://www.invisionpower.com/legal/standards/
     * @package		IPS Community Suite
     * @subpackage	Change Group in Moderator Panel
     * @since		02 Nov 2016
     * @version		SVN_VERSION_NUMBER
     */
    
    namespace IPS\changegroupmcp\extensions\core\ModCp;
    
    /* 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;
    }
    
    /**
     * @brief	Moderator Control Panel Extension: changegroupmcp
     */
    class _changegroupmcp
    {
    	/**
    	 * Returns the primary tab key for the navigation bar
    	 *
    	 * @return	string|null
    	 */
    	public function getTab()
    	{
    		if ( !\IPS\Member::loggedIn()->inGroup( explode( ',', \IPS\Settings::i()->cgmp_groups ) ) )
    		{
    			return null;
    		}
    
    		return 'change_group';
    	}
    	
    	/**
    	 * Manage
    	 *
    	 * @return	void
    	 */
    	public function manage()
    	{
    		if ( !\IPS\Member::loggedIn()->inGroup( explode( ',', \IPS\Settings::i()->cgmp_groups ) ) )
    		{
    			\IPS\Output::i()->error( 'no_module_permission', '2C224/1', 403, '' );
    		}
    
    		\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack( 'modcp_change_group' );
    		\IPS\Output::i()->breadcrumb[] = array( NULL, \IPS\Member::loggedIn()->language()->addToStack( 'modcp_change_group' ) );
    
    		$form = new \IPS\Helpers\Form( 'form', 'modcp_change_group_change_group' );
    		$form->class = 'ipsForm_vertical';
    
    		if( !isset( \IPS\Request::i()->member ) )
    		{
    			$user = array();
    			if( isset( \IPS\Request::i()->mid ) AND \IPS\Request::i()->mid )
    			{
    				$user = \IPS\Member::load( \IPS\Request::i()->mid );
    			}
    
    			$form->add( new \IPS\Helpers\Form\Member( 'modcp_changegroup_member_find', $user, TRUE, array( 'multiple' => 1, 'placeholder' => \IPS\Member::loggedIn()->language()->addToStack('modcp_changegroup_member_find') ), function( $member ) use ( $form )
    			{
    				if( $member->isAdmin() )
    				{
    					throw new \InvalidArgumentException( 'cant_edit_admin_account' );
    				}
    			} ) );
    		}
    
    		if( isset( \IPS\Request::i()->member ) )
    		{
    			$member = \IPS\Member::load( \IPS\Request::i()->member );
    
    			$groupsStaff = array();
    			foreach( \IPS\Member\Group::groups() as $k => $v )
    			{
    				if ( $k != \IPS\Settings::i()->guest_group AND !\in_array( $k, explode( ',', \IPS\Settings::i()->cgmp_hidestaff ) ) )
    				{
    					$groupsStaff[ $k ] = $v->name;
    				}
    			}
    
    			$form->add( new \IPS\Helpers\Form\Radio( 'modcp_changegroup_type', 'primary', TRUE, array(
    				'options' 	=> array(
    						'primary' 	=> 'modcp_changegroup_p',
    						'secondary'	=> 'modcp_changegroup_s',
    				),
    				'toggles'	=> array(
    						'primary'	=> array( 'modcp_changegroup_groups' ),
    						'secondary'	=> array( 'modcp_changegroup_sgroups' ),
    				)
    			) ) );
    			
    			$form->add( new \IPS\Helpers\Form\Select( 'modcp_changegroup_groups', $member->member_group_id, FALSE, array( 'options' => $groupsStaff, 'parse' => 'normal' ), function( $val )
    			{
    				if ( $val == 0 )
    				{
    					throw new \LogicException( 'modcp_change_group_invalid_group' );
    				}
    
    				if ( $val != 0 AND \IPS\Member::load( \IPS\Request::i()->modcp_changegroup_member_find, 'name' )->member_group_id == $val )
    				{
    					throw new \LogicException( 'modcp_change_group_same_group' );
    				}
    			}, NULL, NULL, 'modcp_changegroup_groups' ) );
    
    			$secGroups = $member->mgroup_others ? explode( ',', $member->mgroup_others ) : array();
    			$form->add( new \IPS\Helpers\Form\CheckboxSet( 'modcp_changegroup_sgroups', $secGroups, FALSE, array( 'options' => $groupsStaff, 'multiple' => TRUE ), NULL, NULL, NULL, 'modcp_changegroup_sgroups' ) );
    			
    			\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'modcp', 'changegroupmcp', 'front' )->changeGroup( $form );
    		}
    
    		if( $values = $form->values() )
    		{
    			if( !isset( \IPS\Request::i()->member ) )
    			{
    				\IPS\Output::i()->redirect( \IPS\Http\Url::internal( "app=core&module=modcp&tab=change_group", 'front', 'modcp_change_group' )->setQueryString( array( 'member' => $values['modcp_changegroup_member_find']->member_id ) ) );
    			}
    
    			$member = \IPS\Member::load( \IPS\Request::i()->member );
    
    			if( $values['modcp_changegroup_type'] == 'primary' )
    			{
    				$member->member_group_id = $values['modcp_changegroup_groups'];
    				$member->save();
    				\IPS\Session::i()->modLog( 'modlog__group_changed', array( $member->name => FALSE ) );
    
    				\IPS\Output::i()->redirect( \IPS\Http\Url::internal( "app=core&module=modcp&tab=change_group", 'front', 'modcp_change_group' ), 'saved' );
    			}
    			else
    			{
    				$groups = array();
    				if( $member->mgroup_others )
    				{
    					$groupsStaff = array();
    					foreach( \IPS\Member\Group::groups() as $k => $v )
    					{
    						if ( $k != \IPS\Settings::i()->guest_group AND !\in_array( $k, explode( ',', \IPS\Settings::i()->cgmp_hidestaff ) ) )
    						{
    							$groupsStaff[ $k ] = $v->name;
    						}
    					}
    
    					$memberSecGroups = array_filter( explode( ',', $member->mgroup_others ) );
    					$availSecGroups	 = array_filter( explode( ",", $groupsStaff ) );
    					$usersChoice	 = $values['modcp_changegroup_sgroups'];
    
    					if( \count( $usersChoice ) )
    					{
    						foreach( $availSecGroups as $group )
    						{
    							$key = array_search( $group, $memberSecGroups );
    							if( $key !== FALSE )
    							{
    								unset( $memberSecGroups[ $key ] );
    							}
    						}
    
    						$groups = array_unique( array_merge( $usersChoice, $memberSecGroups ) );
    					}
    				}
    				else
    				{
    					$groups = $values['modcp_changegroup_sgroups'];
    				}
    
    				$member->mgroup_others = implode( ',', $groups );
    				$member->save();
    
    				\IPS\Output::i()->redirect( \IPS\Http\Url::internal( "app=core&module=modcp&tab=change_group", 'front', 'modcp_change_group' ), 'saved' );
    			}
    		}
    
    		return \IPS\Theme::i()->getTemplate( 'modcp', 'changegroupmcp', 'front' )->changeGroup( $form );
    	}
    }

     

  2. Cytat

    ParseError: syntax error, unexpected 'throw' (T_THROW) (0)
    #0 [internal function]: IPS\IPS::autoloader('IPS\\changegroup...')
    #1 [internal function]: spl_autoload_call('IPS\\changegroup...')
    #2 /home/mygo/domains/domena.pl/public_html/system/Application/Application.php(850): class_exists('IPS\\changegroup...')
    #3 /home/mygo/domains/domena.pl/public_html/system/Application/Application.php(324): IPS\_Application->extensions('core', 'ModCp', true, true)
    #4 /home/mygo/domains/domena.pl/public_html/applications/core/modules/front/modcp/modcp.php(85): IPS\_Application::allExtensions('core', 'ModCp', true)
    #5 /home/mygo/domains/domena.pl/public_html/system/Dispatcher/Controller.php(101): IPS\core\modules\front\modcp\_modcp->manage()
    #6 /home/mygo/domains/domena.pl/public_html/system/Dispatcher/Dispatcher.php(152): IPS\Dispatcher\_Controller->execute()
    #7 /home/mygo/domains/domena.pl/public_html/index.php(26): IPS\_Dispatcher->run()
    #8 {main}

     

    OR i AND to samo

  3. Wgrałem moda "Change Group in Moderator Panel 1.2.3 " jednak ma on wadę moderator może usunąć moderatora (zdegradować go do usera). Chciałbym to wyłączyć tak jak jest wyłączona możliwość zmiany rangi admina.

     

    W kodzie znalazłem:

    				if( $member->isAdmin() )
    				{
    					throw new \InvalidArgumentException( 'cant_edit_admin_account' );
    				}

     

    Jakbym tu dodać żeby określone grupy dostawały ten sam komunikat?

     

    To zadziała?

     

    				if( $member->isAdmin() )
    				{
    					throw new \InvalidArgumentException( 'cant_edit_admin_account' );
    				}
    				if( $member->idGroup( array( 23,6,12,4 ) ))
    				{
    					throw new \InvalidArgumentException( 'cant_edit_admin_account' );
    				}

     

    Ewentualnie co by tu zastosować?

     

    				if( $member->isAdmin() || $member->idGroup( array( 23,6,12,4 ) )
    				{
    					throw new \InvalidArgumentException( 'cant_edit_admin_account' );
    				}

     

    czy to przejdzie?

     

    Może jest polecenie isMod lub idModerator w IPSie?

  4. Chciałem się zapytać jaka jest możliwość zmiany transakcji na wygasłą po X godzinach a nie po X dniach. Domyślnie w commerce są tylko dni a chciałbym oznaczać nieopłacone transakcje jako wygasłe już po 1-2 godzinach. Znalazłem w applications/nexus/modules/admin/payments/invoices.php

     

    takie coś


     

        /**
         * Settings
         *
         * @return    void
         */
        protected function settings()
        {
            \IPS\Dispatcher::i()->checkAcpPermission( 'invoices_settings' );
    
            $form = new \IPS\Helpers\Form;
            $form->addheader('invoice_flow');
            $form->addMessage('invoice_flow_visualise');
            $form->add( new \IPS\Helpers\Form\Interval( 'cm_invoice_generate', \IPS\Settings::i()->cm_invoice_generate, FALSE, array( 'valueAs' => \IPS\Helpers\Form\Interval::HOURS, 'min' => 1 ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('cm_invoice_generate_suffix') ) );
            $form->add( new \IPS\Helpers\Form\Interval( 'cm_invoice_warning', \IPS\Settings::i()->cm_invoice_warning, FALSE, array( 'valueAs' => \IPS\Helpers\Form\Interval::HOURS, 'unlimited' => 0, 'unlimitedLang' => 'never' ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('cm_invoice_warning_suffix') ) );
            $form->add( new \IPS\Helpers\Form\Interval( 'cm_invoice_expireafter', \IPS\Settings::i()->cm_invoice_expireafter, FALSE, array( 'valueAs' => \IPS\Helpers\Form\Interval::DAYS, 'unlimited' => 0 ), NULL, NULL, NULL ) );

     

     

    i zmieniłem DAYS na HOURS ale bez efektu.

     

            $form->add( new \IPS\Helpers\Form\Interval( 'cm_invoice_expireafter', \IPS\Settings::i()->cm_invoice_expireafter, FALSE, array( 'valueAs' => \IPS\Helpers\Form\Interval::HOURS, 'unlimited' => 0 ), NULL, NULL, NULL ) );

     

     

    Tzn. mam do wyboru w ustawieniach X godzin ale nie działa zgodnie z oczekiwaniami i po godzinie nic się nie dzieje.

     

    Ktoś jakiegoś hooka ma na to lub jest w stanie na szybko zrobić za $.

     

    Wiem, modyfikowanie core jest złe. Ale lata nie zaglądałem do IPB (teraz IPS) i stąd moje zamiłowanie do edycji źródła. Ktoś mnie naprowadzi? Dziękuję!

     

  5. Witam,

    edytuję stronę szablonu (wyszukiwania - Core>Front>Search>search), jest tam zmienna

    {$title}

    z której chcę usunąć pierwszy i 2 ostatnie znaki. Zamiast " 'szukana_fraza'. " ma być " szukana_fraza "

    Jak mogę to zrobić?

    {parse expression="substr( $title, 1, -3)"}

    oraz

    {{echo substr($title, 1, -3);}}
    {substr($title, 1, 3);}

    nie bardzo... działają

     

    W ogóle da się jakieś operacje na zmiennej title zrobić? I jak się do tego zabrać?

  6. Witam,

    mam pytanko, czy znacie może moda/skrypcik, który wyświetli 10 ostatnich postów, z datą i godziną i nazwą usera w postaci linków, o nazwie danego tematu?

    Przykładowo:

    13.08.08 22:11 user1 Temat1

    14.08.08 22:22 user2 Temat2

    22.08.08 22:12 user3 Temat3

    ...

    Jaki kod musiałbym umieścić na innej stronce żeby to wyświetlało? Czy przez rss da się to zrobić?

    Ewentualnie jak wyświetlić same ostatnie aktywne tematy bez pozostałych danych:

    temat1

    temat2

    ...

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