19 declare(strict_types=1);
25 public function getHTML(
bool $link =
true, array $options = []): string
29 $ref_id = $this->
http->wrapper()->query()->retrieve(
'ref_id', $this->
refinery->kindlyTo()->int());
34 $url = $value[
'link'];
37 if (substr(
$url, 0, 3) ===
'www') {
39 } elseif (filter_var(
$url, FILTER_VALIDATE_EMAIL)) {
42 $links[
'dcl_open_url'] =
$url;
46 if ($this->
http->wrapper()->query()->has(
'tableview_id')) {
47 $tableview_id = $this->
http->wrapper()->query()->retrieve(
'tableview_id', $this->
refinery->kindlyTo()->int());
49 $tableview_id = $this->
getRecord()->getTable()->getFirstTableViewId($this->
user->getId());
52 $this->
ctrl->clearParametersByClass(
"ilDclDetailedViewGUI");
53 $this->
ctrl->setParameterByClass(ilDclDetailedViewGUI::class,
'table_id', $this->
getRecord()->getTableId());
54 $this->
ctrl->setParameterByClass(ilDclDetailedViewGUI::class,
'tableview_id', $tableview_id);
55 $this->
ctrl->setParameterByClass(ilDclDetailedViewGUI::class,
'record_id', $this->
getRecord()->
getId());
56 $links[
'dcl_open_detail_view'] = $this->
ctrl->getLinkTargetByClass(ilDclDetailedViewGUI::class,
'renderRecord');
59 $value = nl2br((
string) $value);
61 switch (count($links)) {
65 return $this->renderer->render(
66 $this->factory->link()->standard($value, reset($links))->withOpenInNewViewport(
true)
71 foreach ($links as
$key => $link) {
72 $ui_links[] = $this->factory->link()->standard($this->
lng->txt(
$key), $link)->withOpenInNewViewport(
true);
74 return $this->renderer->render(
75 $this->factory->dropdown()->standard($ui_links)->withLabel($value)
82 $value = preg_replace(
'/^(https?:\/\/)?(www\.)?/',
'', $value);
83 $half = (
int) ((self::LINK_MAX_LENGTH - 4) / 2);
84 $value = preg_replace(
'/^(.{' . ($half + 1) .
'})(.{4,})(.{' . $half .
'})$/',
'\1...\3', $value);
94 $value = is_array($raw_input) ? $raw_input[
'link'] : $raw_input;
95 $value = is_string($value) ? $value :
"";
98 $field_values[
"field_" . $this->
getRecordField()->getField()->getId() .
"_title"] = (isset($raw_input[
'title'])) ? $raw_input[
'title'] :
'';
101 $field_values[
"field_" . $this->
getRecordField()->getField()->getId()] = $value;
102 $input_field->setValueByArray($field_values);
getHTML(bool $link=true, array $options=[])
getRecord()
Getter shortcut for record.
getField()
Getter shortcut for field.
shortenLink(string $value)
const PROP_LINK_DETAIL_PAGE_TEXT
static http()
Fetches the global http state from ILIAS.
getFormInput()
Gets the value from from the record field.
fillFormInput(ilPropertyFormGUI $form)
getRecordField()
Get Record Field.