本文整理汇总了PHP中Contao\StringUtil::toHtml5方法的典型用法代码示例。如果您正苦于以下问题:PHP StringUtil::toHtml5方法的具体用法?PHP StringUtil::toHtml5怎么用?PHP StringUtil::toHtml5使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Contao\StringUtil
的用法示例。
在下文中一共展示了StringUtil::toHtml5方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: compile
/**
* Generate the module
*/
protected function compile()
{
/** @var PageModel $objPage */
global $objPage;
$this->Template->event = '';
$this->Template->referer = 'javascript:history.go(-1)';
$this->Template->back = $GLOBALS['TL_LANG']['MSC']['goBack'];
// Get the current event
$objEvent = \CalendarEventsModel::findPublishedByParentAndIdOrAlias(\Input::get('events'), $this->cal_calendar);
if (null === $objEvent) {
throw new PageNotFoundException('Page not found: ' . \Environment::get('uri'));
}
// Overwrite the page title (see #2853 and #4955)
if ($objEvent->title != '') {
$objPage->pageTitle = strip_tags(\StringUtil::stripInsertTags($objEvent->title));
}
// Overwrite the page description
if ($objEvent->teaser != '') {
$objPage->description = $this->prepareMetaDescription($objEvent->teaser);
}
$intStartTime = $objEvent->startTime;
$intEndTime = $objEvent->endTime;
$span = \Calendar::calculateSpan($intStartTime, $intEndTime);
// Do not show dates in the past if the event is recurring (see #923)
if ($objEvent->recurring) {
$arrRange = \StringUtil::deserialize($objEvent->repeatEach);
if (is_array($arrRange) && isset($arrRange['unit']) && isset($arrRange['value'])) {
while ($intStartTime < time() && $intEndTime < $objEvent->repeatEnd) {
$intStartTime = strtotime('+' . $arrRange['value'] . ' ' . $arrRange['unit'], $intStartTime);
$intEndTime = strtotime('+' . $arrRange['value'] . ' ' . $arrRange['unit'], $intEndTime);
}
}
}
$strDate = \Date::parse($objPage->dateFormat, $intStartTime);
if ($span > 0) {
$strDate = \Date::parse($objPage->dateFormat, $intStartTime) . ' – ' . \Date::parse($objPage->dateFormat, $intEndTime);
}
$strTime = '';
if ($objEvent->addTime) {
if ($span > 0) {
$strDate = \Date::parse($objPage->datimFormat, $intStartTime) . ' – ' . \Date::parse($objPage->datimFormat, $intEndTime);
} elseif ($intStartTime == $intEndTime) {
$strTime = \Date::parse($objPage->timeFormat, $intStartTime);
} else {
$strTime = \Date::parse($objPage->timeFormat, $intStartTime) . ' – ' . \Date::parse($objPage->timeFormat, $intEndTime);
}
}
$until = '';
$recurring = '';
// Recurring event
if ($objEvent->recurring) {
$arrRange = \StringUtil::deserialize($objEvent->repeatEach);
if (is_array($arrRange) && isset($arrRange['unit']) && isset($arrRange['value'])) {
$strKey = 'cal_' . $arrRange['unit'];
$recurring = sprintf($GLOBALS['TL_LANG']['MSC'][$strKey], $arrRange['value']);
if ($objEvent->recurrences > 0) {
$until = sprintf($GLOBALS['TL_LANG']['MSC']['cal_until'], \Date::parse($objPage->dateFormat, $objEvent->repeatEnd));
}
}
}
/** @var FrontendTemplate|object $objTemplate */
$objTemplate = new \FrontendTemplate($this->cal_template);
$objTemplate->setData($objEvent->row());
$objTemplate->date = $strDate;
$objTemplate->time = $strTime;
$objTemplate->datetime = $objEvent->addTime ? date('Y-m-d\\TH:i:sP', $intStartTime) : date('Y-m-d', $intStartTime);
$objTemplate->begin = $intStartTime;
$objTemplate->end = $intEndTime;
$objTemplate->class = $objEvent->cssClass != '' ? ' ' . $objEvent->cssClass : '';
$objTemplate->recurring = $recurring;
$objTemplate->until = $until;
$objTemplate->locationLabel = $GLOBALS['TL_LANG']['MSC']['location'];
$objTemplate->details = '';
$objTemplate->hasDetails = false;
$objTemplate->hasTeaser = false;
// Clean the RTE output
if ($objEvent->teaser != '') {
$objTemplate->hasTeaser = true;
$objTemplate->teaser = \StringUtil::toHtml5($objEvent->teaser);
$objTemplate->teaser = \StringUtil::encodeEmail($objTemplate->teaser);
}
// Display the "read more" button for external/article links
if ($objEvent->source != 'default') {
$objTemplate->details = true;
$objTemplate->hasDetails = true;
} else {
$id = $objEvent->id;
$objTemplate->details = function () use($id) {
$strDetails = '';
$objElement = \ContentModel::findPublishedByPidAndTable($id, 'tl_calendar_events');
if ($objElement !== null) {
while ($objElement->next()) {
$strDetails .= $this->getContentElement($objElement->current());
}
}
return $strDetails;
};
//.........这里部分代码省略.........
示例2: compile
/**
* Generate the module
*/
protected function compile()
{
$objFaq = \FaqModel::findPublishedByPids($this->faq_categories);
if ($objFaq === null) {
$this->Template->faq = array();
return;
}
/** @var PageModel $objPage */
global $objPage;
$arrFaqs = array_fill_keys($this->faq_categories, array());
// Add FAQs
while ($objFaq->next()) {
/** @var FaqModel $objFaq */
$objTemp = (object) $objFaq->row();
// Clean the RTE output
$objTemp->answer = \StringUtil::toHtml5($objFaq->answer);
$objTemp->answer = \StringUtil::encodeEmail($objTemp->answer);
$objTemp->addImage = false;
// Add an image
if ($objFaq->addImage && $objFaq->singleSRC != '') {
$objModel = \FilesModel::findByUuid($objFaq->singleSRC);
if ($objModel !== null && is_file(TL_ROOT . '/' . $objModel->path)) {
// Do not override the field now that we have a model registry (see #6303)
$arrFaq = $objFaq->row();
$arrFaq['singleSRC'] = $objModel->path;
$strLightboxId = 'lightbox[' . substr(md5('mod_faqpage_' . $objFaq->id), 0, 6) . ']';
// see #5810
$this->addImageToTemplate($objTemp, $arrFaq, null, $strLightboxId);
}
}
$objTemp->enclosure = array();
// Add enclosure
if ($objFaq->addEnclosure) {
$this->addEnclosuresToTemplate($objTemp, $objFaq->row());
}
/** @var UserModel $objAuthor */
$objAuthor = $objFaq->getRelated('author');
$objTemp->info = sprintf($GLOBALS['TL_LANG']['MSC']['faqCreatedBy'], \Date::parse($objPage->dateFormat, $objFaq->tstamp), $objAuthor->name);
/** @var FaqCategoryModel $objPid */
$objPid = $objFaq->getRelated('pid');
// Order by PID
$arrFaqs[$objFaq->pid]['items'][] = $objTemp;
$arrFaqs[$objFaq->pid]['headline'] = $objPid->headline;
$arrFaqs[$objFaq->pid]['title'] = $objPid->title;
}
$arrFaqs = array_values(array_filter($arrFaqs));
$limit_i = count($arrFaqs) - 1;
// Add classes first, last, even and odd
for ($i = 0; $i <= $limit_i; $i++) {
$class = ($i == 0 ? 'first ' : '') . ($i == $limit_i ? 'last ' : '') . ($i % 2 == 0 ? 'even' : 'odd');
$arrFaqs[$i]['class'] = trim($class);
$limit_j = count($arrFaqs[$i]['items']) - 1;
for ($j = 0; $j <= $limit_j; $j++) {
$class = ($j == 0 ? 'first ' : '') . ($j == $limit_j ? 'last ' : '') . ($j % 2 == 0 ? 'even' : 'odd');
$arrFaqs[$i]['items'][$j]->class = trim($class);
}
}
$this->Template->faq = $arrFaqs;
$this->Template->request = \Environment::get('indexFreeRequest');
$this->Template->topLink = $GLOBALS['TL_LANG']['MSC']['backToTop'];
}
示例3: addCommentsToTemplate
/**
* Add comments to a template
*
* @param FrontendTemplate|object $objTemplate
* @param \stdClass $objConfig
* @param string $strSource
* @param integer $intParent
* @param mixed $varNotifies
*/
public function addCommentsToTemplate(FrontendTemplate $objTemplate, \stdClass $objConfig, $strSource, $intParent, $varNotifies)
{
/** @var PageModel $objPage */
global $objPage;
$limit = 0;
$offset = 0;
$total = 0;
$gtotal = 0;
$arrComments = array();
$objTemplate->comments = array();
// see #4064
// Pagination
if ($objConfig->perPage > 0) {
// Get the total number of comments
$intTotal = \CommentsModel::countPublishedBySourceAndParent($strSource, $intParent);
$total = $gtotal = $intTotal;
// Calculate the key (e.g. tl_form_field becomes page_cff12)
$key = '';
$chunks = explode('_', substr($strSource, strncmp($strSource, 'tl_', 3) === 0 ? 3 : 0));
foreach ($chunks as $chunk) {
$key .= substr($chunk, 0, 1);
}
// Get the current page
$id = 'page_c' . $key . $intParent;
// see #4141
$page = \Input::get($id) !== null ? \Input::get($id) : 1;
// Do not index or cache the page if the page number is outside the range
if ($page < 1 || $page > max(ceil($total / $objConfig->perPage), 1)) {
throw new PageNotFoundException('Page not found: ' . \Environment::get('uri'));
}
// Set limit and offset
$limit = $objConfig->perPage;
$offset = ($page - 1) * $objConfig->perPage;
// Initialize the pagination menu
$objPagination = new \Pagination($total, $objConfig->perPage, \Config::get('maxPaginationLinks'), $id);
$objTemplate->pagination = $objPagination->generate("\n ");
}
$objTemplate->allowComments = true;
// Get all published comments
if ($limit) {
$objComments = \CommentsModel::findPublishedBySourceAndParent($strSource, $intParent, $objConfig->order == 'descending', $limit, $offset);
} else {
$objComments = \CommentsModel::findPublishedBySourceAndParent($strSource, $intParent, $objConfig->order == 'descending');
}
// Parse the comments
if ($objComments !== null && ($total = $objComments->count()) > 0) {
$count = 0;
if ($objConfig->template == '') {
$objConfig->template = 'com_default';
}
/** @var FrontendTemplate|object $objPartial */
$objPartial = new \FrontendTemplate($objConfig->template);
while ($objComments->next()) {
$objPartial->setData($objComments->row());
// Clean the RTE output
$objPartial->comment = \StringUtil::toHtml5($objComments->comment);
$objPartial->comment = trim(str_replace(array('{{', '}}'), array('{{', '}}'), $objPartial->comment));
$objPartial->datim = \Date::parse($objPage->datimFormat, $objComments->date);
$objPartial->date = \Date::parse($objPage->dateFormat, $objComments->date);
$objPartial->class = ($count < 1 ? ' first' : '') . ($count >= $total - 1 ? ' last' : '') . ($count % 2 == 0 ? ' even' : ' odd');
$objPartial->by = $GLOBALS['TL_LANG']['MSC']['com_by'];
$objPartial->id = 'c' . $objComments->id;
$objPartial->timestamp = $objComments->date;
$objPartial->datetime = date('Y-m-d\\TH:i:sP', $objComments->date);
$objPartial->addReply = false;
// Reply
if ($objComments->addReply && $objComments->reply != '') {
if (($objAuthor = $objComments->getRelated('author')) instanceof UserModel) {
$objPartial->addReply = true;
$objPartial->rby = $GLOBALS['TL_LANG']['MSC']['com_reply'];
$objPartial->reply = $this->replaceInsertTags($objComments->reply);
$objPartial->author = $objAuthor;
// Clean the RTE output
$objPartial->reply = \StringUtil::toHtml5($objPartial->reply);
}
}
$arrComments[] = $objPartial->parse();
++$count;
}
}
$objTemplate->comments = $arrComments;
$objTemplate->addComment = $GLOBALS['TL_LANG']['MSC']['addComment'];
$objTemplate->name = $GLOBALS['TL_LANG']['MSC']['com_name'];
$objTemplate->email = $GLOBALS['TL_LANG']['MSC']['com_email'];
$objTemplate->website = $GLOBALS['TL_LANG']['MSC']['com_website'];
$objTemplate->commentsTotal = $limit ? $gtotal : $total;
// Add a form to create new comments
$this->renderCommentForm($objTemplate, $objConfig, $strSource, $intParent, $varNotifies);
}
示例4: generateReplacement
/**
* Generates the replacement string.
*
* @param CalendarEventsModel $event
* @param string $insertTag
*
* @return string
*/
private function generateReplacement(CalendarEventsModel $event, $insertTag)
{
switch ($insertTag) {
case 'event':
return sprintf('<a href="%s" title="%s">%s</a>', $this->generateEventUrl($event), StringUtil::specialchars($event->title), $event->title);
case 'event_open':
return sprintf('<a href="%s" title="%s">', $this->generateEventUrl($event), StringUtil::specialchars($event->title));
case 'event_url':
return $this->generateEventUrl($event);
case 'event_title':
return StringUtil::specialchars($event->title);
case 'event_teaser':
return StringUtil::toHtml5($event->teaser);
}
return '';
}
示例5: toHtml5
/**
* Convert a string to HTML5.
*
* @param string $strString The XHTML string.
*
* @return string The HTML5 string
*/
public static function toHtml5($strString)
{
if (self::isStringUtilAvailable()) {
return StringUtil::toHtml5($strString);
}
return \Contao\String::toHtml5($strString);
}
示例6: generateReplacement
/**
* Generates the replacement string.
*
* @param NewsModel $news
* @param string $insertTag
*
* @return string
*/
private function generateReplacement(NewsModel $news, $insertTag)
{
switch ($insertTag) {
case 'news':
return sprintf('<a href="%s" title="%s">%s</a>', $this->generateNewsUrl($news), StringUtil::specialchars($news->headline), $news->headline);
case 'news_open':
return sprintf('<a href="%s" title="%s">', $this->generateNewsUrl($news), StringUtil::specialchars($news->headline));
case 'news_url':
return $this->generateNewsUrl($news);
case 'news_title':
return StringUtil::specialchars($news->headline);
case 'news_teaser':
return StringUtil::toHtml5($news->teaser);
}
return '';
}
示例7: doReplace
//.........这里部分代码省略.........
break;
// Article
// Article
case 'article':
case 'article_open':
case 'article_url':
case 'article_title':
if (($objArticle = \ArticleModel::findByIdOrAlias($elements[1])) === null || !($objPid = $objArticle->getRelated('pid')) instanceof PageModel) {
break;
}
/** @var PageModel $objPid */
$strUrl = $objPid->getFrontendUrl('/articles/' . ($objArticle->alias ?: $objArticle->id));
// Replace the tag
switch (strtolower($elements[0])) {
case 'article':
$arrCache[$strTag] = sprintf('<a href="%s" title="%s">%s</a>', $strUrl, \StringUtil::specialchars($objArticle->title), $objArticle->title);
break;
case 'article_open':
$arrCache[$strTag] = sprintf('<a href="%s" title="%s">', $strUrl, \StringUtil::specialchars($objArticle->title));
break;
case 'article_url':
$arrCache[$strTag] = $strUrl;
break;
case 'article_title':
$arrCache[$strTag] = \StringUtil::specialchars($objArticle->title);
break;
}
break;
// Article teaser
// Article teaser
case 'article_teaser':
$objTeaser = \ArticleModel::findByIdOrAlias($elements[1]);
if ($objTeaser !== null) {
$arrCache[$strTag] = \StringUtil::toHtml5($objTeaser->teaser);
}
break;
// Last update
// Last update
case 'last_update':
$strQuery = "SELECT MAX(tstamp) AS tc";
$bundles = \System::getContainer()->getParameter('kernel.bundles');
if (isset($bundles['ContaoNewsBundle'])) {
$strQuery .= ", (SELECT MAX(tstamp) FROM tl_news) AS tn";
}
if (isset($bundles['ContaoCalendarBundle'])) {
$strQuery .= ", (SELECT MAX(tstamp) FROM tl_calendar_events) AS te";
}
$strQuery .= " FROM tl_content";
$objUpdate = \Database::getInstance()->query($strQuery);
if ($objUpdate->numRows) {
$arrCache[$strTag] = \Date::parse($elements[1] ?: \Config::get('datimFormat'), max($objUpdate->tc, $objUpdate->tn, $objUpdate->te));
}
break;
// Version
// Version
case 'version':
$arrCache[$strTag] = VERSION . '.' . BUILD;
break;
// Request token
// Request token
case 'request_token':
$arrCache[$strTag] = REQUEST_TOKEN;
break;
// POST data
// POST data
case 'post':
示例8: compile
/**
* Generate the module
*/
protected function compile()
{
/** @var PageModel $objPage */
global $objPage;
$this->Template->back = $GLOBALS['TL_LANG']['MSC']['goBack'];
$this->Template->referer = 'javascript:history.go(-1)';
$objFaq = \FaqModel::findPublishedByParentAndIdOrAlias(\Input::get('items'), $this->faq_categories);
if (null === $objFaq) {
throw new PageNotFoundException('Page not found');
}
// Overwrite the page title and description (see #2853 and #4955)
if ($objFaq->question != '') {
$objPage->pageTitle = strip_tags(strip_insert_tags($objFaq->question));
$objPage->description = $this->prepareMetaDescription($objFaq->question);
}
$this->Template->question = $objFaq->question;
// Clean the RTE output
$objFaq->answer = \StringUtil::toHtml5($objFaq->answer);
$this->Template->answer = \StringUtil::encodeEmail($objFaq->answer);
$this->Template->addImage = false;
// Add image
if ($objFaq->addImage && $objFaq->singleSRC != '') {
$objModel = \FilesModel::findByUuid($objFaq->singleSRC);
if ($objModel !== null && is_file(TL_ROOT . '/' . $objModel->path)) {
// Do not override the field now that we have a model registry (see #6303)
$arrFaq = $objFaq->row();
$arrFaq['singleSRC'] = $objModel->path;
$this->addImageToTemplate($this->Template, $arrFaq);
}
}
$this->Template->enclosure = array();
// Add enclosure
if ($objFaq->addEnclosure) {
$this->addEnclosuresToTemplate($this->Template, $objFaq->row());
}
$strAuthor = '';
// Add the author
if (($objAuthor = $objFaq->getRelated('author')) !== null) {
$strAuthor = $objAuthor->name;
}
$this->Template->info = sprintf($GLOBALS['TL_LANG']['MSC']['faqCreatedBy'], \Date::parse($objPage->dateFormat, $objFaq->tstamp), $strAuthor);
$bundles = \System::getContainer()->getParameter('kernel.bundles');
// HOOK: comments extension required
if ($objFaq->noComments || !isset($bundles['ContaoCommentsBundle'])) {
$this->Template->allowComments = false;
return;
}
/** @var FaqCategoryModel $objCategory */
$objCategory = $objFaq->getRelated('pid');
$this->Template->allowComments = $objCategory->allowComments;
// Comments are not allowed
if (!$objCategory->allowComments) {
return;
}
// Adjust the comments headline level
$intHl = min(intval(str_replace('h', '', $this->hl)), 5);
$this->Template->hlc = 'h' . ($intHl + 1);
$this->import('Comments');
$arrNotifies = array();
// Notify the system administrator
if ($objCategory->notify != 'notify_author') {
$arrNotifies[] = $GLOBALS['TL_ADMIN_EMAIL'];
}
// Notify the author
if ($objCategory->notify != 'notify_admin') {
/** @var UserModel $objAuthor */
if (($objAuthor = $objFaq->getRelated('author')) !== null && $objAuthor->email != '') {
$arrNotifies[] = $objAuthor->email;
}
}
$objConfig = new \stdClass();
$objConfig->perPage = $objCategory->perPage;
$objConfig->order = $objCategory->sortOrder;
$objConfig->template = $this->com_template;
$objConfig->requireLogin = $objCategory->requireLogin;
$objConfig->disableCaptcha = $objCategory->disableCaptcha;
$objConfig->bbcode = $objCategory->bbcode;
$objConfig->moderate = $objCategory->moderate;
$this->Comments->addCommentsToTemplate($this->Template, $objConfig, 'tl_faq', $objFaq->id, $arrNotifies);
}