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

API kontrolki daty (kalendarza)


Rekomendowane odpowiedzi

Witam,

 

chciałbym w skrypcie wykorzystać kontrolkę daty w formularzach, takich jak na obrazku

Jak dobrać się do tego? Wartości z tego pola są pewnie przekazywane w sesjach, ale jak to umieścić w swoim skrypcie?

API IPSu to dla mnie nieznane wody :)

 

Bez tytułu.png

Edytowane przez kodif
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager
6 minut temu, kodif napisał:

chciałbym w skrypcie wykorzystać kontrolkę daty w formularzach, takich jak na obrazku

Jak dobrać się do tego? Wartości z tego pola są pewnie przekazywane w sesjach, ale jak to umieścić w swoim skrypcie?

Napisz co Ty dokładnie chcesz zrobić bo nie zrozumiałem. :)

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

<li>
    <i class='fa fa-calendar'></i>
    <input type="date" name="{$input->name}" id="elInput_{$input->name}" class="ipsField_short" data-control="date" placeholder='{expression="str_replace( array( 'YYYY', 'MM', 'DD' ), array( \IPS\Member::loggedIn()->language()->addToStack('_date_format_yyyy'), \IPS\Member::loggedIn()->language()->addToStack('_date_format_mm'), \IPS\Member::loggedIn()->language()->addToStack('_date_format_dd') ), str_replace( 'Y', 'YY', \IPS\Member::loggedIn()->language()->preferredDateFormat() ) )"}' value="{{if $input->value instanceof \IPS\DateTime}}{$input->value->format('Y-m-d')}{{else}}{$input->value}{{endif}}" data-preferredFormat="{{if $input->value instanceof \IPS\DateTime}}{$input->value->localeDate()}{{else}}{$input->value}{{endif}}">
</li>

 

  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

Może rzeczywiście trochę zagmatwałem.

 Na forum będzie podany link do skryptu, np data.php, a w skrypcie użytkownicy forum będą podawać datę (i inne dane), która potem będzie zapisywana do bazy, do wybranej tabeli.

W skrypcie data.php mogę wstawić formularze z polami input do podania daty, ale myślałem że mógłbym wykorzystać do tego API forum, z ładnym kalendarzykiem. :)

Tylko nie do końca wiem jak w zewnętrznym skrypcie to zrobić :)

Edytowane przez kodif
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

To nie będzie żadne api kalendarza, a kod na wyświetlenie formularza na zewnętrznej stronie. :)

 

<?php

define('IPB_PATH', 'C:/wamp/www/44');

if( ! file_exists( IPB_PATH . '/init.php' ) )
{
	echo 'Błędny path';
	exit;
}

require_once( IPB_PATH.'/init.php' );

\IPS\Dispatcher\External::i();

                           
$form = new \IPS\Helpers\Form;
$form->add( new \IPS\Helpers\Form\Date( 'form_key', \IPS\DateTime::create(), TRUE, array(), NULL, NULL, NULL, 'form_key' ) );

if( $values = $form->values() )
{
    #cos tam
}

echo $form;

Oczywiście to nie cały kod, a zaczątek.

 

Masz może aplikację Pages? :)

Wtedy to bajka i jeden kod:

<script type='text/javascript' src='http://localhost/44/applications/cms/interface/external/external.js' id='ipsWidgetLoader'></script>
<div id='block_fbf35d2ba508c077fa55ae4e220d2815' data-blockID='ext_code' class='ipsExternalWidget' data-inheritStyle='true'></div>

Efekt:

image.png

 

image.png

 

image.png

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety nie mam Pages.

 

Zacząłem to testować, ale zamiast ładnego formularza mam coś takiego

screenshot-localhost-2019_07.05-19-06-43.png.27d28dc9b97895622e00f4963730ca4e.png

 

kod:

$form = new \IPS\Helpers\Form;
$form->add( new \IPS\Helpers\Form\Date( 'form_date_from', \IPS\DateTime::create(), TRUE, array(), NULL, NULL, NULL, 'form_date_from' ) );
$form->add( new \IPS\Helpers\Form\Date( 'form_date_to', \IPS\DateTime::create(), TRUE, array(), NULL, NULL, null, 'form_date_to' ) );

$form->add( new \IPS\Helpers\Form\Select( 'my_select_box', NULL, TRUE, array( 'options' => array( 0 => 'Raz', 1 => 'Dwa', 2=> 'Trzy' ), 'multiple' => TRUE ) ) );

if( $values = $form->values() )
{
    print(' Wysłane prawidłowo');
}

echo $form;

Nawet opcje [Raz, Dwa, Trzy] gdzieś znikają.

 

 

 

Edytowane przez kodif
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Znikają, bo tam się podaje klucze fraz językowych jeśli nie ma spacji to tak je właśnie traktuje. :)

 

system/Lang/Lang.php:

	/**
	 * Parse output and replace language keys
	 *
	 * @param	string	$output	Unparsed
	 * @return	void
	 */
	public function parseOutputForDisplay( &$output )
	{

 

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

Dałem. Kompletnie nic się nie zmieniło.

Zaczynam podejrzewać że z powodu pages, u Ciebie ten sam kod wykonuje się zupełnie inaczej niż u mnie.

U mnie nie ma ani css, ani zrozumiałego języka, tylko jakiś generowany hash.

Chyba muszę założyć nowe wątki o css i języku zalogowanego użytkownika w zewnętrznym pliku

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Hashe jak mówiłem:

$elo = (string) $form;
\IPS\Member::loggedIn()->language()->parseOutputForDisplay( $elo );
echo $elo;

image.png

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

Tego mi brakowało. :)

A jak wyświetlić w zewnętrznym skrypcie, dowolną frazę językową w języku aktualnie zalogowanego użytkownika?

 

Próbowałem trochę na ślepo tak

$dd = '__api_core_messages';
echo \IPS\Member::loggedIn()->language()->parseOutputForDisplay( $dd );

ale to nie to :)

Edytowane przez kodif
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o założenie nowego tematu.

Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

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