Napisane: 9.05.2019, 09:20:23 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Jak wystarcza Ci coś prostszego i siłą rzeczy trochę wolniejszego niż wkhtml, to zobacz na domPDF. |
Forum: Przedszkole · Podgląd postu: #1240662 · Odpowiedzi: 4 · Wyświetleń: 477 |
Napisane: 22.03.2019, 20:22:32 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Ja stosuję podejście Crypto Erase. To też rozwiązuje problem z wszelkimi kopiami baz danych, jakie trzymamy. |
Forum: PHP · Podgląd postu: #1239535 · Odpowiedzi: 9 · Wyświetleń: 2 154 |
Napisane: 26.02.2019, 18:15:05 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Z rok temu miałem podobny problem i rozwiązałem go tak. Właściwie zasada opisana przez trueblue. Wszystkie tego typu tekstu do tłumaczenia eksportuję do Excela. Każdy język, to osobny arkusz. W pierwszej kolumnie umieszczam identyfikator w postaci: 222|prod|desc - co oznacza ID 222, tabela products, pole description. Kolejne kolumny, to są części składowe danego tekstu. Tekst rozbijam ze względu na akapity (p), nowe linie (br) oraz wypunktowania (li). U mnie nie ma więcej możliwości, ale można dodać. Na bazie Twojego przykładu wyglądałoby tak (każdy wiersz tu, to kolumna w excelu) 1|prod|desc <strong>Materiał:</strong> Korpus wykonany z wysokiej jakości płyty wiórowej laminowanej; akcesoria montażowe wraz z czytelną instrukcją w komplecie; gwarancja 2 lata. <strong>Opis produktu:</strong> Szafka górna otwarta z dwoma półkami w środku. Elegancja i komfort to główne cechy kuchni Sycylia. Niezależnie z której strony oglądane będzie kuchnia meble zawsze zaprezentują się doskonale. Imponująca liczba szafek dolnych oraz górnych zaspokoi potrzeby użytkowników. <strong>Kolor:</strong> Korpus - biały Korpus - orzech milano .... Dodatkowo zapisuję sobie tekst całości, na wypadek, gdyby się on zmienił nim przyjdzie tłumaczenie. Teraz tłumacz ma opis 1 produktu w 1 wierszu, tylko w różnych kolumnach. Widzi cały kontekst i zachowuje podział na kolumny. Co prawda muszą oni sobie to kopiować z excela albo odpowiednio formatować kolumny, bo długie teksty są niezbyt dobrze wyświetlane, jednak jest to akceptowalne. Po jakimś czasie dostaję całe tłumaczenie ze wszystkich języków w 1 pliku excela albo w wielu plikach z arkuszami nazwanymi odpowiednio wobec kodów języka np. en-gb, fr-fr itp. Wgrywam sobie taki plik do strony i parser robi odwrotną pracę. Czyli na podstawie tekstu, który skopiowałem dzieli go ponownie na tablicę z elementami tekstowymi. Odczytuje z Excela odpowiednie wiersze i kolumny, robi podmianę, na podstawie ID rozpoznaje co to za produkt i jakie pole jest tłumaczone i wykonuje update do bazy danych. Samo ID jest kodowane i dekodowane (używam biblioteki hashID), by mi nikt tam nie ingerował w to. Dopuszczam strongi, bo nie widzę powodu je zmieniać na nic innego. Jeśli mam kod typu <span style="font-size: 14px; color: #fff;">tekst</span> i inne takie dziwne rzeczy, to zamieniam to na [1]tekst[/1] i informuję tłumaczy, by nie ruszali takich znaczków oraz <strongów>. Od biedy strongi można też zamieniać w ten sposób. Sprawa tłumaczeń generalnie załatwiana jest przez eksport oraz import plików excela. Jak na razie nie trafił się nikt z tłumaczy, co by nie ogarnął tego systemu excelowego, chociaż za wielu ich też nie było. |
Forum: Przedszkole · Podgląd postu: #1239080 · Odpowiedzi: 3 · Wyświetleń: 364 |
Napisane: 22.02.2019, 20:21:13 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
np. https://www.kimai.org/ - o ile ma być coś prostego |
Forum: Szukam · Podgląd postu: #1238994 · Odpowiedzi: 5 · Wyświetleń: 13 488 |
Napisane: 3.02.2019, 22:00:38 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Generalnie tak. To też zależy jakiej wielkości jest to plik i ile trwa jego wygenerowanie. Jak jesteś w stanie wygenerować plik "od ręki" to możesz zakodować go w base64 i przesłać do angulara w odpowiedzi. Wtedy kontroler zwraca odpowiedź np. takiej tablicy JSONem: albo
W angularze czekasz na odpowiedź i w przypadku jej prawidłowego otrzymania i w zależności od status, wywołujesz pobieranie pliku albo pokazujesz komunikat. Jak plik jest większy albo musisz go kolejkować, czyli angular musi czekać np. minutę aż się plik skończy generować, trzeba trochę dodać logiki, ale zasada komunikacji jest zawsze taka sama. |
Forum: Frameworki · Podgląd postu: #1238787 · Odpowiedzi: 3 · Wyświetleń: 1 938 |
Napisane: 29.01.2019, 22:32:53 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Angular jako tako jest tu bez znaczenia, bo zasada działania jest praktycznie taka sama w każdym froncie. Wysyłasz request ajaxem. W backendzie tworzysz sobie jakieś restowe API albo obsługujesz normalne zapytanie GET czy POST przesłane przez front. Następnie front obsługuje odpowiedź, którą zwrócił backend. Nie bardzo rozumiem Twoje pierwsze pytanie. Nie ma znaczenia, czy wyślesz żądanie przez angular, czy wpiszesz sobie w przeglądarkę jakikolwiek adres i otrzymasz odpowiedź w ten sposób. Później taką odpowiedź obsługujesz dynamicznie przez front i albo wyświetlasz błąd zwrocony przez backend albo zlecasz przeglądarce pobranie pliku, który został wygenerowany przez backend. Do uruchomienia samego pobierania pliku przez ajax, możesz użyć np. tego skrypciku http://danml.com/download.html Można też zrobić redirect w przeglądarce na jakiś adres do backendu i w nagłówku wymusić pobieranie pliku XML. Wtedy przeglądarka rozpocznie pobieranie i nie zmieni swojego adresu (chyba, że użytkownik ma wymuszone otwieranie takiego pliku w przeglądarce, wtedy to nie zadziała). Możesz też użyć techniki z iframem stworzonym dynamicznie, któremu wrzucasz adres URL do backendu i backend generuje Ci ten plik i przesyła odpowiednie nagłówki oraz body. |
Forum: Frameworki · Podgląd postu: #1238707 · Odpowiedzi: 3 · Wyświetleń: 1 938 |
Napisane: 28.01.2019, 11:22:21 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Na siłę możesz zrobić coś takiego (nie testowałem tego, ale na oko powinno działać)
|
Forum: Frameworki · Podgląd postu: #1238675 · Odpowiedzi: 3 · Wyświetleń: 2 122 |
Napisane: 2.01.2019, 16:55:55 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Cytat Chciałbym zabezpieczyć się przed tym, że wspomniany plik Excela przez pomyłkę zostanie uruchomiony na innym komputerze. Przez pomyłkę raczej nikt nie złamie hasła do projektu, nie wejdzie w kod VBA i nie podejrzy danych autoryzacyjnych, by później uruchomić ten plik pomyłkowo na innym komputerze. Napisz najlepiej w jakim środowisku to działa, jak dystrybuujesz i przed czym realnie chcesz się uchronić. Tworzenie historii, która ma uprościć i wyjaśnić rozwiązanie, tylko je gmatwa. Moim zdaniem od strony makra wystarcza w zupełności taki sposób, gdyż tak się zawsze łączysz z REST API. Możesz użyć specjalego klucza, który będzie kodował przy pomocy unikalnej soli dane komputera, które są Ci znane i możesz je pobrać z makra i sprawdzać, czy klucz się zgadza. Nawet jak ktoś przeniesie makro na inną maszynę, to wykryje to niezgodność klucza. Można też przez basic authentication. Możesz też prosić o login i hasło w samym makrze i zastosować ciasteczka robiąc normalne logowanie jakby to była przeglądarka i dopiero wtedy uruchamiać główne makro, które coś robi. |
Forum: Przedszkole · Podgląd postu: #1238378 · Odpowiedzi: 3 · Wyświetleń: 558 |
Napisane: 1.01.2019, 23:53:54 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Też kiedyś tego szukałem i poza powyższym nic innego nie istnieje. Możesz od biedy skorzystać z https://floobits.com/help/plugins/intellij - to jest plugin do zdalnego programowania parami, więc może się czasem przydać przy pracy na konkretnych plikach (wymaga eksportu na zewnętrzny serwer), ale na pewno nie jest to rozwiązanie systemowe. |
Forum: Kontrola i zarządzanie projektami · Podgląd postu: #1238374 · Odpowiedzi: 5 · Wyświetleń: 8 198 |
Napisane: 17.11.2018, 00:18:00 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Teraz robi co trzeba. Dzięki. |
Forum: MySQL · Podgląd postu: #1237675 · Odpowiedzi: 2 · Wyświetleń: 1 961 |
Napisane: 16.11.2018, 19:58:52 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Zazwyczaj używałem takiej komendy na serwerze, żeby zrzucić sobie bazę danych do pliku: Kod mysqldump -h xxx -u xxx --password=xxx baza > backup_$(date +%Y-%m-%d-%H.%M.%S).sql Dziś jednak zwraca mi ona błąd: -- MySQL dump 10.13 Distrib 5.5.35, for Linux (x86_64) -- -- ------------------------------------------------------ -- Server version 5.7.21-20-log mysqldump: Couldn't find table: ">" Pewnie był jakiś update na serwerze, ale czy zmieniła się składnia? Jak to teraz powinno wyglądać? |
Forum: MySQL · Podgląd postu: #1237670 · Odpowiedzi: 2 · Wyświetleń: 1 961 |
Napisane: 10.09.2018, 13:28:59 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Z contentu w jakim sensie? Style możesz sobie też dodać inline. Jedyna alternatywa to stworzyć w JS dynamicznie img i załadować obrazek przez podanie ścieżki do src w ramach preloadera, ewentualnie stworzyć img z position absolute i wyrzucić go poza widok strony, a później go przenieść, ale to trochę przekombinowane. |
Forum: Przedszkole · Podgląd postu: #1236641 · Odpowiedzi: 7 · Wyświetleń: 488 |
Napisane: 10.09.2018, 13:12:12 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Zależy co chesz zrobić, ale generalnie połącz zdjęcia w jeden plik, załaduj w CSS jako background i na hover zmień background-position, żeby pokazało drugie zdjęcie. |
Forum: Przedszkole · Podgląd postu: #1236639 · Odpowiedzi: 7 · Wyświetleń: 488 |
Napisane: 10.09.2018, 10:24:51 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
|
Forum: PHP · Podgląd postu: #1236636 · Odpowiedzi: 1 · Wyświetleń: 471 |
Napisane: 9.09.2018, 14:29:29 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Najprościej bezpośrednio z konsoli bez pakowania do gz. Kod mysql -u user -p nazwa_nowej_bazy < sciezka_pliku.sql |
Forum: MySQL · Podgląd postu: #1236626 · Odpowiedzi: 5 · Wyświetleń: 1 905 |
Napisane: 6.09.2018, 11:26:37 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
U mnie wygląda to tak, że do tego pliku lock zapisuję ID procesu. Dzięku temu nawet jeśli plik istnieje, pobieram ID procesu, sprawdzam, czy taki proces już występuje. Jeśli nie występuje, to znaczy, że serwer zabił go i skrypt nie skończył się wykonywać normalnie. Wtedy zazwyczaj odpalam ponownie ten proces i aktualizauję ID. Jeśli proces ciągle istnieje to patrzę na datę modyfikacji pliku i albo zabijam sam taki proces, jeśli uznam, że czas jest dziwnie długi, czekam na zabicie i odpalam ponownie właściwy skrypt albo zostawiam go i nie odpalam kolejnego. Możesz też napisać własnego, prostego demona w PHP, który będzie kontrolował wszystkie procesy na danym serwerze zamiast crona. |
Forum: Przedszkole · Podgląd postu: #1236542 · Odpowiedzi: 3 · Wyświetleń: 388 |
Napisane: 3.09.2018, 08:00:46 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Trochę odchodząc od temu, to wbrew pozorom napisanie czegoś takiego, nie jest mocno skomplikowane. To jeszcze zależy jaka to jest skala i jakie powinno mieć funkcje. Kiedyś znajomemu robiłem coś podobnego w PHP. Przykład powyższy jest trafny, do tego jeszcze ważony problem komiwojażera oraz problem plecakowy z wagami polegającymi na sortowaniu względem priorytetu rozładunku. Drukowanie kodów QR i później kierowca tylko skanuje na rozładunku co zeszło i co weszło i masz bieżący podgląd. Tak naprawdę problemem w takich rozwiązaniach są wagi optymalizacyjne, gdyż czasami lepiej jest zmienić kolejność układania towarów w TIRze a czasami zmiana trasy. To jednak dotyczy całkowicie zautomatyzowanych systemów przy wielu frachtach. Jako program pomocniczy można wygenerować kilka wariantów i dać logistykowi wybrać. |
Forum: Hydepark · Podgląd postu: #1236485 · Odpowiedzi: 2 · Wyświetleń: 1 182 |
Napisane: 31.08.2018, 19:59:52 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Dzięki. Będę sobie testował różne rozwiązania i zobaczymy, co wyjdzie najlepiej. To json-ld wygląda nieźle. Ciągle byłem na etapie ręcznego klepania schema.org w strukturę strony, co szło topornie. |
Forum: Optymalizacja i pozycjonowanie stron - SEO · Podgląd postu: #1236456 · Odpowiedzi: 2 · Wyświetleń: 8 639 |
Napisane: 31.08.2018, 15:08:10 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Stworzyłem stronę typu one-page. Każda sekcja posiada swój normalny adres URL typu {slug},{id}.html np. domena.com/oferta,5.html domena.com/kontakt,2.html Podczas skrolowania strony, używam history.push by każda sekcja miała nadawany swój adres. Analogicznie swoje adresy mają treści ładowane dynamicznie ajaxem typu newsy albo oferta produktów. Jak ktoś klinie na szczegóły produktu, pojawia się modal z treścią zaserwowaną przez ajaxa i podmenia się adres URL strony razem z tytułem. Gdy użytkownik odświeży stronę z danym linkiem, kontroler wstrzykuje do widoku funkcję JS typu load_product(5), która powoduje wywołanie ajaxa i analogiczny efekt, jak opisany powyżej, gdy użytkownik w coś kliknie. Problemem jednak jest to, że technicznie wszystkie te URLe mają dokładnie ten sam kod i treść, do czasu gdy ajaxem doczyta się coś nowego. Nie wierzę, by google crawler rozróżniał tego typu działania, więc wpadłem na pomysł, by kontroler po rozpoznaniu crawlera, serwował mu prostą stronę tylko z tą treścią z podanego linku. Czyli przy indeksowaniu domena.com/produkt,9.html dostałby opis jakiegoś produktu z ustawionym title i description. Sama technika snapshotów została oznaczona jako deprecated. Jest sens to robić w taki sposób jak opisałem? Czy taką stronę dla crawlera rozbudować o nawigację i inne elementy, tak jakby to była normalna podstrona serwowana użytkownikowi, czyli stopka, treść główna i np. lista kategorii? Jak właściwie dobrze wypozycjonować poszczególne produkty na tej stronie, które są ładowane ajaxem? |
Forum: Optymalizacja i pozycjonowanie stron - SEO · Podgląd postu: #1236442 · Odpowiedzi: 2 · Wyświetleń: 8 639 |
Napisane: 31.08.2018, 08:36:04 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
O jak miło. Mi też padło na wersjach 5.5 i 2.8. |
Forum: Hydepark · Podgląd postu: #1236431 · Odpowiedzi: 4 · Wyświetleń: 1 191 |
Napisane: 30.08.2018, 20:23:36 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Miałem coś takiego -> http://forum.php.pl/index.php?showtopic=260954 Prawdobodobnie używasz php graph sdk w wersji mniejszej niż 5.5, np. 5.4 |
Forum: Hydepark · Podgląd postu: #1236427 · Odpowiedzi: 4 · Wyświetleń: 1 191 |
Napisane: 23.08.2018, 10:46:57 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Mój wybór padł na Nikola, generator statycznych stron. Rzuciłem tylko okiem na dokumentacje, ale mógłbyś z praktyki napisać, w jaki sposób działa wyświetlanie dynamicznych treści statycznie? Instalujesz to na swoim serwerze produkcyjnym i gdy ktoś doda np. komentarz lub napiszesz artykuł (widziałem, że można wpiąć CMSa sobie) z kodu robi sie jakiś trigger do przebudowania treści? On sam wie, które części ma wygenerować ponownie, czy robi pełen build za każdym razem? |
Forum: Hydepark · Podgląd postu: #1236243 · Odpowiedzi: 19 · Wyświetleń: 2 341 |
Napisane: 8.08.2018, 12:03:55 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Używacie tego narzędzia? Jak się sprawuje w praktyce w porównaniu np. do Jenkinsa? Chodzi mi o łatwość konfiguracji, pewną elastyczność i wygodę użycia później. |
Forum: Kontrola i zarządzanie projektami · Podgląd postu: #1235938 · Odpowiedzi: 0 · Wyświetleń: 6 935 |
Napisane: 3.08.2018, 17:28:49 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Chodzi mi raczej o to, że myślenie podejściem Data First nie jest uznawane za błąd sam w sobie, a Model First nie zawsze musi być stosowane w pierwszej kolejności. Wszystko zależy czego potrzeba i co się chce osiągnąć. Zgadzam się, że przy modelu nie masz odwzorować schematu bazy, jaki masz założony, bo nie masz mieć takiego założenia po prostu. Natomiast jeśli idziesz od strony architektury bazy danych, bo masz ku temu powód, to nic w tym złego. |
Forum: Frameworki · Podgląd postu: #1235840 · Odpowiedzi: 17 · Wyświetleń: 3 944 |
Napisane: 3.08.2018, 10:00:38 | |
Grupa: Zarejestrowani Postów: 175 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) |
Cytat No i to jest błąd. Uważasz to za błąd w ogóle, czy w tym konkretnym przypadku? |
Forum: Frameworki · Podgląd postu: #1235836 · Odpowiedzi: 17 · Wyświetleń: 3 944 |
Nowe odpowiedzi Brak nowych odpowiedzi Popularny temat (Nowe) Popularny temat (Brak nowych) |
Sonda (Nowe) Sonda (Brak nowych) Zamknięty temat Przeniesiony temat |
Wersja Lo-Fi | Aktualny czas: 19.05.2024 - 17:04 |