abstract class SocialAddToCalendarBase in Open Social 10.2.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_event/modules/social_event_addtocal/src/Plugin/SocialAddToCalendarBase.php \Drupal\social_event_addtocal\Plugin\SocialAddToCalendarBase
- 10.3.x modules/social_features/social_event/modules/social_event_addtocal/src/Plugin/SocialAddToCalendarBase.php \Drupal\social_event_addtocal\Plugin\SocialAddToCalendarBase
- 10.0.x modules/social_features/social_event/modules/social_event_addtocal/src/Plugin/SocialAddToCalendarBase.php \Drupal\social_event_addtocal\Plugin\SocialAddToCalendarBase
- 10.1.x modules/social_features/social_event/modules/social_event_addtocal/src/Plugin/SocialAddToCalendarBase.php \Drupal\social_event_addtocal\Plugin\SocialAddToCalendarBase
Base class for Social add to calendar plugins.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\social_event_addtocal\Plugin\SocialAddToCalendarBase implements SocialAddToCalendarInterface
Expanded class hierarchy of SocialAddToCalendarBase
4 files declare their use of SocialAddToCalendarBase
- AddToGoogle.php in modules/
social_features/ social_event/ modules/ social_event_addtocal/ src/ Plugin/ SocialAddToCalendar/ AddToGoogle.php - AddToICal.php in modules/
social_features/ social_event/ modules/ social_event_addtocal/ src/ Plugin/ SocialAddToCalendar/ AddToICal.php - AddToOutlook.php in modules/
social_features/ social_event/ modules/ social_event_addtocal/ src/ Plugin/ SocialAddToCalendar/ AddToOutlook.php - AddToYahoo.php in modules/
social_features/ social_event/ modules/ social_event_addtocal/ src/ Plugin/ SocialAddToCalendar/ AddToYahoo.php
File
- modules/
social_features/ social_event/ modules/ social_event_addtocal/ src/ Plugin/ SocialAddToCalendarBase.php, line 16
Namespace
Drupal\social_event_addtocal\PluginView source
abstract class SocialAddToCalendarBase extends PluginBase implements SocialAddToCalendarInterface {
/**
* {@inheritdoc}
*/
public function getName() {
return $this->pluginDefinition['label'];
}
/**
* {@inheritdoc}
*/
public function generateUrl(NodeInterface $node) {
return Url::fromRoute('<front>');
}
/**
* {@inheritdoc}
*/
public function generateSettings(NodeInterface $node) {
return [
'title' => $node
->getTitle(),
'dates' => $this
->getEventDates($node),
'timezone' => date_default_timezone_get() !== DateTimeItemInterface::STORAGE_TIMEZONE ? date_default_timezone_get() : '',
'description' => $this
->getEventDescription($node),
'location' => $this
->getEventLocation($node),
'nid' => $node
->id(),
];
}
/**
* {@inheritdoc}
*/
public function getEventDates(NodeInterface $node) {
// Set default values.
$all_day = FALSE;
$start_date = new DateTime($node->field_event_date->value, new DateTimeZone(DateTimeItemInterface::STORAGE_TIMEZONE));
$end_date = new DateTime($node->field_event_date_end->value, new DateTimeZone(DateTimeItemInterface::STORAGE_TIMEZONE));
$date_time = [];
// Set formats for event dates.
$format = $this->pluginDefinition['dateFormat'];
if (date_default_timezone_get() === DateTimeItemInterface::STORAGE_TIMEZONE) {
$format = $this->pluginDefinition['utcDateFormat'];
}
$all_day_format = $this->pluginDefinition['allDayFormat'];
// Check if all day event.
if ($start_date
->format('i') === '01') {
$all_day = TRUE;
}
// Convert date to correct format.
// Set dates array.
if ($all_day) {
$date_time['start'] = $start_date
->format($all_day_format);
$end_date
->modify($this->pluginDefinition['endDateModification']);
$date_time['end'] = $end_date
->format($all_day_format);
}
else {
$start_date
->setTimezone(new DateTimeZone(date_default_timezone_get()));
$end_date
->setTimezone(new DateTimeZone(date_default_timezone_get()));
$date_time['start'] = $start_date
->format($format);
$date_time['end'] = $end_date
->format($format);
}
// Set external values for dates.
$date_time['both'] = $date_time['start'] . '/' . $date_time['end'];
$date_time['all_day'] = $all_day;
return $date_time;
}
/**
* {@inheritdoc}
*/
public function getEventDescription(NodeInterface $node) {
// Get event description.
$description = $node->body->value;
// Strings for replace.
$replace_strings = [
' ' => '',
'<br />' => '',
PHP_EOL => '',
];
// Replace node supported strings.
foreach ($replace_strings as $search => $replace) {
$description = str_replace($search, $replace, $description);
}
return Unicode::truncate(strip_tags($description), 1000, TRUE, TRUE);
}
/**
* {@inheritdoc}
*/
public function getEventLocation(NodeInterface $node) {
// Get event address values.
if ($node
->get('field_event_address')
->isEmpty()) {
return '';
}
$address_value = $node->field_event_address
->getValue();
$address = $address_value[0];
$location = '';
// Set event location.
if (!empty($address['address_line1'])) {
$location .= $address['address_line1'] . ' ';
}
if (!empty($address['address_line2'])) {
$location .= $address['address_line2'] . ', ';
}
if (!empty($address['locality'])) {
$location .= $address['locality'] . ', ';
}
if (!empty($address['administrative_area'])) {
$location .= $address['administrative_area'] . ' ';
}
if (!empty($address['postal_code'])) {
$location .= $address['postal_code'] . ', ';
}
if (!empty($address['country_code'])) {
$location .= $address['country_code'];
}
return $location;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
2 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 98 |
SocialAddToCalendarBase:: |
public | function |
Returns array of event settings for url options. Overrides SocialAddToCalendarInterface:: |
|
SocialAddToCalendarBase:: |
public | function |
Returns the 'Add to calendar' link. Overrides SocialAddToCalendarInterface:: |
4 |
SocialAddToCalendarBase:: |
public | function |
Returns array of event dates for calendar. Overrides SocialAddToCalendarInterface:: |
|
SocialAddToCalendarBase:: |
public | function |
Returns the event description for calendar. Overrides SocialAddToCalendarInterface:: |
|
SocialAddToCalendarBase:: |
public | function |
Returns the event location for calendar. Overrides SocialAddToCalendarInterface:: |
|
SocialAddToCalendarBase:: |
public | function |
Returns plugin name for label. Overrides SocialAddToCalendarInterface:: |