Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

150 Excellent

About joer80

  • Rank
    Sr. Member

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location
    Texarkana, TX

Recent Profile Visitors

3,480 profile views
  1. I dont think I have it down yet. I really think a page builder needs to live update while you change fields to be competitive with things like DIVI and Beaverbuilder and Elementor. This is what I am working on with vue. I am just looping through all fields attached to the page and making vue form fields that have 2 way databinding. So when you type new text in, it changes as you type. Or if you hit center text, it centers it instantly. I am using the REST API plugin to push the page data back to the database when you hit save. I plan on releasing the site profile to the community when I am done. It should be better than the above wordpress solutions as they are very hack solutions. You can not, for example, add any element inside a tab module or an accordian. You can only type manual code into their rich text. With mine, I can add a grid with columns or really anything inside anything.
  2. If you are concerned about the total number of fields in the profile, any template that uses a text align field can use the same text align field. ie. Text, blurb, sections, etc. I think it is a necessary add to have a page builder. If you are concerned about it slowing the page load down, it doesn't seem to. I don't have caching enabled and it is snappy. Turning template caching on removes the issue even if there is one. I could get by with just one text align field, but I like having one for small screens and one for larger screens. That way I can make text center on mobile when the column stacks, but left align on desktops when they are side by side, without writing code. I think it is worth it. I still have a website that runs on a database less than 1 mb. At least until I import all of their blog posts. You could run the whole thing in ram.
  3. No, I create generic fields. Things like single_line_text1, single_line_text2, checkbox1, checkbox2, richtext1, richtext2. Then any page that needs one just pulls one in. The tabs I use are usually Content, Design, and Advanced. Not many fields at all.
  4. I had an edit button that edits the page you are on, but I am playing with just making it highlight all of the sections on the page and make an edit button for that section. See this video. I don't like how it doesnt give you live preview though, so I am playing with vue to do this.
  5. I had an edit button that edits the page you are on, but I am playing with just making it highlight all of the sections on the page and make an edit button for that section. See this video. I dont like how it doesnt give you live preview though, so I am playing with vue to do this.
  6. For small websites, I have used top-level pages as pages, and use child pages as content rows. For larger ones I use the normal pages as pages that can have child pages, and make a Settings page that holds sitewide settings, with theme children, and layouts as children of the theme. I can assign a design row or php code snippet to a page, template, or make it sitewide. You can see some details on my forum post.
  7. How much time does padloper save vs just starting from the stripe examples?
  8. I run a cpanel server in AWS on their cpanel cloudlinux image. I turn on the nightly backup option in cpanel that stores versioned backups for 7 days. If a client gets hacked, I can roll back 7 days with only one versioned backup set. I have the default ssd for the websites and attached a regular magnetic hard drive for cheaper backup storage for the nightly backups. That config doesnt support offsite s3 upload, so I tell aws to do a nightly snapshot of my disks and keep them for 5 days. This also saves me bandwith since those don't count against you. Versioned backups takes 15 min compared to 4 hours or more if you copy every file. cpanel does auto ssl and has a file browser that allows you to upload a zip file of the website, and decompress by right clicking it. Pretty handy. I do not like using cheap client hosting as it is never setup well. My php settings as far as ram and timeout scripts can use are better. I also have a large mysql cache.
  9. Another advantage of storing the template code in the database is you can attach all php/html, js, css, and images/files, into the one page so it is completely portable. So you could import a component page into your theme folder, and everything that is needed is there. And to uninstall you just delete the one page.
  10. I have one selector that pulls all children of the different layout type pages in one query using "or groups", and I just loop through the results. Each item will have itself for the data side but the items template file is not really used for logic or html. The magic is I load a component file for the logic and html bones. So when a child section is loaded, say an intro section, the variable is saved as $section, and I check for the existence of the section component. If there I include it, if not I make it and include it. ie. $filename = '../assets/cache/PHP/component_' . $snippet->template . '.php'; If not there you can get that templates component file and make the file like this: template=component,name=' . $snippet->template. When you edit the component via ace php text editor, you clear the cache/php/ folder. That way no extra database work is needed, it just includes the file with the proper path like processwire would a normal template file. The difference is instead of all of my template files being in processwire folder and needing to be uploaded, I can sort them into folders like uikit or template, and organize them and version control them and never upload. An example of a theme component may be a page heading, php snippet, footer, header, blurbs, etc. This also has the advantage of almost never needing to sync code changes between servers in a load balanced environment. All php code is in the database and saved into cached files that can be cleared or rebuilt at any time if a new instance spins up. I do need to sync assets like uploaded files and images though. So the section template has the fields, but the section component has the logic and html.
  11. I have background color, gradient and background image groups on design templates like sections. (This website used for page headings and footers also.) The entire website was designed within processwire. I only have one physical template file and everything runs through that. (It pulls the sitewide, template, and page rows designed from backend. Supports parent and child themes.)
  12. Frontend built in UIkit 3. Backend is a modified version of what I did for HealthCARE Express. I am using the top level pages to hold information only, so no design rows as children. Children are always sub pages. The page builder area is under a settings page that has children for things like the navigation menus, and themes. (The themes hold the page layouts, color schemes and uikit and theme components.) Here is a video showing adding an intro section to a basic page. (Basic page has an inner page heading row already added.) . Instead of adding a text item, I could have added a code item and echoed text tied to the basic page. I may also make a hook for auto creating the layout page to save that step, and add a link on the front end for adding new rows without needing to visit the backend settings area. I put menus under settings so you can design the top menus, main menu, and footer column menus from one spot, and every widget that reads them gets set at one time. You can also control if they open in the same or new windows, and add off site links this way. I just feel like depending on only hidden and non hidden root pages is not enough. Also, an incoming theme can default to reading a menu named a certain way. Menus are primarily set via selector, so you do not need to edit it them every time you add a service for example, like if you wanted to have a service menu in wordpress. So if I do a page template for a Service, there can still be a rich text box and image field for that service attached to the page template, so there is no way for someone to mess up the design just to edit, and to reduce confusion, but if you want to use the page builder to add rows, you can dig into that settings page and edit the rows for the page. I also have front end editing turned on so you can double click almost anything to edit, and added a small drop down at the top right of the page that loops through all rows on your page so you have a shortcut to edit just that row from the backend. The page builder rows are matched by path. ie. /about/ would match /settings/themes/selectedtheme/bypage/about/ and might match /settings/themes/selectedtheme/bytemplate/basic-page/ also, if the about page was a basic page template. Everything will match the sitewide folder. This type of thing lets you do things like add a call to action on a group of pages by adding that row to the template instead of the page. Or add a css file or javascript file to a group or sitewide. The layouts template holds the layout types, like per page or per template, and layout types can have children like sections, containers, grids, cells, images, text, accordions, php or html code, etc. I have also played with doing a page group layout type so you can group a few pages together and add a row or code snippet to those as well. This output method does not require php eval. I actually just start an output buffer and include. That gets added to a snippet array variable that I can sort and edit until the very end when it is time to output. The first level in the array is 8 slots that works as placeholders, and then each of those 8 slots holds the rows or code snippets for that placeholder. ie. before html, head, body-top, body-header, body-main, body-footer, body-bottom, after html are the default placements code can target. The second level also has weights. In addition to targeting a placeholder, a section will also have a priority drop down of highest, high, medium, low, lowest. That way a bottom call to action can be tied to the body-main spot as low priority, and no matter if it is added to the template, page group, page or sitewide, it will always sink to the bottom. Plugins used: Inputfield Ace Extended, MarkInPageTree, Breadcrumb Dropdowns, Prev/Next Tabs (for switch from row to row), Hanna Code The page builder has almost all of UIkit added so you can add a grid to a section and set the child width by drop downs, or you can use drop downs to set them on the child cell pages individually. The cell pages would allow you to add heading, text, images, accordions, etc. If you add a text item to a cell for example, the first tab is content for the rich text editor, and the second tab is design for things like text alignment per device. (So you can say center on mobile or left align on desktop without writing any code!) . The advanced tab holds an id over ride, extra classes box, and a javascript and css box that will minify on page save and be included into your website. This allows any item to add advanced css or js in a portable way. I will attach some screenshots! https://www.medpracticesuccess.com/
  13. Does anyone know if support for export and Import of "Select Options" fields is coming soon? Or if it is hard to do? This is currently the most time consuming thing for me needing to pull templates from one website to another. Needing to repopulate them all manually. Thanks!
  14. does using the connect page fields module like that make it so deleting a user removes the other page also?
  15. That is very interesting looking. I will look into this... I have a feeling the issue with adding children is because the user template is under the admin tree and it wants to use it like a process. Maybe this would let me pull it out of the admin tree? Not sure yet.
  • Create New...