page visit counts and last content updated date block

 <?php
namespace Drupal\custom_visit_counter\Plugin\Block;
use Drupal\Core\Block\BlockBase;
use Drupal\Core\Datetime\DrupalDateTime;
use Drupal\Core\Cache;
/**
 * Provides a block with a simple text.
 *
 * @Block(
 *   id = "visit_counter_block",
 *   admin_label = @Translation("Visit Counter"),
 * )
 */
class CustomVisitCounter extends BlockBase {
  /**
   * {@inheritdoc}
   */
  public function build() {
    
  $database = \Drupal::database();
    $query = $database->select('node_counter', 'u');
    $query->addExpression('SUM(totalcount)', 'totalviews');
  $result = $query->execute()->fetchField();
   $last = $database->select('node_field_data', 'nfd')
    ->fields('nfd', ['changed'])
    ->condition('nid', 25)
    ->condition('status', 0, '>')
    ->orderBy('changed', 'DESC')
    ->range(0, 1);
    $date =$last->execute()->fetchField();
//   $date = new DrupalDateTime('now');
  $formatted_date = \Drupal::service('date.formatter')->format($date, 'custom', 'd/m/Y,  h:ia');
    return [
        '#markup' => '<div class="totalcount"><span class="field-content">
                    Visitor Counter: ' . $result . '
                    </span>
                    <div><span class="field-content">Last Updated: ' . $formatted_date . '</span></div>
                    </div>',
        '#cache' => [
            'max-age' => 0,
        ]
    ];
  }
  public function getCacheMaxAge() {
    return 0;
  }
}

Comments