Skocz do zawartości

Polecane posty

Przepraszam że tak meczę, ale zadam kilka pytań.

1. Dodałem sobie zakładkę w górnym menu, do mojej strony:

app=core&module=global&section=x

chciałbym aby podświetlała się ona gdy użytkownik z niej korzysta, tak jak reszta. Używam oryginalnego skina ipb.

2. Czy istnieje jakaś możliwość zamiany ID użytkownika, na jego nazwę wyświetlaną i seo.

3. Czy istnieje możliwość stworzenie globalnego zapytania, tak jak do tabeli members.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witaj,

Ad 1. rozumiem, że masz kod coś w stylu:

<li><a href="app=core&module=global&section=x"...</a></li>
? Jeśli tak to zrób sobie taki kod:
<li <if test="$this->request['section'] == 'x'">class="active"</if>><a href="app=core&module=global&section=x"...</a></li>

gdzie x to jest ta sama wartość co w section w linku.

Ad 2. nie da się i jest to totalnie bez sensu. Nazwa to nazwa a ID to ID

Ad 3. ale jakiego globalnego zapytania do czego?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ad 2. Czemu bezsensu? Wolałbym pobrać jedno zapytanie i to zamienić, a tak muszę pobierać trzy, ale ok.

Ad 3. Do jakiejś komórki, na takiej zasadzie jak $members['cośtam'], żebym mógł używać gdzie mi się tylko zachcę.

Wielkie dzięki.

Ad 1. Rozwala mi cały panel nawigacji. :(

Mój obecny pasek wygląda tak:

li id='nav_custom_link' class='left'><a href='index.php?app=core&module=global&section=x'>XXX</a>

Po dodaniu tej instrukcji warunkowej strona się nie otwiera.

Edytowano przez Krzysiu

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ad 1.

skoro masz kod:

<li id='nav_custom_link' class='left'><a href='index.php?app=core&module=global&section=x'>XXX</a></li>
to zamień go na:
<li id='nav_custom_link' class='left <if test="$this->request['section'] == 'x'">active</if>'><a href='index.php?app=core&module=global&section=x'>XXX</a></li>

powinno pomóc :)

Ad 2. Bez sensu dlatego że ID użytkownika powinno być liczbą. Jeśli się choć trochę znasz na tworzeniu aplikacji z wykorzystaniem baz danych to będziesz wiedzieć dlaczego. Dlaczego 3 zapytania? Nie wiem co tam chcesz robić ale bez problemu da się pobrać jednym zapytaniem wszystko co potrzebujesz jeśli jest jakoś powiązane z użytkownikiem. Jakkolwiek, czy to poprzez ID czy nawet przez login.

Ad 3. nie rozumiem. Jeśli w tabeli ibf_members dodasz jakieś pole albo jeśli dodasz pole dodatkowe (custom fields) to zawsze poprzez $this->memberData będziesz mógł pobrać to co tam chcesz

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

1. Dzięki spaner, mistrzu.

2. Taak, zapomniałem o czymś takim jak add_join, ale mam z tym problem, otóż:

Chciałbym pobrać z tabeli 1chars, member_id, które jest zapisane w komórce guid, następnie za pomocą add_join zlokalizować members_display_name i members_seo_name, z komórki members. Próbowałem wypełniać add_join, ale albo mam błąd albo nie pobiera danych, dlatego proszę o pomoc.

3. Ale nie chodzi mi o tabele members, tylko o jakaś inna która sobie stworze. :>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ad 1. Proszę

Ad 2. Dajesz coś takiego:


$this->DB->build( array(
'select' => 'g.*',
'from' => array( '1chars' => 'g' ),
'add_join' => array(
array(
'select' => 'm.*',
'from' => array( 'members' => 'm' ),
'where' => 'm.member_id=g.guid',
'type' => 'inner',
),
) );

$this->DB->execute();[/code]

Ad 3. To musiałbyś sobie dodać w klasie IPSMember metoda chyba load, jeśli dobrze pamiętam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki. :)

Przepraszam że Cię tak strasznie meczę, ale mam jeszcze jedno pytanie. Jak mogę zliczyć ilość zapytań o warunku który podam? Chodzi o to ze jak wyciągnę za pomocą pętli np 4 rzeczy, to chcę wyświetlić ich liczbę. W tym przypadku to 4. :blush:

Edytowano przez Krzysiu

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Najprościej to tak jak podawałem Ci w zakładce profilu ;) tzn.

Zamień:

$this->DB->execute();
[/code] na:
[code]
$res = $this->DB->execute();
$amountOfRecords = $this->DB->getTotalRows( $res );

i od teraz w zmiennej $amountOfRecords masz ilość rekordów, które zostały pobrane tym zapytaniem

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Okey, dzięki. A podałbyś mi lokalizacje pliku abym mógł zrobić taką globalną zmienna? Nie wiem czy kojarzysz ale coś jak function.php w mybb. :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wielkie dzięki za tyle cierpliwości i pomocy. Wystarczy że dodam takie coś?

static public function onlineplayers {


$this->DB->build( array( 

                                'select' => '*', 

                                'from' => '1chars,

                                'where' => 'active=1' ));

$res = $this->DB->execute();

$amountOfRecords = $this->DB->getTotalRows( $res );



return $amountOfRecords;

}

I teraz w kodzie mogę dawać np. {$onlineplayers} czy jak? :>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli dasz do IPSMember to używasz wszędzie tego jako IPSMember::onlineplayers(); ale to Ci nie zadziała, bo brakuje nawiasów, i w statycznej klasie nie możesz używać $this zobacz sobie jak w tej klasie są wykonywane zapytania do bazy to będziesz wiedzieć jak musisz zrobić

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dodałem to po:

class IPSMember
static public function onlineplayers {


ipsRegistry::DB()->build( array( 

                                'select' => '*', 

                                'from' => '1chars,

                                'where' => 'active=1' ));

$res = ipsRegistry::DB()->execute();

$amountOfRecords = ipsRegistry::DB()->getTotalRows( $res );



return $amountOfRecords;

}

Dobrze? :wub: A o jakie nawiasy chodzi? :>

Edytowano przez Krzysiu

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie, źle. Pisałem o nawiasach składnia języka jest dość prosta

function NazwaFunkcji()

czyli to Twoje powinno wyglądać tak:


static public function onlineplayers() {

ipsRegistry::DB()->build( array(
'select' => '*',
'from' => '1chars',
'where' => 'active=1' ));
$res = ipsRegistry::DB()->execute();

return ipsRegistry::DB()->getTotalRows( $res );
}[/code]

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wielkie dzięki! Mhm, a jak się dodaje to np w bicie? :>

Edytowano przez Krzysiu

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wielkie dzięki! Mhm, a jak się dodaje to np w bicie? :>

Dobra dodałem {IPSMember::onlineplayers()}, ale mimo że jedna komórka ma wartość 1, ciągle pokazuje 0. :(

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ale jak w bicie, tego tak się nie wykorzystuje, jak chcesz to gdzieś wyświetlić to musisz przekazać. W ACP w bitach szablonów takie rzeczy nie działają.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Kurcze, bo ja bym chciał w nawigacji te liczby wyświetlić. Jest jakiś sposób?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To spróbuj, zamienić tą funkcje na:

static public function onlineplayers() {

$res = ipsRegistry::DB()->buildAndFetch( array(
'select' => 'COUNT(*) as amount',
'from' => '1chars',
'where' => 'active=1' ));


return $res[ 'amount' ];
}[/code]

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×

Ważne informacje

Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies.