Forum Programu Partnerskiego

Wydawnictwa Helion
Teraz jest 26 maja 2019, 04:00

Strefa czasowa: UTC + 2 [ DST ]




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 8 mar 2012, 12:11 
Offline
Helion

Dołączył(a): 11 sie 2011, 15:20
Posty: 109
W tym wątku proszę zgłaszać zapotrzebowanie na nowe funkcjonalności, propozycje zmian jak
i wszelkie uwagi związanie z PHP - HelionLib.

_________________
Radosław Tosta | Online Marketing Manager
Grupa Wydawnicza HELION SA
tel: 32 230 98 63 wew. 186,
http://helion.pl - Informatyka w najlepszym wydaniu
http://onepress.pl - Książki klasy business


Góra
 Zobacz profil  
 
PostNapisane: 8 mar 2012, 12:19 
Offline

Dołączył(a): 2 wrz 2011, 12:43
Posty: 13
Generalnie pomysł bardzo fajny, ale brakuje mi kilku rzeczy:
- Przy pobieraniu informacji o określonej książce, przydałoby się dodać możliwość definiowania rozmiaru okładki książki - w tej chwili informacje pobierane są na temat domyślnego rozmiaru, co nie zawsze będzie dobrym rozwiązaniem. Można by dodać pole klasy przechowujące rozmiar przekazany w konstruktorze, albo jeszcze lepiej obsługiwać rozmiar jako parametr dla każdego wywołania funkcji, zostawiając pewną wartość domyślną.
Wiem, że funkcja wewnętrzna pobierająca XML z Waszych zasobów obsługuje parametr rozmiaru.

- Informacje o odnośniku do okładki przydałyby się również przy wyświetlaniu książki dnia - na tych samych zasadach

W gruncie rzeczy, wydaje mi się, że są to dość proste zmiany. Mógłbym poprawić sobie ten kod sam u siebie, ale straciłbym ewentualną kompatybilność z następnymi wersjami skryptu.

Nie działa też funkcja ksiazka_dnia(), dla księgarni "ebookpoint". Zwraca pustą tablicę.

Na koniec pytanie dodatkowe - czy skrypty są jakoś przygotowane na ewentualny timeout ze strony serwerów Helionu?


Góra
 Zobacz profil  
 
PostNapisane: 8 mar 2012, 20:16 
Offline

Dołączył(a): 16 sie 2011, 12:40
Posty: 86
@Yuras - dzięki za zgłoszenie. W sumie można pomyśleć nad takim rozwiązaniem. Ale czy nie lepiej i wygodniej wykorzystać metodę okladka() ? - ma wersję 1, 2 lub 3-argumentową:

okladka(array $ksiazka) -> domyślny rozmiar to 120x156
okladka(array $ksiazka, "rozmiar")
okladka("ksiegarnia", "ident", "rozmiar")

Dostępne rozmiary są albo w dokumentacji, albo w w. 92 biblioteki.

Z tym ebookpointem zobaczę co jest nie tak.

Jeżeli będzie timeout - czyli de facto brak danych, każda funkcja zwraca false (użyj === aby mieć pewność) i dodatkowo ustawia w $error komunikat błędu. Można wtedy samodzielnie ponowić próbę albo zrobić coś innego, np. wyświetlić odpowiedni komunikat.

_________________
Nie pomagam przez PW - pytania proszę zadawać na forum!

Kanał RSS z informacjami o aktualizacjach dodatków. Koniecznie się zapisz!

WordPress Freelancer - moje portfolio


Góra
 Zobacz profil  
 
PostNapisane: 9 mar 2012, 11:08 
Offline

Dołączył(a): 2 wrz 2011, 12:43
Posty: 13
W gruncie rzeczy, wczoraj właśnie podpiąłem funkcję okładka, obudowałem sobie wszystko w swoje klasy, dzięki czemu jest to dość elastyczne dla mojego rozwiązania, wszystko już mi działa poza Ebookpointem, dla którego teraz widzę, że zwracana jest tablica, z tymi wszystkimi formatami (http://ebookpoint.pl/plugins/xml/lista.cgi?pd=1).
W sumie chyba na tym fragmencie kodu pojawiał mi się jakiś błąd, chyba z tą konstrukcją:
$a = $a['item']['@attributes'];
ale to sprawdzę jeszcze w domu i dam znać.


Góra
 Zobacz profil  
 
PostNapisane: 9 mar 2012, 20:59 
Offline

Dołączył(a): 2 wrz 2011, 12:43
Posty: 13
Dobra sprawdziłem i sprawy wyglądają następująco:
Linia 902 z funkcji parser_xml_ksiazka_dnia, generuje błąd undefined index:
$a = $a['item']['@attributes'];
Generalnie taka konstrukcja:
$a = isset($a['item']['@attributes']) ? $a['item']['@attributes'] : null;
błędu już nie generuje i działa.
Dane dla Ebookpointa się zaciągają, ale nie pojawiają się ponieważ jest w tym przypadku o jedno zagnieżdzenie tablic więcej (książka dnia dla Ebookpoint jest w 3 wersjach).

Moim zdaniem, można by to rozwiązać na dwa sposoby:
1) Dodać extra warunek, który po prostu sprawdza czy nie ma tu kolejnego zagnieżdzenia
2) Zając się API wyżej i dla Ebookpointa zwracać jedną pozycję. W gruncie rzeczy, te trzy zwracane pozycje to to samo. Kupując mobi i tak dostaniemy epub i pdf. Takie postawienie sprawy ma kilka plusów:
- mamy spójne API - dla wszystkich księgarni działa tak samo
- nie potrzeba mieszać w kodzie
- użytkownik końcowy, który zobaczy książkę, po prostu się nią zainteresuje. W hipotetycznej sytuacji, gdy my reklamujemy np. pdf, to użytkownik może nie zdawać sobie sprawy, że trzy formaty są w pakiecie i nawet nie kliknie na dany link.


Góra
 Zobacz profil  
 
PostNapisane: 12 mar 2012, 21:45 
Offline

Dołączył(a): 2 wrz 2011, 12:43
Posty: 13
Pozwolę sobie na kolejny post (ze względu na brak możliwości edycji).

Funkcja top zwraca tablicę, ale nie wiem czemu pierwszy element nie jest na indeksie zerowym, tylko 1.
Nie działa za to funkcja nowinki, zresztą w funkcjach jej towarzyszących jest nawet jakieś todo i print_r;)

I pytanie odnośnie cacheowania. Jak dobrze rozumiem, to cache jest dostępny, dopóki istnieje instancja dana obiektu tak? Czyli na dobrą sprawę, jeśli podpinam bibliotekę do strony to wywołując określona podstronę i tworząc przy okazji nowy obiekt biblioteki tracę wszystkie pobrane dane?
Jeśli tak to czy nie można by zastosować jakiegoś innego, bardziej efektywnego rozwiązania? Komunikacja z serwerami Helionu trwa strasznie długo i proces ładowania strony wyraźnie zwolnił.


Góra
 Zobacz profil  
 
PostNapisane: 13 mar 2012, 17:28 
Offline

Dołączył(a): 16 sie 2011, 12:40
Posty: 86
OK, dzięki za debugowanie :)

top() zwraca tablicę, w której indeksy są numerowane według miejsc, które zajmuje książka na liście (lista top nie jest randomowa, tylko poszeregowana według popularności)

Tak, cache działa tak jak piszesz. Bardziej zaawansowane rozwiązania pozostawiamy już użytkownikom. Można z łatwością zrobić na bazie dostępnych funkcji np. zapisywanie do lokalnej bazy danych i generalnie mnóstwo innych opcji. No ale to już jest zależne od fantazji użytkowników i nie będziemy narzucali jakiegoś jednego konkretnego rozwiązania. Chociaż jeśli coś swojego przygotujesz i będzie to w miarę możliwości ogólne i przydatne dla ogółu, to chętnie dodamy to do oficjalnego wydania biblioteki!

_________________
Nie pomagam przez PW - pytania proszę zadawać na forum!

Kanał RSS z informacjami o aktualizacjach dodatków. Koniecznie się zapisz!

WordPress Freelancer - moje portfolio


Góra
 Zobacz profil  
 
PostNapisane: 20 mar 2012, 17:35 
Offline

Dołączył(a): 16 sie 2011, 12:40
Posty: 86
W najbliższej aktualizacji będzie poprawiona metoda ksiazka_dnia(), która dla ebookpoint.pl będzie zwracała dane ogólne, bez uwzględnienia formatu, tzn. do książki o ident xxxxx_ebook. Tytuł też nie będzie zawierał informacji o formacie. Także teraz będzie wszystko jednolite dla wszystkich księgarni.

Jeszcze tylko czekam na jedną informację od Heliona i jedziemy ;)

Proponuję zapisać się na nowy kanał RSS, na którym będą wrzucane informacje o aktualizacjach: http://program-partnerski.helion.pl/pli ... ion-pp.xml

_________________
Nie pomagam przez PW - pytania proszę zadawać na forum!

Kanał RSS z informacjami o aktualizacjach dodatków. Koniecznie się zapisz!

WordPress Freelancer - moje portfolio


Góra
 Zobacz profil  
 
PostNapisane: 14 maja 2012, 23:27 
Offline

Dołączył(a): 14 maja 2012, 23:22
Posty: 2
Myślę, że do wyników metody ksiazka_dnia można by dołożyć krótki opis książki (taki jak podawany jest w kanale RSS promocji: http://helion.pl/rss/GW/promocje.rss).
Nie trzeba by kombinować z pobieraniem pełnych informacji o książce i skracaniu pełnego opisu.


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 2 [ DST ]


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
POWERED_BY
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL

Korzystamy z cookies, więcej informacji »