*/
class VyfukRenderer extends AbstractRenderer {
public function render(string $innerHtml, string $formHtml, ModelNews $news): string {
$html = '
';
$html .= '
';
$html .= '
';
$html .= '
';
$html .= $innerHtml;
$html .= $formHtml;
$html .= '
';
$html .= '
';
$html .= '
';
$html .= '
';
return $html;
}
protected function getHeader(ModelNews $news) {
return '' . $news->title . '
' .
'' .
'' . $news->getLocalDate(function ($key) {
return $this->helper->getLang($key);
}) . '' .
'
';
}
public function renderContent(ModelNews $data, array $params): string {
$innerHtml = $this->getHeader($data);
$innerHtml .= $this->getText($data);
$innerHtml .= $this->getLink($data);
$innerHtml .= $this->getSignature($data);
return $innerHtml;
}
public function renderEditFields(array $params): string {
if (auth_quickaclcheck('start') < AUTH_EDIT) {
return '';
}
$html = '';
$html .= '';
$html .= '
';
$html .= '
';
$html .= $this->getModalHeader();
$html .= $this->getPriorityField($params['id'], $params['stream'], $params);
$html .= $this->btnEditNews($params['id'], $params['stream']);
$html .= '
';
$html .= '
';
$html .= '
';
return $html;
}
protected function getModalHeader() {
$html = '';
$html .= '';
return $html;
}
/**
* @param $id
* @param $streamName
* @param $params
* @return string
*/
protected function getPriorityField($id, $streamName, $params) {
$html = '';
if ($params['editable'] !== 'true') {
return '';
}
if (!$params['stream']) {
return '';
}
$html .= '';
$form = new Form();
$form->addClass('block');
$form->setHiddenField('do', \helper_plugin_newsfeed::FORM_TARGET);
$form->setHiddenField('news[id]', $id);
$form->setHiddenField('news[stream]', $streamName);
$form->setHiddenField('news[do]', 'priority');
$stream = $this->helper->serviceStream->findByName($streamName);
$priority = $this->helper->servicePriority->findByNewsAndStream($id, $stream->streamId);
$form->addTagOpen('div')->addClass('form-group');
$priorityValue = new InputElement('number', 'priority[value]', $this->helper->getLang('valid_from'));
$priorityValue->attr('class', 'form-control')->val($priority->getPriorityValue());
$form->addElement($priorityValue);
$form->addTagClose('div');
$form->addTagOpen('div')->addClass('form-group');
$priorityFromElement = new InputElement('datetime-local', 'priority[from]', $this->helper->getLang('valid_from'));
$priorityFromElement->val($priority->priorityFrom ?: date('Y-m-d\TH:i:s', time()))
->attr('class', 'form-control');
$form->addElement($priorityFromElement);
$form->addTagClose('div');
$form->addTagOpen('div')->addClass('form-group');
$priorityToElement = new InputElement('datetime-local', 'priority[to]', $this->helper->getLang('valid_to'));
$priorityToElement->val($priority->priorityTo ?: date('Y-m-d\TH:i:s', time()))
->attr('class', 'form-control');
$form->addElement($priorityToElement);
$form->addTagClose('div');
$form->addButton('submit', $this->helper->getLang('btn_save_priority'))->addClass('btn btn-success');
$html .= $form->toHTML();
$html .= '
';
return $html;
}
protected function btnEditNews($id, $stream) {
$html = '';
$html .= '';
return $html;
}
/**
* @param $news ModelNews
* @return null|string
*/
protected function getText(ModelNews $news) {
return $news->renderText();
}
/**
* @param $news ModelNews
* @return string
*/
protected function getSignature(ModelNews $news) {
return '';
}
/**
* @param $news ModelNews
* @return string
*/
protected function getLink(ModelNews $news) {
if ($news->hasLink()) {
if (preg_match('|^https?://|', $news->linkHref)) {
$href = hsc($news->linkHref);
} else {
$href = wl($news->linkHref, null, true);
}
return '' . $news->linkTitle . '
';
}
return '';
}
}