Posted in core
7724
1:04 am, February 19, 2022
 

generate view statistics widget in php class extend

How i generate the Week, Month and Year view statistics widget for this site. 

Views Widget Function

This generates the widget based on the views data.

PHP

// views widget
  /*
  using fields_array for incoming variables
  this->fields_array = array(); // reset the array each time.
  this->fields_array["linked_class"] = $linked_class;
  this->fields_array["linked_uid"] = $linked_uid;
  generates a widget showing hits today, this week, month and year.
  will need multiple functions to calculate these, maybe break it up and reuse them.
  */
  public function views_widget($linked_class,$linked_uid) {

    // views this week
    $this->fields_array = array(); // reset the array each time.
    $this->fields_array["linked_class"] = $linked_class;
    $this->fields_array["linked_uid"] = $linked_uid;
    // $this->fields_array["week_num"] = $week_num; or
    $this->fields_array["week_num"] = date("W");

    $views_week_single = $this->views_week_single();

    $views_widget_template = new template("views-widget-table.html");

    $views_widget_template->set("views_week_single", $views_week_single);

    // get the monthly views
    $this->fields_array["month_num"] = date('m');
    $views_month_single = $this->views_month_single();
    $views_widget_template->set("views_month_single", $views_month_single);

    // get the yearly views
    $this->fields_array["year_num"] = date('y');
    $views_year_single = $this->views_year_single();
    $views_widget_template->set("views_year_single", $views_year_single);

    return $views_widget_template->output();


  }

 

Widget Template File

This is the html template used for the widget layout. 

PHP

<style>
  .view-title {
      text-transform: uppercase;
      font-weight: bold;
      font-size: 12px;
      color: #62b174;
      margin-bottom: 5px;
      padding-bottom: 5px;
      border-bottom: 1px solid #3a3a3a;
  }
  .view-number {
      text-transform: uppercase;
      font-weight: bold;
      font-size: 32px;
      color: #FFF;
  }
</style>
<div class='card mb-3 view-stats'>
  <h5 class='card-header'>View Statistics</h5>
  <div class='card-body'>
    <div class='row'>
        <div class='col col-lg-4'>
          <div class='view-title'>
            This Week
          </div>
          <div class='view-number'>
            [@views_week_single]
          </div>
        </div>
        <div class='col col-lg-4'>
          <div class='view-title'>
            This Month
          </div>
          <div class='view-number'>
            [@views_month_single]
          </div>
        </div>
        <div class='col col-lg-4'>
          <div class='view-title'>
            This Year
          </div>
          <div class='view-number'>
            [@views_year_single]
          </div>
        </div>
    </div>
  </div>
</div>

Adding the widget to the page content

Add the widget to page content, this is the last bit. 

PHP

// generate a views widget
	$page_content .= $views_class->views_widget($linked_class = $p2,$linked_uid = $p3);

..

View Statistics
This Week
211
This Month
763
This Year
2477

No Items Found.

Add Comment
Type in a Nick Name here
 
Search Code
Search Code by entering your search text above.
Welcome

This is my test area for webdev. I keep a collection of code here, mostly for my reference. Also if i find a good link, i usually add it here and then forget about it. more...

Subscribe to weekly updates about things i have added to the site or thought interesting during the last week.

You could also follow me on twitter or not... does anyone even use twitter anymore?

If you found something useful or like my work, you can buy me a coffee here. Mmm Coffee. ☕

❤️👩‍💻🎮

🪦 2000 - 16 Oct 2022 - Boots
Random Quote
“We ought to take outdoor walks in order that the mind may be strengthened and refreshed by the open air and much breathing.".
Seneca
Random CSS Property

system

The system descriptor specifies the algorithm to be used for converting the integer value of a counter to a string representation. It is used in a @counter-style to define the behavior of the defined style.
system (@counter-style) css reference