-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Geocaches approval refactoring, fixes #1672, affects #48 #2354
Conversation
Hi @rapotek I still don't have much time for OC and I would like not to block anything here. Anyway: handlebars vs jsRender is a thing which I would like to discuss. At first I have nothing to jsRender - I have never used it, maybe it's OK but I think we should not use next new template system The rest seems to be OK. |
@kojoty I did not know that you are against existing translation marking in templates. IMHO |
…d to a subtemplate, template names changed to camelCase, viewcache.php in templates changed to ViewCacheController class link
I have implemented changes described above and updated the PR description. |
@rapotek , napiszę po polsku
ja się zgadzam, że krótsza składania jest lepsza tylko problem w tym jakim kosztem to uzyskujemy - w przypadku OC użycie klamr {} wymaga recznego parsowania kodu każdej strony i podmieniania stringów i tego nie robi zoptymalizowany interpreter php tylko nasz kod tutaj: opencaching-pl/lib/common_tpl_funcs.php Line 63 in 6ebc32d
i później musi być eval opencaching-pl/lib/common_tpl_funcs.php Line 182 in 6ebc32d
ogólnie ten sposób mi się nie podoba i wydaje mi się "mało optymalny" - to jest narzut nakładany na kazdy widok przez nas wyświetlany. Uważam, że warto ten twór oc-owy sluzacy do generowania templatów zastąpić czystym php - nie mozna tego zrobic o ile mamy jeszcze stare templaty uzywające {} i czasem {{}} chyba jako zmiennych - przynajmniej nie zupełnie. ...i to jest powód dlaczego nie lubię tych klamr... Chętnie bym pokminił czy jest jakis prostszy składniowo sposób na wprowadzenie translacji w czystym php i bez eval() ale jakos na razie nie wpadłem na inne rozwiązanie niż |
Też oglądałem ten kod i też nie jestem nim zachwycony. Problem w tym, że nawet bardziej profesjonalne systemy szablonowe bazują na parsowaniu i podstawianiu. |
Ja tam jestem za zastosowaniem czegoś, co jest po prostu profesjonalnym silnikiem template'ów. Po co odkrywać Amerykę od nowa, jeśli są gotowe, dobre rozwiązania? Według mnie zdecydowanie najciekawszym jest Twig. W wersji mobile używamy Smarty, ale Smarty jest sporo słabszy. |
@kojoty can we merge this PR? |
If there are significant changes to the template system please have them documented before merge. Thank you. |
There are no changes to the template system in this PR. Possible changes are only discussed for future. |
Sure, please go ahead. |
A ja właśnie jestem przeciw. O ile nie robimy cechowania to moim zdaniem te phpowe silniki działające po stronie serwera są bez sensu - to tylko utrudnia dev. - a głupio robić to można zawsze i żadne tech. rozwiązanie tego nie naprawi - w sensie jak ktoś nie kuma gdzie jest miejsce na zapytania SQL to i template tu nie pomoże. Czemu tak sądzę: taki system templatow nie wnosi nic a jest kosztem bo przetwarzanie tego jest mniej optymalne nic czystego PHP. Popatrzcie tu: https://stackoverflow.com/questions/9363215/pure-php-html-views-vs-template-engines-views Ja uważam, że dla nas najlepszy jest czysty PHP + cache APC na wyniki dużych zapytań do db. Zachowanie całych widoków moim zdaniem słabo się sprawdzi gdy mamy bardzo rozbudowane widoki z dużą ilością dynamicznych danych. Templaty po stronie js mają sens bo to już nie obciąża serwera bezpośrednio. Poza wszystkim zdaje sobie sprawę że to trochę flame war... |
Hmm... Jeśli dobrze pamiętam, to Ty (@kojoty) wprowadziłeś system template'ów do JS, podczas gdy przecież można używać czystego JS. Sam kiedyś używałem czystego JS do sklejania HTMLa z danymi z API i to był koszmar. Teraz do frontu używam Vue (SFC) i kod jest niesamowicie przejrzysty. Co do systemu template'ów PHP - ja widzę trzy podstawowe zalety:
Generalnie myślę, że OC wcześniej czy później upadnie. I to właśnie dlatego, że nie znajdzie się nikt, kto zrówna kod z ziemią i nie użyje nowoczesnych narzędzi tworząc kod od zera. Ten kod już umarł, a my go tylko czasem łatamy. |
I created an issue #2356 for further discussion about templating system. Feel free to fill up that issue with above comments. I suggest to discontinue this subject in this PR. |
The main cause to do geacaches approval refactoring was unification of sending emails using Email object everywhere, but the code was so deprecated, the full refactoring was needed.
Main changes:
One additional external JS libraries are used:
moment.js
, useful for date and time manipulation, included as a chunk with remote sourceThe client side has been tested successfully on: Mozilla Firefox 100, Google Chrome 101, MS Edge 101 and Opera 86.
Some visual examples:
Before:
After:
Before:
After:
Before:
After:
Before:
After:
Before:
After:
Before:
After: