Bartek Naski

Bartek Naski CakePHP developer

Temat: Paginacja artykułu, znaczy dzielenie długiego tekstu

Witam, mam kłopot i nie wiem jak to rozwiązać, i żeby to tak zrobić, żeby było dobrze zrobione.... może ktoś to już robił i wie jak sobie z tym poradzić?
o co chodzi?
chodzi o paginację dłuugiegoo artykułu który byłby dzielony na części i w obrębie tych części byłaby paginacja, ale nie mam na myśli splitu w jQuery tylko normalny, jak to zrobić?
w cms muszę użyć edytora wyswing (pewnie TynyMCE) więc text leci do bazy z html-em, dodawanie,edycja i wyszukiwanie powinno być intuicyjne bez specjalnych udziwnień.
mam 3 pomysły i żadne z nich nie jest dobre (półśrodki), ale zanim rzucę tu moje pomysły, to prosiłbym o wasze przemyślenia, nie chciałbym wskazać niepotrzebnie kierunku dyskusji
Kamil Kosiński

Kamil Kosiński CTO w
DobryMechanik.pl

Temat: Paginacja artykułu, znaczy dzielenie długiego tekstu

Na przykład po stronie użytkownika:
a) kolejne podstrony dodawane jako kolejne instancje wysiwyg/textarea (przyciski do dodawania/usuwania stron)
b) twój własny znacznik (za pomocą dodatkowego przycisku w wysiwyg) rozdzielający kolejne podstrony

Po stronie zapisu:
a) zapisywanie oddzielny wysiwyg jako kolejne rekordy tworzące artykuł, czyli Article (name, ...) + ArticlePage (treść strony)
b) cięcie po twoim znaczniku i zapis jak w punkcie a
c) zapisanie razem z twoim znacznikiem i cięcie dopiero przy wyświetlaniu

Na szybko tyle. Z tych opcji najbardziej pasuje mi a + b. Przy edycji i zmianie układu (liczby i zawartości stron) wywaliłbym wszystkie ArticlePage i zapisał ponownie poprostu.

Wyszukiwanie nie będzie problematyczne niezależnie od tego czy zapiszesz wszystko jako jeden rekord, czy jako podstrony.

Ale to mam wrażenie, że jest temat na jakąś inną grupę (CMS,PHP,...) bo to jest raczej problem projektowy niż cakeowy :)
Bartek Naski

Bartek Naski CakePHP developer

Temat: Paginacja artykułu, znaczy dzielenie długiego tekstu

kejkowy, bo cały projekt będzie w kejku..
no to był mój pierwszy pomysł, aczkolwiek trochę inaczej rozwiązany...
tytuł główny wiązałby cząstkowe podartykuły, a reszta z podtytułami szła by do bazy w relacji do tytułu, podtytuły byłyby jednocześnie dodatkowym indexem... coś w stylu testów sprzętu z PcFormat
minus to recursive 3 albo dalej (z kategoriami i rolami), ale chyba jedyny kompromis...

ale na przycisk w wysiwig nie wpadłem... :) dzięki wielkie

2. znacznik w wyswig i pobieranie z mysql jako substring_index tyle że zawiłe w pobraniu któregoś indexu z rzędu

3. odpada, szkoda pisać :P

myślę jeszcze nad tym czy nie najprostszym rozwiązaniem byłoby załadowanie procesu do bazy, tyle że o tym łatwo zapomnieć w przyszłości i może się skopać przy przeróbkach, heh
Bartek Naski

Bartek Naski CakePHP developer

Temat: Paginacja artykułu, znaczy dzielenie długiego tekstu

zrobiłem na szybko kalkulator odsetek ustawowych (nie mogę pokazać bo zakazane) jako jedną z aplikacji w projekcie, lecz niestety nie wpadłem w odpowiednim momencie na to że co 4 lata mamy +1 dzień z odsetkami. Nie spodziewałem się że przeliczenie tego jednego dnia skomplikuje mi tak zadanie! z dokładnie 5 linijek kodu zrobiło się już ponad setka... zauważyłem że większość podglądanych kalkulatorów online głównie olewa ten 1 dzień a te "pro" dodają po-prostu w danym roku + 1 dzień i występuje tam jakieś niewielkie przekłamanie- można je wyłapać w kwotach powyżej 100k, chciałem porządnie i chyba wdepnąłem... nie wiem czy dobrze kombinuję ale jedynymi odniesieniami jakie mam to data powstania ustawy z odsetkami data startu liczenia i data stopu, odsetki zmieniają się w różnych terminach w tym kilka razy w roku, na przełomie roku, co kilka lat
wszystkie daty startujemy od godziny 00 nia pierwszego do godziny 24 dnia ostatniego.
postanowiłem podzielić datę początkową pomiędzy datami odsetkowymi a datą końcową, następnie podzielić to przez lata splitując je na kawałki 31 gr o 24 i 1 sty o 00, dla każdego roku wyliczyć osobne dni dla danego procentu odsetek dla okresu przypadający na rok przestępny lub nie.
moja konkluzja to czy właściwie to robię? wyniki mam pozytywne i są super dokładne, ale kod jest skomplikowany, dodatkowo frustrujące jest to że w cakephp 2.4.2 występują dziwne błędy dla CakeTime::toUnix(), potrafi nadać wszystkim zmiennym (nawet po unset) tą samą wartość, tak jakby te zmienne były w referencji do utilsu.
bardzo wygodny i wspaniały moim zdaniem utils to CakeTime::daysAsSql(), ale nie znam żadnego utilsu który wyliczyłby mi ilość dni pomiędzy datami, znacie takie? i co myślicie o tym rozwiązaniu na ten kalkulator, trochę się obrypałem i parę razy wywalałem wszystko i zaczynałem od zera, na razie idzie dobrze ale chyba bym się kurzył jakby kolejny raz coś się pokiklało. Pewnie jak odpiszecie to będę już miał gotowe ale chętnie poczytam co sądzicie.
Kamil Kosiński

Kamil Kosiński CTO w
DobryMechanik.pl

Temat: Paginacja artykułu, znaczy dzielenie długiego tekstu

W sumie to tl;dr, no poza ostatnim akapitem, więc nie wiem czy trafię z odpowiedzią.
http://stackoverflow.com/questions/1828948/mysql-funct...
http://stackoverflow.com/questions/9295616/how-to-get-...

Wydaje mi się, że bez problemu znajdziesz rozwiązanie problemu z liczbą dni.
Bartek Naski

Bartek Naski CakePHP developer

Temat: Paginacja artykułu, znaczy dzielenie długiego tekstu

nom, nad ranem skończyłem - fajne linki, ale znam temat, też w pierwszej wersji chciałem to przerzucić na mysql ale i tak wyszło że muszę przeliczyć bo dane były niesymetryczne i odpytywać serwer ponownie, więc biorę całość i parsuję w modelu, działa z każdym układem danych. nawet fajnie to wyszło. :)
może jak zleceniodawca wyrazi zgodę to umieszczę to na swojej stronce :)

Następna dyskusja:

Paginacja z brzydkim url dz...




Wyślij zaproszenie do