class CourseObjectViewBuilder in Course 3.x
Same name and namespace in other branches
- 8.3 src/View/CourseObjectViewBuilder.php \Drupal\course\View\CourseObjectViewBuilder
- 8.2 src/View/CourseObjectViewBuilder.php \Drupal\course\View\CourseObjectViewBuilder
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface
- class \Drupal\course\View\CourseObjectViewBuilder
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface
Expanded class hierarchy of CourseObjectViewBuilder
File
- src/
View/ CourseObjectViewBuilder.php, line 10
Namespace
Drupal\course\ViewView source
class CourseObjectViewBuilder extends EntityViewBuilder {
public function build(array $build) {
$build = parent::build($build);
$courseObject = $build['#course_object'];
// When viewing, we use the current user.
$account = Drupal::currentUser();
$step = array();
$step['id'] = 'course-object-' . $courseObject
->id();
$step['image'] = '';
$step['status'] = '';
if ($courseObject
->access('see', $account)) {
if ($courseObject
->access('take', $account)) {
// User can take this course object.
$step['link'] = $courseObject
->getUrl();
$step['class'][] = 'accessible';
$step['status'] = t('Not started');
// Step is complete.
if ($courseObject
->getFulfillment($account)
->isComplete()) {
$step['class'][] = 'completed';
$step['status'] = t('Complete');
$step['image'] = 'core/misc/icons/73b355/check.svg';
}
elseif ($courseObject
->getFulfillment($account)
->id()) {
$step['status'] = t('In progress');
$step['class'][] = 'in-progress';
$step['image'] = '';
}
if ($courseObject
->getCourse()
->getActive() === $courseObject) {
$step['class'][] = 'active';
}
}
else {
// User cannot access this step yet.
$step['class'] = array(
'not-accessible',
);
$step['status'] = implode('<br/>', $courseObject
->getAccessMessages());
}
if ($courseObject
->isRequired()) {
$step['class'][] = 'required';
}
$step['class'][] = Html::cleanCssIdentifier($courseObject
->getComponent());
$img = !empty($step['image']) ? [
'#theme' => 'image',
'#uri' => $step['image'],
'#alt' => strip_tags($step['status']),
] : [];
$build['course_outline_image'] = $img;
$build['course_outline_link'] = array(
'#markup' => $courseObject
->access('take', $account) ? Link::fromTextAndUrl($courseObject
->getTitle(), $courseObject
->getUrl())
->toString() : $courseObject
->getTitle(),
);
$build['course_outline_status'] = array(
'#markup' => $step['status'],
'#prefix' => '<div>',
'#suffix' => '</div>',
);
// No cache as this list always changes.
$build['#cache']['max-age'] = 0;
}
return $build;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CourseObjectViewBuilder:: |
public | function |
Builds an entity's view; augments entity defaults. Overrides EntityViewBuilder:: |
|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
EntityHandlerBase:: |
protected | property | The module handler to invoke hooks on. | 5 |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 5 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityViewBuilder:: |
protected | property | The cache bin used to store the render cache. | |
EntityViewBuilder:: |
protected | property | The entity display repository. | |
EntityViewBuilder:: |
protected | property | The entity repository service. | |
EntityViewBuilder:: |
protected | property | Information about the entity type. | |
EntityViewBuilder:: |
protected | property | The type of entities for which this view builder is instantiated. | |
EntityViewBuilder:: |
protected | property | The language manager. | |
EntityViewBuilder:: |
protected | property | The EntityViewDisplay objects created for individual field rendering. | |
EntityViewBuilder:: |
protected | property | The theme registry. | |
EntityViewBuilder:: |
protected | function | Add contextual links. | |
EntityViewBuilder:: |
protected | function | Specific per-entity building. | 1 |
EntityViewBuilder:: |
public | function |
Builds the component fields and properties of a set of entities. Overrides EntityViewBuilderInterface:: |
7 |
EntityViewBuilder:: |
public | function | Builds multiple entities' views; augments entity defaults. | |
EntityViewBuilder:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityHandlerInterface:: |
3 |
EntityViewBuilder:: |
protected | function | Provides entity-specific defaults to the build process. | 4 |
EntityViewBuilder:: |
public | function |
The cache tag associated with this entity view builder. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
protected | function | Gets an EntityViewDisplay for rendering an individual field. | |
EntityViewBuilder:: |
protected | function | Determines whether the view mode is cacheable. | |
EntityViewBuilder:: |
public | function |
Resets the entity render cache. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
public static | function |
Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface:: |
2 |
EntityViewBuilder:: |
public | function |
Builds the render array for the provided entity. Overrides EntityViewBuilderInterface:: |
4 |
EntityViewBuilder:: |
public | function |
Builds a renderable array for the value of a single field in an entity. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
public | function |
Builds a renderable array for a single field item. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
public | function |
Builds the render array for the provided entities. Overrides EntityViewBuilderInterface:: |
4 |
EntityViewBuilder:: |
public | function | Constructs a new EntityViewBuilder. | 2 |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TrustedCallbackInterface:: |
constant | Untrusted callbacks throw exceptions. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger E_USER_WARNING errors. |