Posted in core
7711
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
198
This Month
750
This Year
2464

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
The mind must be given relaxation; it will arise better and keener after resting. As rich fields must not be forced-for their productiveness, the have no rest, will quickly exhaust them constantlabor will break the vigor of the mind, but if it is released and relaxed a little while, it will recover its powers
Seneca
Random CSS Property

text-decoration-color

The text-decoration-color CSS property sets the color of decorations added to text by text-decoration-line.
text-decoration-color css reference