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

Dostęp do ustawień aplikacji z pliku php


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

Rekomendowane odpowiedzi

Hej,

 

Tworze właśnie pierwszą aplikacje do ipboard i mam problem.

Mam sekcje w aplikacji w której wyświetlają się obrazki oraz kod javascript/jquery, który na podstawie "title" obrazka ma za zadanie pobrać dane z innego pliku php bez przeładowywania strony.

 

Udało mi się to wykonać jednak teraz pojawia się problem. Otóż w tym zewnętrznym pliku PHP (z którego pobieram dane) chce połączyć się z bazą mysql i pobrać dane. Jednak problem polega na tym, że plik nie ma dostępu do ustawień aplikacji w których mam ustawienia czyli między innymi: host, baza danych, login, hasło.

 

I teraz pytanie. Czy da się jakoś pobrać config aplikacji z zewnętrznego pliku?

Próbowałem szukać na forum, ale nie za bardzo wiem jak ułożyć zapytanie do wyszukiwarki (słowa kluczowe).

 

Bardzo proszę o pomoc : >

Odnośnik do komentarza
Udostępnij na innych stronach

Tworzysz nową klasę? Próbowałeś 

class twojaklasa
{
    protected $registry;
	protected $DB;
	protected $member;
	protected $memberData;
	protected $request;
	protected $settings;

	/**
	 * twojaklasa::__construct()
	 * 
	 * @param mixed $registry
	 * @return
	 */
	public function __construct( ipsRegistry $registry)
	{
		$this->registry = $registry;
		$this->DB = $this->registry->DB();
		$this->member = $this->registry->member();
		$this->memberData = $this->registry->member()->fetchMemberData();
		$this->request = $this->registry->fetchRequest();
		$this->settings = $this->registry->fetchSettings();
    }

//dalej funkcje jedziesz. 

Znajdziesz mnie na LinkedIn

Odnośnik do komentarza
Udostępnij na innych stronach

Tylko problem polega na tym, że pobieram ten plik przez jquery więc nie za bardzo mogę użyć go jako klasy i wysłać do niej ipsRegistry. Bo zwyczajnie nie mam w jQuery dostępu do php..

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

Ale jQuery nie ma za bardzo nic do tego problemu. Chce po prostu pobrać z pliku php dane zawierające ustawienia z configa nie podając mu klasy ipsRegistry. Czy to jest możliwe żeby za pomocą php pobrać ustawienia danej aplikacji nie będąc nią?

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

Ustawienia jakiego config'u, bo nie rozumiem? Chodzi Ci o ustawienia aplikacji ( $this->settings[] )? Pewnie tak. Mam kilka pomysłów jak to obejść, ale są strasznie prymitywne i pewnie narobią więcej szkód niż pożytku, dlatego tak jak mówiłem - poczekaj na Dawida / Maćka.

Znajdziesz mnie na LinkedIn

Odnośnik do komentarza
Udostępnij na innych stronach

require, ale skoro nie możesz użyć registry, to tym bardziej chyba tego (?), z resztą nawet nie wiem do jakiego pliku ma się odwoływać aby osiągnąć taki efekt jaki chcesz ( może jakaś klasa z gotową ipsRegistry? Mija się trochę z celem ). Na twoim miejscu bardziej bym kombinował jak zrobić, aby MOŻNA BYŁO użyć właśnie to co podałem w 2 poście. Ale to tylko moja opinia. :P

Edytowane przez TeeZ

Znajdziesz mnie na LinkedIn

Odnośnik do komentarza
Udostępnij na innych stronach

Ale żeby użyć to co podałeś w drugim poście musiałbym skądś mieć to ipsRegistry.. To co podałeś w drugim poście potrafię zrobić, ale nie potrafię dostarczyć mu ipsRegistry czego wymaga.

 

Nie wiem o co ci chodzi odnośnie require.

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

  • Rozwiązanie

Mógłbyś podać jakieś przykłady Twojego kodu? O jaki config dokładnie chodzi?

Jak do teraz zrozumiałem chyba że chcesz mieć z pliku X.php który jest w lokalizacji Y (np. tam gdzie index.php) pobierać ustawienia z forum?

 

require_once './initdata.php';
require_once IPS_ROOT_PATH . 'sources/base/ipsRegistry.php';

ipsRegistry::init();
 

Po tym masz dostęp do takich ustawień poprzez:

ipsRegistry::$settings['sql_database']
Piszę, chociaż nie wiem jakie dane chcesz w tym przekazywać.

 

Oczywiście przy takim rozwiązaniu nie łączysz się ponownie z bazą danych tylko od razu wykonujesz zapytanie.

ipsRegistry::DB()->build(...
Ale jeżeli chodzi tylko o jakieś dane z SQL możesz bez kombinowania powyższego z tworzeniem nowych plików zrobić to od strony aplikacji poprzez ustawienie trasy GET.

https://www.invisionpower.com/support/guides/_/advanced-and-developers/application/settings-r199

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

Pobieranie danych:

$(jQuery).get("{SCIEZKA}/char_info.php?nickname="+event.target.title, function(data) {
info_array = data.split("|");
...
});

char_info.php

 

Za pomocą echo zwraca wynik z mysql

 

 

Nie jestem pewien co do twojego kodu, ja potrzebuje pobrać config wybranej aplikacji. A przecież chyba każda aplikacja może mieć tę same nazwy konfiguracji. Aplikacja będzie miała możliwość pobierania danych również z innego serwera niż ten na którym stoi forum. Jednak jeżeli nie uda się inaczej mogę również korzystać z serwera mysql forum. Rozumiem że twój kod to umożliwi?

 

Nie rozumiem o co ci chodziło o trasie GET, ale wrzucanie haseł i danych do html aby mógł je wysłać jQuery nie wchodzi w grę.

 

@Edit

Chociaż chyba się mylę, configi nie są dla konkretnych aplikacji ale dla wszystkich. To są w końcu grupy configów a nie configu aplikacji.

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

Tylko jak w takim razie pobrać w jakim katalogu jest np. ipsRegistry ?

require_once './initdata.php';
require_once IPS_ROOT_PATH . 'sources/base/ipsRegistry.php';

Chodzi mi o IPS_ROOT_PATH.

Chyba że initdata ja posiada, ale muszę czyli znać też ścieżke do katalogu forum, bo może być przecież różna i nie będę wiedział gdzie initdata się znajduje. No chyba że natrzaskam "../../../"

 

@Edit

ja potrzebuje pobrać config wybranej aplikacji.


Będzie działać.

 

Jak to niby zadziała? Config nie mam globalny tylko do aplikacji tej aplikacji.

Edytowane przez adikso
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ę.