File "note-summary.php"
Full Path: /home/amervokv/ecomlive.net/wp-content/plugins/elementor-pro/modules/notes/database/models/note-summary.php
File size: 1.5 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace ElementorPro\Modules\Notes\Database\Models;
use ElementorPro\Modules\Notes\Module;
use ElementorPro\Core\Database\Model_Base;
use ElementorPro\Modules\Notes\Database\Query\Note_Query_Builder;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class Note_Summary extends Model_Base {
/**
* @var string
*/
public $url = null;
/**
* @var string
*/
public $full_url = null;
/**
* @var string
*/
public $title = null;
/**
* @var int
*/
public $notes_count = 0;
/**
* Casts array.
*
* @var array
*/
protected static $casts = [
'notes_count' => self::TYPE_INTEGER,
];
/**
* @inheritDoc
*/
public function __construct( array $fields ) {
// Make sure each model comes with the full url alongside with the relative url.
$fields['full_url'] = get_site_url( null, $fields['url'] );
parent::__construct( $fields );
}
/**
* Override the default Query Builder.
*
* @param \wpdb|null $connection
*
* @return Note_Query_Builder
*/
public static function query( \wpdb $connection = null ) {
$table_name = static::get_table();
return ( new Note_Query_Builder( $connection ) )
->set_model( static::class )
->from( $table_name )
->select( [
'title' => 'route_title',
'url' => 'route_url',
] )
->add_count_select( "{$table_name}.id", 'notes_count' )
->group_by( 'route_url' );
}
/**
* Get the notes table name.
*
* @return string
*/
public static function get_table() {
return Module::TABLE_NOTES;
}
}