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

Tabela z zewnętrznej bazy.


Rekomendowane odpowiedzi

Witam,

mam pytanie ma ktoś jakiś gotowy kod, aby tabela

		$table = new \IPS\Helpers\Table\Db( 'x', \IPS\Http\Url::internal( 'app=xxx&module=x&controller=xx' ) );
		/* Columns we need */
		$table->include = array( 'id', 'x', 'x', 'x' );
		$table->mainColumn = 'id';
		$table->langPrefix = 'x_';

		$table->tableTemplate  = array( \IPS\Theme::i()->getTemplate( 'tables', 'core', 'admin' ), 'table' );
		$table->rowsTemplate  = array( \IPS\Theme::i()->getTemplate( 'tables', 'core', 'admin' ), 'rows' );
				
		/* Default sort options */
		$table->sortBy = $table->sortBy ?: 'id';
		$table->sortDirection = $table->sortDirection ?: 'desc';
		$table->noSort	= array( 'x', 'x', 'x );
		
		/* Search */

			
		/* CUSTOM */
		$table->parsers = array(
	
		);
		$table->title = 'XXX';
		/* Display */
	    \IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'xxx', 'xxx', 'front' )->xxx( $table );

To jest kod dla tabelki, która wyciąga z obecnej bazy, tam gdzie jest forum, a jak wyciągnąć z innej bazy, nie mam pojęcia jak podłączyć inną bazę pod gotową tabele.

 

Z góry dziękuje

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Jakimś parametrem się nie da, bo dalej w kodzie jest odwołanie do połączenia z bazą forum:

		/* Count results (for pagination) */
		$count = \IPS\Db::i()->select( 'count(*)', $this->table, $where );

Chyba zostaje Ci wyciągnięcie danych z zewnętrznej bazy i zastosowanie "\IPS\Helpers\Table\Custom".

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

  • Manager
55 minut temu, inzonek napisał:

A tutaj proszę o wytłumaczenie jak podłączyć bazę zew.

 

14 godzin temu, DawPi napisał:

Chyba zostaje Ci wyciągnięcie danych z zewnętrznej bazy

Dawałem Ci screen.

 

55 minut temu, inzonek napisał:

i właśnie tą tabelkę, łopatologicznie też może być, nakierowanie

 

14 godzin temu, DawPi napisał:

i zastosowanie "\IPS\Helpers\Table\Custom"

Też pisał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

  • Manager

Kumam, ale to już musisz sam pogrzebać w kodzie, czytać opisy funkcji, patrzeć jak w innych miejscach IPS to stosował. Tutaj możemy pomóc z konkretnymi zagadnieniami, ale takiej pracy i szukania rozwiązań powinieneś nauczyć się sam. Na teraz i na przyszłość. :)

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

  • Manager
W dniu 22.06.2019 o 15:01, inzonek napisał:

nie mam już pomysłu jak to zrobić próbowałem z tym Custom, ale też nic.

Pokaż te próby. Może jakiś prosty błąd albo niedopatrzenie.

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

@DawPi usunąłem poprzednią wersję.

Nie miałem pojęcia zacząłem robić ręcznie, mam coś takiego i w templacie dodaje {$row['coś']}

		$rows = [];
		foreach((\IPS\Db::i('piik_sss')->select( '*', 'pik', '', '`bid` DESC') ) as $row)
		{
		$rows[] = $row;
		}

A połączenie:

		$connection = \IPS\Db::i( 'pik_sss', array(
			'sql_host'		=> \IPS\Settings::i()->pik_db_host,
			'sql_port'		=> \IPS\Settings::i()->pik_db_port,
			'sql_user'		=> \IPS\Settings::i()->pik_db_user,
			'sql_pass'		=> \IPS\Settings::i()->pik_db_pass,
			'sql_database'		=> \IPS\Settings::i()->pik_db_name,
			'sql_tbl_prefix'	=> 'pik_',
		) );

Tylko, że no nie jest to efekt taki jak chciałem uzyskać, bo to trzeba paginacje i resztę rzeczy dodać a to kupa roboty, a $table ma to już w sobie tylko no nie mam pojęcia jak wstawić, aby tabelka brała dane nie z bazy forum tylko z zewnętrznej ;( 

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

  • Manager

Powiedziałem, że domyślnie tego tamta klasa nie obsługuje - połączenie do bazy danych jest zakodowane "na sztywno". :)

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

@DawPi a zastosowanie \IPS\Helpers\Table\Custom to jak dokładnie zrobić? Tutaj jest kod wyciągnięty z Custom.php

 

	/**
	 * Constructor
	 *
	 * @param	array			$dataSource		Data source
	 * @param	\IPS\Http\Url	$baseUrl		Base URL
	 */
	public function __construct( $dataSource, \IPS\Http\Url $baseUrl )
	{
		$this->dataSource = $dataSource;
		$this->count      = \count( $this->dataSource );
		
		return parent::__construct( $baseUrl );
	}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

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

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • 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ę.