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

Zmiana krajów ( osobna wtyczka )


Przejdź do rozwiązania Rozwiązane przez DawPi,

Rekomendowane odpowiedzi

Opublikowano

Cześć. Mam pewien problem ze zmiana krajów. Edytując header szablonu, chciałem przenieść z ustawień konta zmianę Krajów ( poniżej kod ).

      {{$member = \IPS\Member::loggedIn();}}
      {{if $member}}
        {{$memberCountry = \IPS\memberscountry\Member::getMember();}}
      	{{$selectedCountry = $memberCountry->country;}}
        {{$upper_selectedCountry = strtoupper($memberCountry->country);}}
        <a href='#elNavCountry_menu' id='elNavCountry' class="sky__topbar--buttons__lang" data-ipsMenu data-ipsMenu-above>{{if $selectedCountry != 0}}<i class="ipsFlag ipsFlag-{$selectedCountry}"></i> {lang="country-{$upper_selectedCountry}"} <i class='fa fa-caret-down'></i>{{else}}{lang="none"}{{endif}}</a>
        <ul id='elNavCountry_menu' class='ipsMenu ipsMenu_selectable ipsHide' style='overflow: auto; height: 322px;'>
          <li class='ipsMenu_item{{if $selectedCountry == 0}} ipsMenu_itemChecked{{endif}}'>
            <form action="{url="app=core&module=system&controller=settings&area=country" noprotocol="true" csrf="true" seoTemplate="settings_country"}" method="post">
              <button type='submit' name='members_country' value='0' class='ipsButton ipsButton_link ipsButton_link_secondary'>{lang="none"}</button>
            </form>
          </li>
          {{foreach \IPS\GeoLocation::$countries as $id => $lang }}
          <li class='ipsMenu_item{{if $lang == $upper_selectedCountry || ( $memberCountry === 0 )}} ipsMenu_itemChecked{{endif}}'>
            <form action="{url="app=core&module=system&controller=settings&area=country" noprotocol="true" csrf="true" seoTemplate="settings_country"}" method="post">
              <input type="hidden" name="form_submitted" value="1">
              {{$lowerLang = strtolower($lang);}}
              <button type='submit' name='members_country' value='{$lang}' class='ipsButton ipsButton_link ipsButton_link_secondary'><i class="ipsFlag ipsFlag-{$lowerLang}"></i> {$lang}</button>
            </form>
          </li>
          {{endforeach}}
        </ul>
      {{endif}}

 

Problem pojawia się gdy zmieniam Kraj, przenosi mnie do ustawień użytkownika. Chciałbym żeby to działało jak zmiana języków IPS ( przeładowuje stronę główną ). Wiem ze problem dotyczy tej linijki:

<form action="{url="app=core&module=system&controller=settings&area=country" noprotocol="true" csrf="true" seoTemplate="settings_country"}" method="post">

 

Tylko teraz, jak zmienić aby nie przenosiło do ustawień użytkownika zmieniając kraj a przeładowywało stronę główną i zmieniając go.

  • Manager
  • Rozwiązanie
Opublikowano
17 minut temu, Split napisał(a):

Chciałbym żeby to działało jak zmiana języków IPS ( przeładowuje stronę główną ).

Nic nie przeładowuje to po prostu przekierowuje z nowymi ustawieniami.

18 minut temu, Split napisał(a):

Problem pojawia się gdy zmieniam Kraj, przenosi mnie do ustawień użytkownika.

Przenosi Cię bo w hooku masz takie coś:

						if( isset( $values['members_country_auto_detect'] ) AND $values['members_country_auto_detect'] )
						{
							$member->country = NULL;
							$member->country_changed = 0;
						}
			
						$member->save();
			
						\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=core&module=system&controller=settings&area=country', 'front', 'settings_country' ), 'saved' );

 

Zmienisz sobie adres przekierowania w frontControllerSettings.php i będzie OK.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano (edytowane)
20 minut temu, DawPi napisał(a):

Nic nie przeładowuje to po prostu przekierowuje z nowymi ustawieniami.

Przenosi Cię bo w hooku masz takie coś:

						if( isset( $values['members_country_auto_detect'] ) AND $values['members_country_auto_detect'] )
						{
							$member->country = NULL;
							$member->country_changed = 0;
						}
			
						$member->save();
			
						\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=core&module=system&controller=settings&area=country', 'front', 'settings_country' ), 'saved' );

 

Zmienisz sobie adres przekierowania w frontControllerSettings.php i będzie OK.

 

ahh moje niedopatrzenie, dzięki. Problem rozwiązany. Dla osób, które będą miały z tym problem w przyszłości zmieniłem redirect na:

 

\IPS\Output::i()->redirect( \IPS\Http\Url::internal( '' ), 'saved' );

 

Edytowane przez Split
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • 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ę.