Posted in core
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
216
This Month
690
This Year
246

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...

You could also follow me on twitter. I have a couple of youtube channels if you want to see some video related content. RuneScape 3, Minecraft and also a coding channel here Web Dev.

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

minecraft
Random CSS Property

:disabled

The :disabled CSS pseudo-class represents any disabled element. An element is disabled if it can't be activated (selected, clicked on, typed into, etc.) or accept focus. The element also has an enabled state, in which it can be activated or accept focus.
:disabled css reference