问题:自定义模板,用$db->fetchAll返回输出的text,前端md语法原样显示,如何才能显示出正常效果?

讨论程序使用中的问题
回复
dans88
帖子: 7
注册时间: 2022年 11月 26日 16:00

问题:自定义模板,用$db->fetchAll返回输出的text,前端md语法原样显示,如何才能显示出正常效果?

帖子 dans88 »

操作步骤
1、用 $result = $db->fetchAll($sql);查询一条记录(随机是$rand_id),正常。
2、用
<?php
if($result){
$i=1;
foreach($result as $val){
if($i<=3){
$var = ' class="red"';
}else{
$var = '';
}
$val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val);
$post_title = htmlspecialchars($val['title']);
$permalink = $val['permalink'];
$content = $val['text'];
echo '<article class="post" itemscope itemtype="http://schema.org/BlogPosting">';
echo '<h2 class="post-title" itemprop="name headline"><i'.$var.'>'.$i.'</i><a itemprop="url" href="'.$permalink.'" title="'.$post_title.'" target="_blank">'.$post_title.'</a></h2>';
echo '<div class="post-content" itemprop="articleBody"> '.$content.'</div>';
echo '</article>';
$i++;
}
}
?>

输出文章内容
前端标题和超链接都正常
文章内容只能是文本显示,如下图
图片
# 作品简介 - **影像方志概述**:《中国影像方志》是一部大型纪录片,以我国行政区划的县和县级市为拍摄主体,每地1集,每集40分钟。影片从中华文明的角度解读地方志、从地方志的角度彰显中华文明,以局部展示整体、以地方表达中国,从而为时代讴歌,为人民立传。 - **拍摄时间**:2021.01--2021.03 - **拍摄内容**:中央电视台《中国影像方志》第761集,CCTV第10频道首播要求片长40分钟。 - **拍摄地点**:云南兰坪。 - **本期节目主要内容**:三条大江并流向南,穿行于神秘浪漫的雪域高原,铺展出绿意盎然的生态宝库,也指引着古老民族迁徙的脚步。土司衙署承载守土护疆的重任,沧江书院镌刻仁人志士的丰碑。这里是三江之门,云南省兰坪白族普米族自治县。 # 该集职位:主摄像 - 点**Play**查看该片**片头片花** !!!

图中的md语法格式没有效果!请问,如何才能显示出正常效果?
Lopwon
帖子: 177
注册时间: 2016年 11月 14日 11:19

Re: 问题:自定义模板,用$db->fetchAll返回输出的text,前端md语法原样显示,如何才能显示出正常效果?

帖子 Lopwon »

Typecho_Widget::widget('Widget_Archive')->to($instance);
$instance->markdown($content);
dans88
帖子: 7
注册时间: 2022年 11月 26日 16:00

Re: 问题:自定义模板,用$db->fetchAll返回输出的text,前端md语法原样显示,如何才能显示出正常效果?

帖子 dans88 »

:D :D :D
谢谢。
用此测试一下。
dans88
帖子: 7
注册时间: 2022年 11月 26日 16:00

Re: 问题:自定义模板,用$db->fetchAll返回输出的text,前端md语法原样显示,如何才能显示出正常效果?

帖子 dans88 »

用上方法,没有成功

显示错误!!显示的错误信息是:

Cannot use object of type Widget\Archive as array

使用后一句后,

代码: 全选

$instance->markdown($content);
显示错误为

Argument 1 passed to Utils\Markdown::convert() must be of the type string, null given, called in /www/wwwroot/dantangyin.com/var/Widget/Base/Contents.php on line 915

相关代码如下:

代码: 全选

if($result){
	$i=1;
	foreach($result as $val){
		if($i<=3){
			$var = ' class="red"';
		}else{
			$var = '';
		}
		// $val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val);
		Typecho_Widget::widget('Widget_Archive')->to($val);
		$val->markdown($content);
		$post_title = htmlspecialchars($val['title']);
回复