![](http://processwire-forums.s3.us-west-2.amazonaws.com/monthly_2018_02/masthead-1.png.d11703dc2aaab66a72fc897f9b0ad497.png)
joer80
Members-
Posts
363 -
Joined
-
Last visited
Everything posted by joer80
-
I just noticed that feature earlier today and enabled it! Whats cool also is I can insert a grid inside my accordion so I can do columns inside my accordions! Just tested it out.
-
I have decided to clean this up a bit. It seems adding a content page under a page just to separate it from the detail pages is not optimal or necessary. I have decided on another way to flag what the child items are. I now use the "Page" template for pages that have content rows as children, and every other page type that can be added under Admin Home is made to have detail pages as children. ie. Services, Products, Basic Pages, etc. I show this with the page template using the globe, and the other master types using a dark circle. I also added a "Basic Pages" master/detail set that allowed me to trim up my root page list and move things like Terms and conditions and Privacy Policy under there as detail pages. This also keeps me from building a section just to add a text item to it. I just add new and type content. The basic page template has the inner page heading, and a section and text row built in so it saves time adding these info pages. So you can add a "Page", and still build it out, and also select a page layout of "Inner Page" to give you the automatic page heading, or blank gives you a clean slate, or you can work with an existing page type like "Basic Page" or "Service", or add a new template with custom fields and work with the same master and detail format. Just tell it to use page.php as the template, give it some fields, and make sure it selects a page layout.
-
Here is how the map row looks. Its a regular grid item with the collapse gutter option set and the first child cell set to 1/3 on large screens. I could do the map side as a map.php template though instead of a php snippet even though its just 5-10 lines of code. I did a contact_form.php for the basic form I used on the contact page. It's easy to use checkboxes to know what fields to make with you add it to the page. Address, phone and such is still pulled from hanna codes so if you don't want fax you just leave it blank. My goal is to be able to import the whole row from an external library of some sort and not have to build them.
-
I think I am going to add a lazy cron style auto update module for important security updates, and maybe hit a manual update when you are backed up for feature ones. I can launch this as version 1.0 and check an endpoint for the most recent version from time to time to let the user know if there is an update with new features. If I add a new drop-down/option list to the section.php template in 1.01, it would make the database changes and replace the section.php file to read them. Ryan is also doing a great job with page import and export, so you could go to a website and export the home page and all of its children, and import it into a new website. You can already drag a row from one page to another and carry all of the children items with it. Since the code snippet template has fields for its own css, js, images, php code and html code, you should be about to export whole features by importing one page into your sitewide folder or a page layout folder that target your head, bottom, and page at the same time. I probably need to put a row gallery up somewhere also so I can upload row designs and not just mark them as inactive. Keep the websites clean but browse for ideas and pull them in. Just have to standardize things like the hanna tags so the address info and such comes in right for a map row.
-
Oh cool! Are you a full-time programmer? On the detail page layouts, I didn't want to be required to select a page layout every time I add a child page so I made that drop down. (For blog posts and services and products, etc.) . So if I set a detail page layout on a page, any children will use that even if they do not set one. My page.php template says "if the current page I am showing doesn't have a page layout selected, check its parent to see if there is a detail page layout I can use". So if I add a blog post (blog_post.php), or a new service page, those do not even have to have a drop down for selecting the page layout as part of their template fields. I can also set the blog template only to allow blog post children, so it saves the whole step of selecting a page template or layout at all. If I want, I can allow content children also, but its not really necessary since you can add items to the page layout. blog and blog_post or services and service would still use the page.php template though. They are just templates to get the unique fields. After I clean it up some, I will see about making a site profile.
-
I ended up using mono snap. Worked well! It added an icon to my top bar on my mac and I can do a new recording and start and pause, and it gives me the option to add a small screen to the bottom for my web cam. I can also do full screen or draw a box to just do part of the screen.
-
It is a little messy since I have not set the template families perfectly yet, and normalized the template name case, but this should give you an idea of how it flows so far. I add a banner slide to the homepage, add a new basic page, and add a few sections to that basic page. The basic page layout is what adds the inner page title row. That's the only item I have added to that since the nav is marked sitewide. I then add the test content to the page itself under a content item which allows the uikit items. I could have added it to the page layout, but it would have gone to everything marked as a basic page.
-
The nav_link template and the button template has options for selecting a page so the link never breaks, a page section, which is just a child row of a page which is typically a section, or a url for external links. I also built in code that adds smooth scrolling if you did a section link and you happen to be on the same page already, for one page websites. I made this website today as an example that shows that part and an alternate header look. I also made the external url field used on the button template support hanna codes, so I can use things like [[directions]] or tel:[[phone]] for the button link value. The map row is just a uikit grid with the collapse option set in the gutter drop down. https://www.hcederm.com/
-
Sure. I will try to do a screen recording of building a page with a few rows attached. Do you know of a free web based one I can use? With the concept of having a page that either has detail pages as children or design rows as children, I didn't want to have pages under pages. The Navigation page holds all of my navbar container rows, which select the html tag body->header and dump inside that. The children of navbar container can be a nav_logo, nav_bar, or nav_item. (For buttons) . They have alignment and visibility options. Nav_bar can have nav_links or nav_grid children for mega menus, or you can fill out the selector text box to add a group of pages that is always accurate.
-
The role of my page.php page is to do this: Get the themes page and set it as a variable for later use. (Anything can access this page to get the asset timestamp, active theme, etc.) Set a variable for the selected page layout of the current page, so I know what uikit elements we are adding from that. If there is not one on the current page, check the parent for a detail page layout. Get a list of code snippets that target html tags for this page, sorted by priority. (If they match the page layout, the page, or are sitewide, implement them by adding them to the snippet array.) By implement, if its a code snippet type, it outputs the html or php using output buffer and adds to the snippet array. If its not a code snippet, it is a uikit item and I will start the output buffer also and include the template file directly. (I also set a variable for that page to use inside the template before I include it. (The $page variable gets saved as the template name.) So if its a section template, I save the $page data as a $section variable. In my "section" template, I can access itself with $section, or the root page it is on with $page. Inside the section template I can loop through $section children also, setting the children as $cell so the cell.php page can access itself with $cell->x After the snippet array is built using code snippets and uikit page templates, I loop through the /html/ page and its children. I pass that page to a render function, and it loops through the html tags listed and puts the snippets where they belong, outputting the result to the page. This is a delayed outputting format that lets a snippet tweak other snippets if needed, since they are stored in an array before output, and any snippet can target various parts of the page. ie. The last snippet loaded can still add to the head section.
-
Any time I have css, there are 3 main places I can put it. There is a "Themes" template that acts as a parent to all themes, and I have the Theme templates under that. The third is the page itself, which is usually a code snippet or a page layout or page. The Themes page controls the selected/active theme and holds styles that apply to every theme in its CSS box. The children are styles that only apply to themselves. So you could do a red theme, blue theme, etc. So in that case the navbar css that is not related to color goes to the parent, and all color related css would go to the child. That way you can change the active child and swap colors, but the child is nothing but color data so it is very easy to edit. They all get merged into one file on page save. The third is all page layouts, pages and snippets have css boxes as well, so if you want to add css to just one row, or one page, or one feature, you can do that without adding clutter/bloat to your theme. So if you add a sitewide snippet of "Thin Top Bar", you can add top bar css to itself so it is portable between websites. You move that one page and no theme changes are necessary on the new website. In fact, every code snippet has the fields for images, files, css, js, php, and html, so the whole feature should be portable between websites without touching the theme unless you want to. The module has 2 hooks. One hooks before page save to update the current page css and the other hooks after page save and merges all pages that have css boxes.
-
There are a few ways to do this. I actually have 2 page layouts per page. One for the page itself, and one for any child/detail pages it has under it. You could just force a page layout and add content there and never read children as content items/rows. Or what I did this time, which let me do both, was to allow people to add a detail page or a /content/ child item to a page. Anything put in a /content/ child is uikit stuff for that page only. If you don't add a content child, the only option is adding them to the page layout selected. The great thing about detail pages is you can still have that "fill out a form" experience when adding content, and still work as a page builder using the page layout page or a child content page as needed for one off things. One thing I have not looked into is having a page.php for one and page2.php for another. (To control what the children are used for.)
-
Have you used any of the open source options that would be a good alternative?
-
How the banner pages work: Add a slideshow to a page, its children are slides, and those can have layers. So I set the transition on the slideshow, the background and content animation type on the slide, and the content on a child layer. (Image, text, links etc.)
-
The HTML Snippet Targets idea I borrowed from the markup regions idea. I wanted to be able for any sitewide or page layout snippet to target any major html tag. One sitewide snippet may target inside bottom of head, and another after body/header/footer tag.
-
The staff and old website were already using clickdesk.
-
I don't have any templates locked down, just one root admin user and one programer on the project. Graphics designers can go in and swap banners and such so it would probably be good to lock down the php related page snippet templates.
-
New website design for HealthCARE Express. Used UIkit3 for the front end look. Jquery Store locator for the locations page. PW Modules used: Hanna code, google map marker, Inputfield Ace Extended, MarkInPageTree, Video embed for YouTube/Vimeo, and an in house asset minification module. Backend is pretty unique. Basically, I use the processwire templates for UIKit items instead of pages. ie. card.php, container.php, section.php. navbar.php, grid.php, slideshow.php. I also add some extra things like page.php, inner_page_heading.php, image.php, page_snippet.php, text.php. (Page snippet is if I want to run php.) Most of the root pages in the admin page tree use the page.php template. Their children are either detail pages or layout rows for that page. I also have a blog.php that uses the page.php file, just because that lets me force the children to be blog posts. The page and blog templates have fields like meta page title, meta page description, selected page layout, css, js, images, files. All markup is added through admin as well through things like the selected page layout. I have one page in my page tree for page layouts and I add children for the markup. ie. I can add a "Service" page layout to the backend, and add a "page heading" child, an intro "section" child, a service "grid" child, etc. You can check out screenshots. It basically gives me a page builder! The children of the grid page are forced to be cells, and have gui to select the columns and such. I have a css field and a js field attached to almost everything. On page save, if that page has one, it pulls them all and merges them all into one css file and saves it to the server with a timestamp as filename. That way all php, css, and js code is done through backend.
- 51 replies
-
- 14
-
-
This is still an issue.
-
I wonder if the slowdown you saw was just your servers mysql config file needing tweaks to increase ram it can use for sorting. Maybe you can post your my.ini file? Also, one thing pw core is not good at I have found, is getting a unique list of things. ie. Find all distinct Person names from template person, but without loading them all into memory and then looping through them all to merge them down. Is it easy to do a distinct or group by with this and set the results as a processwire page array? If so, this is a lifesafer in some situations.
-
My EFS setup is no longer running. I decided to take a more traditional approach that lets me login via ssh and make direct changes to the server. Sorry I could not be of more assistance!
-
If I do this: <link pw-append="html-head" rel="stylesheet" href="style.css" /> <link pw-append="html-head" rel="stylesheet" href="style2.css" /> It prints it on the same line in my source code. <link pw-append="html-head" rel="stylesheet" href="style.css" /><link pw-append="html-head" rel="stylesheet" href="style.css" /> Is it possible to insert a new line after the append? Thanks!
-
Update. It seems to go back to expected behavior if in the template code, you place the pw-append before the id but not after. The order matters. ie. This works: <div pw-append='main' id='main-content'> This does not: <div id='main-content' pw-append='main'>
-
I also noticed if I remove the id tags off the code in the template file, it returns to the correct order. What the id tags are named does not seem to effect the order.
-
I am working with the markup regions method, and I have noticed if I do a few pw-append groups in the same file, targeting the same id, they do not go in the same order as they are found in the file. Is that normal? Here is an example: <div id="main"></div> . (located in _main.php) Code in template file: <div id='1' pw-append='main'>First</div> <div id='2' pw-append='main'>Second</div> <div id='3' pw-append='main'>Third</div> May show on page as: <div id="main"> <div id='2'>Second</div> <div id='1'>First</div> <div id='3'>Third</div> </div> Is that expected? Thanks!