Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Allegro WebAPI - panel aukcji allegro
Forum PHP.pl > Forum > Przedszkole
pafeu
buduję panel aukcji allegro
i utknąłem na linkach do wyświetlonych w panelu aukcji miniatur
potrzebuję podlinkować miniatury aby po kliknięciu na wybraną przechodziło do tejże aukcji
w jaki sposób pobrać link do aukcji z allegro WebApi
sabat24
Pobierasz numer aukcji, a link sobie generujesz jako show_item.php?item=nr_aukcji
pafeu
no tak - ale zaćmienie miałem yahoo.gif masz "pomógł"
dla potomnych podam jak podlinkować miniaturę w panelu aukcji allegro
  1. echo '<a href="http://allegro.pl/show_item.php?item='.$items['user-item-list'][$i]->{'it-id'}.'"><img src="'.$items['user-item-list'][$i]->{'it-thumb-url'}.'"/></a>'.'<br/>';



mam jeszcze jedno pytanie
jak pobrać ilość wystawionych aukcji?

sam sobie odpowiem
  1. user-item-count


paginacja / stronicowanie
czy ma ktoś może jakiś prosty kod do podzielenie wyników na strony?
djgarsi
Skoro wyniki są tablicą to w czym problem? Wyświetlaj aukcje pętlą (np. for czy czym tam chcesz) i GET'em przekazuj od którego elementu ma być pokazywana część aukcji.
pafeu
w Allegro WebApi trzeba zastosować limit i offset
niestety nic w internecie na ten temat nie znalazłem
może ktoś wie coś na ten temat?
  1. $soap=new SoapClient('http://webapi.allegro.pl/uploader.php?wsdl');
  2. $userId= $soap->doGetUserId(1,'login','','xxxxxxxxxx');
  3. $items=$soap->doGetUserItems($userId,'xxxxxxxxxx',1);
  4. //wyświetlanie ilości aukcji użytkownika
  5. echo 'użytkownik ma '.$items['user-item-count'].' aukcji';
  6. //iteracja do 25, gdyż parametr limit w doGetUserItems jest domyślnie ustawiony na 25
  7. for($i=0;$i<25;$i++)
  8. {
  9. echo $items['user-item-list'][$i]->{'it-name'}.'<br/>
  10. }

przyjmijmy, że mam 100 aukcji do wyświetlenie
jak zmienić powyższy kod?
sabat24
Funkcja doGetUserItems pozwala na podanie parametru Offset i Limit, zatem zachowuje się dokładnie tak samo, jak choćby polecenie LIMIT w MySQLu. Twój przykład pochodzi z dokumentacji webapi, gdzie ta funkcja jest dokładnie omówiona -> http://allegro.pl/webapi/documentation.php...03#method-input
kristaps
Najpierw pobierasz łączną ilość aukcji, następnie dzielisz przez limit, który ustawiłeś dla metody doGetUserItems - załóżmy 25. Później pętla i zabawa z zwiększaniem offset o + 1. Jeżeli planujesz odpalać skrypt cyklicznie, to polecam napisać sobie w miarę konkretną obsługę błędów. Praca z api allegro nie będzie takim koszmarem.
pafeu
  1. $offset = ($_GET['id']) ;
  2. $limit = 5;
  3. $soap=new SoapClient('http://webapi.allegro.pl/uploader.php?wsdl');
  4. $userId= $soap->doGetUserId(1,'xxx','','xxx');
  5. $items=$soap->doGetUserItems($userId,'xxx',1,$offset,$limit);
  6. $ile_stron = $items['user-item-count'] / $limit;
  7.  
  8. for($i = 0; $i < $ile_stron; $i++)
  9. {
  10. echo '<a href="index.php?id='.$i.'"> '.$i.' </a>';
  11. }
  12.  
  13. for($i=0;$i<$limit ;$i++)
  14. {
  15. echo $items['user-item-list'][$i]->{'it-name'}.'<br/>';
  16. }

wystrugałem taki kod - niby działa dobrze ale nie do końca
jak przejdę do ostatniej strony z wynikami do wyświetlenia to jeżeli na tej ostatniej stronie wyświetli się np.:2 wyniki a $limit=5 to dalej wyświetla 3 błędy zamiast brakujących wyników do wyświetlenia
Notice: Undefined offset: 2 in C:\wamp\www\panel-aukcji-1-test-stronicowania\index.php on line 76
Notice: Trying to get property of non-object in C:\wamp\www\panel-aukcji-1-test-stronicowania\index.php on line 76
Notice: Undefined offset: 3 in C:\wamp\www\panel-aukcji-1-test-stronicowania\index.php on line 76
Notice: Trying to get property of non-object in C:\wamp\www\panel-aukcji-1-test-stronicowania\index.php on line 76
Notice: Undefined offset: 4 in C:\wamp\www\panel-aukcji-1-test-stronicowania\index.php on line 76
Notice: Trying to get property of non-object in C:\wamp\www\panel-aukcji-1-test-stronicowania\index.php on line 76

@ maskuje ten błąd ale czy to dobrze?
Czy taki kod jest poprawny?
A może można to zrobić lepiej?

Z powodu braku odpowiedzi rozumiem, że to co zrobiłem jest dobrze zrobione i nie można tego zrobić lepiej.

No dobrze to mamy panel aukcji allegro wyświetlający nasze aukcje na naszej stronie www.
Ale w takiej postaci nie możemy go wstawić do naszych aukcji na allegro.
Domyślam się, że muszę teraz skorzystać z GD aby pozamieniać wszystko na bitmapy.
Czy dobrze myślę?
Jak się do tego zabrać?
sabat24
Źle robisz. Sprawdź najpierw czy te wartości istnieją i jeśli nie, to przerwij pętle albo oblicz najpierw, ile powinna wynosić ostatnia pętla.
Ja panel allegro robiłem tak, że wstawiałem po prostu:
  1. <a href="panel.php?aukcja=1" title="Inna nasza aukcja"><img src="panel.php?image=1" alt="Inna nasza aukcja" /></a>


Kliknięcie na link przekierowywało do skryptu, który na podstawie parametru, pobierał link aukcji i robił przekierowanie, a obrazek generował się też przez plik php jako jpg.
pafeu
Cytat(sabat24 @ 10.02.2013, 00:41:25 ) *
Źle robisz...

Nie rozumiem o co Tobie chodzi. Napisz coś więcej - co źle robię?
Skrypt działa dobrze i wyświetla aukcje.
Teraz chcę panel przerobić tak aby było możliwe wstawienie do aukcji na allegro.
Allegro przyjmuje tylko odnośniki <a href=...
sabat24
Cytat
@ maskuje ten błąd ale czy to dobrze?

Nie masz maskować, tylko go wyeliminować. Co masz w pierwszej części mojej odpowiedzi, jak to wyeliminować.
pafeu
Cytat(sabat24 @ 11.02.2013, 00:36:40 ) *
Nie masz maskować, tylko go wyeliminować. Co masz w pierwszej części mojej odpowiedzi, jak to wyeliminować.

postawiłem taki warunek:
  1. if (isset($items['user-item-list'][$i]))
  2. {
  3. ...
  4. }

i wygląda na to, że teraz jest dobrze - chyba.

Teraz chcę panel przerobić tak aby było możliwe wstawienie do aukcji na allegro.
Allegro przyjmuje tylko odnośniki <a href=...
Jak się za to zabrać?



proszę, może ktoś mi podpowie?

co_jest.gif

proszę podpowiedzcie coś w tym temacie bo nie mam żadnego punktu zaczepienia wink.gif
ber32
Co to znaczy wstawianie. Czy chcesz dodać nową aukcję?
pafeu
Cytat(ber32 @ 7.03.2013, 20:54:48 ) *
Co to znaczy wstawianie. Czy chcesz dodać nową aukcję?

wstawianie - inaczej mówiąc umieszczenie w treści aukcji

oneeyedsmiley02.png

jaki jest następny krok przy tworzeniu panelu aukcji allegro?
proszę, może ktoś mi podpowie?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.