32 lines
874 B
Plaintext
32 lines
874 B
Plaintext
<?php
|
|
|
|
use Drupal\Core\Entity\EntityInterface;
|
|
use Drupal\Component\Utility\Html;
|
|
|
|
/**
|
|
* Implements hook_ENTITY_TYPE_presave().
|
|
*/
|
|
function disciplearea_node_presave(EntityInterface $node) {
|
|
|
|
if (($node->getType() == 'blog_post') && ($node->isNew())) {
|
|
|
|
$value = \Drupal::request()->query->get('cid');
|
|
$value = Html::escape($value);
|
|
|
|
$node->set('field_community', $value);
|
|
}
|
|
}
|
|
|
|
|
|
// In NEWS FOR THIS PLACE, we needed to combine Posts and Events, sorted by Posts.authored_on and Events.field_when
|
|
function disciplearea_views_query_alter( $view, $query )
|
|
{
|
|
switch ( $view -> id() )
|
|
{
|
|
case 'masonry':
|
|
$query -> orderby = [];
|
|
$query -> addOrderBy( NULL, "CASE node_field_data.type WHEN 'event' THEN node__field_when.field_when_value ELSE node_field_data.created END", 'DESC', 'order_field' );
|
|
break;
|
|
}
|
|
}
|