
Page Hit Counter – Simple Page View Tracking
By
David Karich, in Modules/Plugins
-
Recently Browsing 0 members
No registered users viewing this page.
-
Similar Content
-
By Atlasfreeman
Hi!
I want to make a small site, a one page site.
And i have this idea about doing 2 to 3 diffrent template that i can load into the index / home page.
I want to do this with an array so that i can keep creating more topics (with the template) id needed.
<?php include('./head.inc'); // include header markup ?> <?php $children = $page->get('template=onecolmn|twocolumn, sort=sort'); foreach($children as $child) { include($child); } ?> <?php include('./foot.inc'); // include footer markup ?>
As you can see i have to template wish i want to control from the backend.
I know include does not work this way, put what is my other option to make an array that loads the whole page on an other pages.
-
By Liam88
Hi All,
New user over at Processwire and have been rebuilding my site based on this CMS.
I have been able to find so many answers through Google but I'm a little stuck on this one.
I have my services page -> services categories -> category children.
An example of those would be - domain -> services -> ppc -> management
I also have a set of tags which have different names - services-tag -> grow-your-traffic
Under these tags I would have multiple links to pages such as ppc, seo, social media and so on.
A second example would be - services-tag -> convert-your-traffic
Under here i would have multiple links to pages such as CRO
Now the set of tags are not visible on-site as they are only created to give overview content to the main services categories.
Using the categories and the tags I am looking to produce a layout such as (i have also attached an image as an example:
Tag_1 headline
Pull all services categories linking to Tag_1
Tag_1 snippet
Tag_2 headline
Pull all services categories linking to Tag_2
Tag_2 snippet
So far I have this snippet which is pulling in the tag content but unable to get the posts to show under each of the tags.
If i change the if and statement to "tags" instead of "tag" then all posts show under all tags. Where as i want it to show only the posts which are linked to that tag.
<?php namespace ProcessWire; $tags = $pages->get("/categories-services/")->children(); // Gets the tags $posts = $pages->get("/services/")->children(); // Gets the services categories $link = $tags->ref_6; // Gets the tags and services categories link - under here you have pages_id (services cat id) and data (tags id) // Tag header and summary foreach($tags as $tag) { // This breaks down the tags into sections echo '<section id="services"> <div class="container"> <div class="row"> <h2 class="heading-1"><span>'. $tag->headline.'</span></h2> <p class="mb-5">'. $tag->summary.'</p> </div> <div class="row justify-content-around services">'; // Main services categories that link to the above tags if ($posts->id === $link->pages_id && $tag->id === $link->data){ foreach($posts as $service){ // This pulls in the services categories under the tag header. echo '<div class="card flex-card" id=""> <div class="card-img"> <a href="/'. $service->name.'" title="'. $service->name .'"> <img class="card-img-top" src="../assets/files/'. $service->id.'/'. $service->img_1.'" alt="'. $service->img_1.'" title="'. $service->img_1.'"></a> </div> <div class="card-body"> <h3 class="card-title">'. $service->headline.'</h3> <p class="card-text">'. $service->summary .'</p> <div class="card-action"> <a href="" title="'. $service->name .'" role="link" class="link">View service<span></span></a> </div> </div> </div> '; } } // Grey snippet text echo '</div> </div> </section> <div class="snip-2 light-grey"> <div class="container"> <div class="row text-center">'. $tag->get('grey') .'</div> </div> </div>'; } ?> I appreciate this is a long post but i'm trying to be clear as I appreciate everyone's time.
Any insight into where I am going wrong is greatly appreciated.
Liam
-
By Harmen
I want to add a few pages to an AsmSelect Page field inside a repeater using the following code:
$trialsPage = wire("pages")->get(28422); // Get the page $trialsPage->of(false); $newTrial = $ordersPage->trial_repeater_orders->getNewItem(); // Add item to repeater foreach ($selectedProducts as $selectedProduct){ $productPage = $pages->get("template=product, reference=$selectedProduct"); $newTrial->trial_selected_products->add($productPage); } $newTrial->save(); $trialsPage->save(); However, when I check the page where the field is located it doesn't have the new values as expected. The selected pages exist, the field is in the right location, made sure that the output formatting is turned off: $page->of(false); But it still doesn't work with a variable. No matter what I try, it doesn't work.
It only works when I replace $selectedProduct with a hardcoded string. Am I doing something wrong here?
-
By louisstephens
So I have a form, once completed, will create new pages. All in all, this is eazy-peezy for me now. I guess I need a bit of guidance on how to actually structure the rest of my code. I thought I could just write a function (_func.php) and pass the fields to the function and let it do its' thing. However, I am kinda hitting a road block when I do it this way.
I currently am passing first name, last name, city, state (options field), and making pages based on the first/last names. I guess where I run into some issues is I am trying to check to see if the "page" already exists, and if it does, throw out an error:
In the home template:
if(isset( $_POST['submit'])) { $firstName =Trim (stripslashes($_POST['firstname'])); $lastName = Trim(stripslashes($_POST['lastname'])); $fullName = $firstName . $lastName; $city = Trim(stripslashes($_POST['city'])); $state = Trim(stripslashes($_POST['state'])); $lowerCaseName = strtolower($fullName); $people = $pages->find("template=person"); foreach ($people as $person) { $checkFirstName = $person->first_name; $checkLastName = $person->last_name; $checkFullName = $checkFirstName . $checkLastName; if ($checkFullName === $lowerCaseName) { echo "<p>" . "This person has already created a page. Please choose a different name." . "</p>"; } else { echo "hey"; processNewPerson(need_to_pass_person_details_to_function); } } // end foreach In _func.php:
function processNewPerson($list) { $u = new Page(); $u->template = "person"; $u->parent = wire('pages')->get("/people/"); $u->title = ; $u->first_name = ; $u->last_name = ; $u->state = ; $u->city = ; $u->save(); $u->setOutputFormatting(false); } I am a little unsure of how to actually pass all the information to the template, as well as if this is even the best approach to do this. Would it make more sense to do this in a class, or keep it the way it is?
-
By quickjeff
Hi Guys, I have seen some other threads that talk about this but nothing recent nor in line with what I need.
I have basically created a page in which I am tracking the number of views. I update the counter which is tied to a field I added to the page's template that I am tracking. The field is hidden from the website admin and only used for this data.
However, now I need to track it on a daily basis. I am thinking of keeping track of all time view total for 30 days and perhaps saving that and allowing the user to see the page views of last 7 days, each day as a number and then 30 days of data. This way if I want to build in reporting functionality I can.
What I need help with adding a date to the page_views field but also, knowing how many page_views for today, yesterday, day before etc.
Here is what I have so far and its working. Now I need to associate a date with every day. NOT every update of the page_views field.
if (!$user->hasRole('superuser')) { $page->page_views += 1; $page->of(false); $page->save('page_views'); $page->of(true); } echo $page->page_views; Any guidance, help, suggestions is absolutely appreciated.
Thanks!!!!
-