class ContentCalendarService in Content Planner 8
Class ContentCalendarService.
Hierarchy
- class \Drupal\content_calendar\ContentCalendarService
Expanded class hierarchy of ContentCalendarService
2 files declare their use of ContentCalendarService
- Calendar.php in modules/
content_calendar/ src/ Component/ Calendar.php - CalendarController.php in modules/
content_calendar/ src/ Controller/ CalendarController.php
1 string reference to 'ContentCalendarService'
- content_calendar.services.yml in modules/
content_calendar/ content_calendar.services.yml - modules/content_calendar/content_calendar.services.yml
1 service uses ContentCalendarService
- content_calendar.content_calendar_service in modules/
content_calendar/ content_calendar.services.yml - Drupal\content_calendar\ContentCalendarService
File
- modules/
content_calendar/ src/ ContentCalendarService.php, line 10
Namespace
Drupal\content_calendarView source
class ContentCalendarService {
/**
* Drupal\Core\Database\Driver\mysql\Connection definition.
*
* @var \Drupal\Core\Database\Driver\mysql\Connection
*/
protected $database;
/**
* Drupal\content_calendar\ContentTypeConfigService definition.
*
* @var \Drupal\content_calendar\ContentTypeConfigService
*/
protected $contentTypeConfigService;
/**
* Constructs a new ContentCalendarService object.
*/
public function __construct(Connection $database, ContentTypeConfigService $content_type_config_service) {
$this->database = $database;
$this->contentTypeConfigService = $content_type_config_service;
}
/**
* Get Nodes by Type.
*
* @param int $node_type
* @param array $filters
*
* @return array
*/
public function getNodesByType($node_type, $filters = []) {
// Basic table.
$query = $this->database
->select('node_field_data', 'nfd');
// Joins.
$query
->innerJoin('users_field_data', 'ufd', 'nfd.uid = ufd.uid');
// Fields.
$query
->addField('nfd', 'nid');
$query
->addField('nfd', 'title');
$query
->addField('nfd', 'created');
$query
->addField('nfd', 'status');
$query
->addField('nfd', 'uid');
$query
->addField('ufd', 'name', 'username');
$query
->addField('nfd', 'publish_on');
// Conditions.
$query
->condition('nfd.type', $node_type);
// $query->isNotNull('nfd.publish_on');
// Sort.
$query
->orderBy('nfd.created', 'ASC');
// Add year filter.
if (isset($filters['year']) && $filters['year'] && is_numeric($filters['year'])) {
if (isset($filters['month']) && $filters['month'] && is_numeric($filters['month'])) {
$month_from = $filters['month'];
$month_to = $filters['month'];
}
else {
$month_from = 1;
$month_to = 12;
}
// From datetime.
$datetime_from = DateTimeHelper::getFirstDayOfMonth($month_from, $filters['year']);
// To datetime.
$datetime_to = DateTimeHelper::getLastDayOfMonth($month_to, $filters['year']);
$or_conditions = $query
->orConditionGroup();
// Date range conditions for scheduler date.
$scheduler_date_conditions = $query
->andConditionGroup();
$scheduler_date_conditions
->condition('nfd.publish_on', $datetime_from
->format('U'), '>=');
$scheduler_date_conditions
->condition('nfd.publish_on', $datetime_to
->format('U'), '<=');
$or_conditions
->condition($scheduler_date_conditions);
// Date range conditions for created date.
$created_date_conditions = $query
->andConditionGroup();
$created_date_conditions
->condition('nfd.created', $datetime_from
->format('U'), '>=');
$created_date_conditions
->condition('nfd.created', $datetime_to
->format('U'), '<=');
$or_conditions
->condition($created_date_conditions);
$query
->condition($or_conditions);
}
$result = $query
->execute()
->fetchAll();
if ($result) {
return $result;
}
return [];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ContentCalendarService:: |
protected | property | Drupal\content_calendar\ContentTypeConfigService definition. | |
ContentCalendarService:: |
protected | property | Drupal\Core\Database\Driver\mysql\Connection definition. | |
ContentCalendarService:: |
public | function | Get Nodes by Type. | |
ContentCalendarService:: |
public | function | Constructs a new ContentCalendarService object. |