Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Siemanko, potrzebuje wykonać ColumnCharta, z wyciągnięciem danych z bazy danych(data, tabela bez prefixu).
Widzę że mogę chyba stworzyć '\IPS\Helpers\Table\Db' i wykorzystać przy`\IPS\Helpers\Chart\Database`.

Jednak \Table\Db korzysta z oryginalnego prefixu przy dostępie do tabeli, więc pomóżcie co robić.
(W skrócie, w tabeli mta_characters są postacie, z datą stworzenia jako DATE, ColumnChart ma mi stworzyć statystyki z ilości postaci na miesiąc.)

Opublikowano
15 godzin temu, DawPi napisał:

Jednym słowem - chcesz zrobić staty z tabeli "nie forum" (bez prefiksu)? Innym słowem - moda napisać możesz? :)

Moda w sensie?
(Jestem amatorem, piszę na zasadzie wstecznej inżynierii oraz dzięki poradom innych osób)

Opublikowano
W dniu 5.09.2020 o 16:13, aXen napisał:

Modyfikacje czyli tworzenie aplikacji / wtyczki.

A no to wiadomka, jest stworzone, mam juz nawet stronę w ustawieniach itd, sporo rzeczy tam jest, ale te charty mi żyć nie dają, widzę że tam trzeba jeszcze konwerta na datetime zrobić itd

  • Manager
Opublikowano
W dniu 4.09.2020 o 22:41, Allerek napisał:

Jednak \Table\Db korzysta z oryginalnego prefixu przy dostępie do tabeli, więc pomóżcie co robić.

Niekoniecznie. ;) Zobacz jak wygląda konstruktor - interesuje Cię ostatnie parametr:

	/**
	 * Constructor
	 *
	 * @param	string	$table						Database table
	 * @param	\IPS\Http\Url	$baseUrl			Base URL
	 * @param	array|null		$where				WHERE clause
	 * @param	array|null		$forceIndex			Index to force
	 * @param	\IPS\Db|null	$database			An instance of \IPS\Db to run the queries against (defaults to current connection)
	 * @return	void
	 */
	public function __construct( $table, \IPS\Http\Url $baseUrl, $where=NULL, $forceIndex=NULL, $database=NULL )

Także jesteś w domu. :)

 

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Opublikowano (edytowane)
5 godzin temu, DawPi napisał:

Niekoniecznie. ;) Zobacz jak wygląda konstruktor - interesuje Cię ostatnie parametr:


	/**
	 * Constructor
	 *
	 * @param	string	$table						Database table
	 * @param	\IPS\Http\Url	$baseUrl			Base URL
	 * @param	array|null		$where				WHERE clause
	 * @param	array|null		$forceIndex			Index to force
	 * @param	\IPS\Db|null	$database			An instance of \IPS\Db to run the queries against (defaults to current connection)
	 * @return	void
	 */
	public function __construct( $table, \IPS\Http\Url $baseUrl, $where=NULL, $forceIndex=NULL, $database=NULL )

Także jesteś w domu. :)

 

image.png.fd1341908cda2d8115af286bf0d85088.png
Nadal próbuje wybrać z tabeli z prefixem(użyłem mojego obiektu Db którego używam do wyciągania danych z tej tabelki, wiec wiem ze obiekt Db jest git)
Do tego, na IPS 4.4.10 nie mam takiego parametru
image.png.a1ac6c412b157d18b81655f1a66e6760.png
https://codingjungle.com/phpdoc/4119/de/dcc/classIPS_1_1Helpers_1_1Table_1_1Db.html#a246b082a320024603cafd136d39a02b0
Tu też go nie widzę

Edytowane przez Allerek
  • Manager
Opublikowano
19 godzin temu, Allerek napisał:

Do tego, na IPS 4.4.10 nie mam takiego parametru

Bo dodali to dopiero w wersji 4.5.x:

	public function __construct( $table, \IPS\Http\Url $baseUrl, $where=NULL, $forceIndex=NULL, $database=NULL )
	{
		$this->table = $table;
		$this->where = $where;
		$this->index = $forceIndex;
		$this->db	 = $database ?? \IPS\Db::i();
		
		return parent::__construct( $baseUrl );
	}

 

No to modyfikacją rozszerz konstruktor i dodaj $this->db z Twoimi parametrami.

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Opublikowano
8 godzin temu, DawPi napisał:

Bo dodali to dopiero w wersji 4.5.x:


	public function __construct( $table, \IPS\Http\Url $baseUrl, $where=NULL, $forceIndex=NULL, $database=NULL )
	{
		$this->table = $table;
		$this->where = $where;
		$this->index = $forceIndex;
		$this->db	 = $database ?? \IPS\Db::i();
		
		return parent::__construct( $baseUrl );
	}

 

No to modyfikacją rozszerz konstruktor i dodaj $this->db z Twoimi parametrami.

Racja, działa, pytanie proste, jak zapisywać i potem odczytywać czas tworzenia postaci(w jakiej postaci, i jaki typ wartości w bazie, przy 'joined' w core_members widzę int(10), plus widzę że chart wymaga IPS'owego timestampa.

  • Manager
Opublikowano
Godzinę temu, Allerek napisał:

, przy 'joined' w core_members widzę int(10)

To format unix: https://pl.wikipedia.org/wiki/Czas_uniksowy

Godzinę temu, Allerek napisał:

plus widzę że chart wymaga IPS'owego timestampa.

To to samo.

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

  • Manager
Opublikowano
12 godzin temu, Allerek napisał:

czyli zapis czasu w bazie danych jako \IPS\DateTime::create()

Nie.. Bo ta metoda:

	/**
	 * Create New
	 *
	 * @return	\IPS|DateTime
	 */
	public static function create()
	{
		return new static;
	}

Tworzy obiekt.

Zapisz musisz zrobić tak:

\IPS\DateTime::create()->getTimestamp();

 

 

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

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