Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Stefanowitsch

  1. Basically you can add as much cols inside a row wrapper as you like in bootstrap. You then define the width of each col via class names. I compared both frameworks and this should clear it up it: Bootstrap class names: container -> defines the max width of the content. UIKit equivalent would be uk-container. row -> wrapper for the columns. UIkit equivalent would be uk-grid. col-x -> the column with the specified width. UIkit equivalent would be uk-width-x-x So the bootstrap variant of your code example would look like this: <div class="container"> <div class="row"> <div class="col">foo</div> <div class="col">bar</div> <div class="col">baz</div> <div class="col">foo</div> <div class="col">bar</div> <div class="col">baz</div> </div> </div>
  2. I am really impressed what UIkit is able to do out of the box. But the main bummer for me is that the grid system is so weird (for someone who is using bootstrap since 10+ years..). Why a classic 12-column grid is not supported in UIkit3 is beyond my comprehension. The 12-col grid is the basis of every project I worked on in the past and am working on in the future. But I am drifting away from the topic, sorry πŸ™‚
  3. Which Bootstrap Version are you using? Since Bootstrap 4 there is a form validation component that you can use. It prevents submitting when required fields are empty (for example). https://getbootstrap.com/docs/4.6/components/forms/#validation https://getbootstrap.com/docs/5.1/forms/validation/ However this validation is frontend only. If you disable JavaScript you are still able to submit the form to the server. So I would advice you to make use of both frontend validation (Bootstrap) and backend validation (either via the processwire API or a third party PHP module (https://github.com/rakit/validation).
  4. I am using a SASS mixin which renders REM out of given PX values. So when designing my layouts you typically have px based font sizes. Then when developing the website I want to make use of rem instead of px. Calculating each value can be time consuming and it might be confusing cause rem is relative to the base font size. @function calculateRem($size) { $remSize: $size / 16px; @return #{$remSize}rem; } @mixin fontSize($size) { font-size: calculateRem($size); } @mixin lineHeight($size) { line-height: calculateRem($size); } This however is not responsive in the way that the font size adjusts to the viewport. I like to have control over my font sizes so I hard code - for example headlines - fitting the four big breakpoints: large desktop, desktop, tablet, mobile. Yes it is a bit of work... For big, prominent title headlines (over background images for example) I often use vw or vh as font height. That makes the fontsize fluid but it can give you some weird "inbetween" values. So you have also have to make small adjustments based on breakpoints to make sure it looks good everywhere. This however looks promising. It seems to combine REM and VW. I recently upgraded to Bootstrap 5 and totally overlooked this new feature (by the way I am still thinking about switching to UIKit3 but for other reasons but this is another point for bootstrap).
  5. Have not installed it yet - but this module looks promising at first sight. I am looking for a super-simple solution for selling vouchers on sites. A big shop module like Padloper would be way to oversized for this task.
  6. I am using the latest fork here. Works perfect for me. https://github.com/matjazpotocnik/ProcessWire-AIOM-All-In-One-Minify
  7. Well, what is "normal" nowadays? It totally depends on the amount of static pages, the features - and the design (+ custom desktop/tablet/mobile adaptations) Do you start from scratch with a blank processwire installation or did you build yourself a custom development project with a default stylesheet and all kinds of modules, fields and templates predefined (tools you would need in every project) so you can just grab what you need and just alter the layout and data you render? Last but not least it also depends on your skill level as a developer of course. So based on all this I guess someone could either spend 10 or 100+ hours on a project.
  8. This is a nice little time saver! By the way I find it hilarious that you get fined for not hosting the fonts on your own server. I always thought that this was the whole purpose of google fonts.
  9. I am using AIOM+ for years now and it works really well! The syntax for minifying styles with this module looks like this: <link rel="stylesheet" type="text/css" href="<?php echo AIOM::CSS($stylesheets); ?>"/> $stylesheets is an array which looks like this. I now there is only one file here so it's not necessary to use an array for that πŸ˜‰ $stylesheets = array( 'styles/styles.css' ); I have not tried it yet but it should be possible to insert the RockFrontend AssetsArrray here (?)
  10. I am starting to dive into the possibilites of RockFrontend. I have a very simple question that came to my mind right at the beginning. To render markup you offer the new $rockfrontend->render() function. What is the advantage of this function over the default $file->render() function of processwire? Basically I can change all $file->render() code parts into $rockfrontend->render() and everything still works. But I guess there is a secret behind this πŸ™‚ this new render function supports the integration of Latte PHP templates, is this the main advantage? If I am allowed add something to the wishlist: When adding assets via RockFrontend it would be awesome if you could offer a minify option for CSS/JS files. (for example when debugging is disabled).
  11. Interesting. When excluding the sessions folder it stops from refreshing continuously. But when I make a change to a php file for example the page start reloading again and again. Until I exclude the templates folder which is not what I want of course.
  12. Mac OS 11.2.3. Browser is Chrome 104.0.5112.79. I am using MAMP Pro 6.6 There is something going on in the dev tools. I've got the feeling that something keeps triggering the autorefresh. I excluded all scripts and CSS but it keeps on refreshing.
  13. You can build great websites with everything that comes with processwire. If you need something more special there are almost always free modules available. I built all of my websites without any pro modules. Until now.... I thought I might give it a try πŸ™‚ the repeater matrix pro module is a really sophisticated way to add/manage content on pages. Creating forms can be a bit tricky though - there is no form editor or whatsoever included so I would advice you to give Pro Forms a try. Otherwise you would have to hard-code the forms or use the processwire API to create them. As long as there is only one simple contact form on your page I would try to code it myself in that case.
  14. @bernhard So far I want to make use of the livereload feature only. I installed the module and set the reloading in my config file: $config->livereload = 1; But now it keeps reloading the page in intervals of 1 second continuously even when there are no changes made. Can you explain why this is the case?
  15. Theres so much going on in this one, great work... hard to keep up track πŸ™‚
  16. Is there a way to set page fields to "hidden" or "readonly" in the backend? Just curious... However. my personal solution for this was to write a cronjob that runs on the 1st day of every month and simply sets the status of the previous month page to "hidden". In that case those months won't show up in the sub navigation. The events will later be updated on a 3-month basis, so I think it's okay to let the user create those "month" pages and populate them with events manually.
  17. Well, yes and no πŸ™‚ I love (!) Bernhards work but I just stick to my solution for now. If you take a closer look at the page structure in the backend here, I think no one can't deny that this is easier to maintain than having all event pages underneath a single parent. I am thinking about the client who has to do the content work at the end... From a technical perspective this is also convenient, because you can view all events of a specific month directly via URL, like www.mysite.com/programm/2022/august/ Otherwise I would have to make use of URL segments to make the filtering happen.
  18. IMHO creating the events on a "month-page-basis" makes the organization much easier. The client has about 120 events per year and some of them are recurring events on a weekly basis. So having all those events listed under a single parent would be too much. After two years there would be 240 events, because once an event as taken place the page is not deleted. I've got the filtering for upcoming events, events in a single month or past events set up and everything works great so far. For example the upcoming event selector looks like this (the event pages itself do have a date field of course). $events = $pages->find("template=event, date_event>=today, sort=date_event, limit=6"); The month subnavigation is the only thing that is missing so far. Right now I am thinking of putting a month-page to "hidden" to make it not show up once the month is over. In that case it would not show up at all in the subnavigation.
  19. I am working on a project wich includes a simple event list. In the backend the structure looks like this. The user can then create event pages under the corresponding month page: In the frontend I want to display a subnavigation of the upcoming events by month. Starting from the current month! So in this case starting at "August" to September, October, etc. This "month pages" only include a title field, to timestamp or whatever. I need a selector that filters the children of the year starting by an index - the index of the current month. I know that in the example above, August would have an index of 4 (because January - March are missing). But for now we can just ignore that. This selector here looks correct to me but it only displays "August" not the following months after that (September, October, and so on). // get all months starting at the current month $months = $pages->get("template=event-year, title=$year")->children("index>=4");
  20. I think its perfectly fine to put those graphics inside an assets folder. I always hard-code things that usually never change during the lifespan of a website. For example footer address information, logos, social media icons, etc.
  21. I kbow it has not directly to do with the topic but thanks to your code examples I finally stumbled upon a solution to include php files with arguments! Like this: <? wireRenderFile('inc/project-data.php', ['data' => $page->project_data]); ?> I've been using Processwire for years and always looked for a method like that. Crazy... I used PHP functions in that case - until now. It's time to update my projects πŸ™‚
  22. After a long time of concept work and a (not) so long time of development I launched a new website: https://www.marvin-wieckhorst.de Beware: German Language πŸ™‚ The whole site consists of 5 pages only. But the pages on this one are huge and full of different design elements. I'm trying to split it into interesting screenshots here but I think it's best if you visit the site and have a look at it by yourself. Here are some pictures, the tech talk section is below. Introduction with large images and catchy headlines on each page: Different teaser elements: Rocket animation with some vector images: Custom build ajax forms for the booking of the different training packages. These forms are presented in a modal. These forms are feeded directly from the backend via my custom form solution: Tech Talk: Well first a bit of design talk. Concept and design was the greater challenge than the later development. The customer had very clear expectations of what the different design elements should look like. So the real challenge was to get all the ideas right and put into a working design that does not look too overwhelming and convoluted in the end. PLUS it had to be responsive of course. Fitting giant design elements full of content that look awesome on a 2560 x 1440 display are difficult to handle on an iPphone display. Used Modules: I always try to use at few modules as possible. No pro fields were used on this one. Everything you see was build with the tools that Processwire offers out-of-the box or which is are in the core πŸ˜‰ However some modules are just a must have in my opinion and there is what I used (and use in all my other projects aswell): - AOIM+ for bundling and compressing of JS+CSS - WireMail SMTP for all mail work - SEOMaestro - PageImageSource for WEBP image support - TracyDebugger For the frontend work I am using good ol' Bootstrap 4. Basically because of the excellent grid system / frontend forms and form validation / modals. Most else Bootstrap offers is not included in my build. All other frontend elements are custom. Plugins i used: - aos.js for all animations - lazysizes.js - owl carousel - masonry.js - niceselect for the custom dropdown menus inside the modal form There is also a video player included the the videos for this site are not produced yet. All together I get a really nice lighthouse score for the site: That's it for now. Have a nice week!
  23. I like the idea of having a cronjob for fetching data. I also used this technique in an actual project (that I will introduce here when its finished!) but there was no external API involved.
  24. Fascinating! Can you explain how you approached the API Data fetchig? Do you use a simple Ajax Request when filtering items or are you actually creating pages, populated with data and use those instead? I am always interested in methods to "feed" processwire from outside nowadays.
  25. I might get into the same "issue" in a project I am working on. If I find a solution I will inform you here πŸ™‚
  • Create New...