立即注册 登录
彼岸网 返回首页

天香公主的个人空间 http://www.bian-wang.com/discuz/?10005 [收藏] [复制] [分享] [RSS] txgz999@yahoo.com

日志

Discuz功能改进:导入博文和图片

热度 4已有 1929 次阅读2015-10-12 12:45 AM |个人分类:Discuz

有很多博主都会将一篇博文发在几个网站,毕竟写篇原创不易,多发几个地方就多些读者,也有的这样做是为了备份。但是从一个网站直接将博文拷贝到另一个网站对有的摄影博主来讲效果并不理想,因为这样做的话博文中的图片并没有和博文的内容一起拷贝到第二个网站。这样的博文也不会出现在各种摄影模块里因为那些模块只选择含有本地图片的博文。本文讨论既相关又独立的两个问题:如何在日志编辑器的工具栏里添加两个按钮,一个将远程日志内容拷贝到编辑器里,另一个将日志里的远程图片都下载到本地,并使得日志内容指向下载的本地图片。

1。导入图片
Discuz在论坛编辑器和文章编辑器里都提供了下载远程图片到本地的功能(需在管理中心对选定的用户组设置后才能使用论坛编辑器:用户->用户组->选择用户组编辑->论坛相关->贴子相关->允许下载远程图片: 远程图片本地化保存),唯独日志编辑器里缺少这个功能。下面我们介绍下在日志编辑器里添加这个功能的步骤。


1)在日志编辑器的工具栏里添加"下载远程图片"按钮: 将文件 source/module/home/home_editor.php 里的这段 <?php if ($isportal) { ?> <a href="javascript:;" class="icoPage" id="icoPage" onClick="pageBreak(event, 1);return false;" title="<?php echo lang('home/editor', 'editor_pagebreak'); ?>"></a> <a href="javascript:;" class="icoDown" id="icoDown" onClick="parent.downRemoteFile();return false;" title="<?php echo lang('home/editor', 'editor_download_remote'); ?>"></a> <?php } ?> 改为: <?php if ($isportal) { ?> <a href="javascript:;" class="icoPage" id="icoPage" onClick="pageBreak(event, 1);return false;" title="<?php echo lang('home/editor', 'editor_pagebreak'); ?>"></a> <?php } ?> <a href="javascript:;" class="icoDown" id="icoDown" onClick="parent.downRemoteFile();return false;" title="<?php echo lang('home/editor', 'editor_download_remote'); ?>"></a> 2)修改对点击该按钮的事件处理代码使之兼顾文章编辑器和日志编辑器。将文件 static/image/editor/editor_function.js 中的函数 downRemoteFile function downRemoteFile() { edit_save(); var formObj = $("articleform"); var oldAction = formObj.action; formObj.action = "portal.php?mod=portalcp&ac=upload&op=downremotefile"; formObj.onSubmit = ""; formObj.target = "uploadframe"; formObj.submit(); formObj.action = oldAction; formObj.target = ""; } 改为: function downRemoteFile() { edit_save(); var formObj = $("articleform"); if (formObj != null) { var oldAction = formObj.action; formObj.action = "portal.php?mod=portalcp&ac=upload&op=downremotefile"; } else { formObj = $("ttHtmlEditor"); var oldAction = formObj.action; formObj.action = "home.php?mod=spacecp&ac=upload&op=downremotefile"; } formObj.onSubmit = ""; formObj.target = "uploadframe"; formObj.submit(); formObj.action = oldAction; formObj.target = ""; } 注意这里设定了在日志编辑器里点击该按钮后将编辑器里的内容提交给了服务器的 home.php?mod=spacecp&ac=upload&op=downremotefile 来处理,并将处理结果交给编辑器所在网页的一个名叫 uploadframe 的 iframe。接下来两步设置了与之配套的代码。
3)添加服务器对在日志编辑器里点击该按钮后提交的编辑器里的内容的处理。这是这个功能的关键部分,在这里下载了远程图片并换了日志里远程图片的链接。在文件 source/include/spacecp/spacecp_upload.php 开始部分 if(!defined('IN_DISCUZ')) { exit('Access Denied'); } 后添加一段: if($_GET['op']=='downremotefile') { if(submitcheck('blogsubmit') && helper_access::check_module('blog')) { $upload = new discuz_upload(); $arrayimageurl = $temp = $imagereplace = array(); $string = $_GET['message']; preg_match_all("/\<img.+src=('|\"|)?(.*)(\\1)([\s].*)?\>/ismUe", $string, $temp, PREG_SET_ORDER); if(is_array($temp) && !empty($temp)) { foreach($temp as $tempvalue) { $tempvalue[2] = str_replace('\"', '', $tempvalue[2]); if(strlen($tempvalue[2])){ $arrayimageurl[] = $tempvalue[2]; } } $arrayimageurl = array_unique($arrayimageurl); if($arrayimageurl) { foreach($arrayimageurl as $tempvalue) { $imageurl = $tempvalue; $imagereplace['oldimageurl'][] = $imageurl; $attach['ext'] = $upload->fileext($imageurl); if(!$upload->is_image_ext($attach['ext'])) { continue; } $content = ''; if(preg_match('/^(https?:\/\/|\.)/i', $imageurl)) { $content = dfsockopen($imageurl); } if(empty($content)) continue; $temp = explode('/', $imageurl); $attach['name'] = trim($temp[count($temp)-1]); $_G['setting']['allowwatermark'] = 0; $attach = stream_save($content, 0, 'jpg', $attach['name'], '', 0); $attachs[] = daddslashes($attach); $attach['url'] = ($attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'album/'; $imagereplace['newimageurl'][] = $attach['url'].$attach['filepath']; } } } if($imagereplace) { $string = preg_replace(array("/\<(script|style|iframe)[^\>]*?\>.*?\<\/(\\1)\>/si", "/\<!*(--|doctype|html|head|meta|link|body)[^\>]*?\>/si"), '', $string); $string = str_replace($imagereplace['oldimageurl'], $imagereplace['newimageurl'], $string); $string = str_replace(array("\r", "\n", "\r\n"), '', addcslashes($string, '/"\\\'')); print <<<EOF <script type="text/javascript"> var f = parent.window.frames["uchome-ifrHtmlEditor"].window.frames["HtmlEditor"]; f.document.body.innerHTML = '$string'; </script> EOF; } exit(); } } 4)在日志编辑器所在网页添加一个 iframe 来接受服务器处理结果。在文件 template/default/home/spacecp_blog.htm 的最下方的 javascript 代码 <script type="text/javascript"> if($('subject')) { $('subject').focus(); } </script> 前添加 <iframe id="uploadframe" name="uploadframe" width="0" height="0" marginwidth="0" frameborder="0" src="about:blank"></iframe>
2。导入日志

1)添加新按钮所用汉字和相应对话框里的汉字。在文件 source/language/home/lang_editor.php 里添加: 'editor_download_blog' => '下载远程日志', 'editor_prompt_bloglink' => '请输入日志 URL 地址', 2)添加新按钮所用图标。在文件夹 static/image/editor 里加入图片文件 download_blog.gif:
3)在日志编辑器的工具栏里添加新按钮。在文件 source/module/home/home_editor.php 里加入 (可以加在前述"下载远程图片"按钮的后面): <?php if (!$isportal) { ?> <a href="javascript:;" id="icoDownBlog" onClick="downloadBlog(event, 1);return false;" title="<?php echo lang('home/editor', 'editor_download_blog'); ?>" style="background-image: url(static/image/editor/download_blog.gif)"></a> <?php } ?> 4)添加点击该按钮后出现的填写远程日志URL的对话框。在文件 source/module/home/home_editor.php 里这段 <div id="createUrl" class="eMenu" style="display:none;top:35px;left:26px;width:300px;font-size:12px"> <?php echo lang('home/editor', 'editor_prompt_textlink'); ?>:<br/> <input type="text" id="insertUrl" name="url" value="http://" onfocus="checkURL(this, 1);" onblur="checkURL(this, 0);" class="t_input" style="width: 190px;"> <input type="button" onclick="createLink();" name="createURL" value="<?php echo lang('home/editor', 'editor_ok'); ?>" class="submit" /> < a href="javascript:;" onclick="fHide($('createUrl'));return false;"><?php echo lang('home/editor', 'editor_cancel'); ?></a> </div> 后添加: <div id="downloadBlogBox" class="eMenu" style="display:none;top:35px;left:26px;width:300px;font-size:12px"> <?php echo lang('home/editor', 'editor_prompt_bloglink'); ?>:<br /> <input type="text" id="insertBlogUrl" name="url" value="http://" onfocus="checkURL(this, 1);" onblur="checkURL(this, 0);" class="t_input" style="width: 190px;"> <input type="button" onclick="downloadBlog();" name="downloadBlogBox" value="<?php echo lang('home/editor', 'editor_ok'); ?>" class="submit" /> < a href="javascript:;" onclick="fHide($('downloadBlogBox'));return false;"><?php echo lang('home/editor', 'editor_cancel'); ?></a> </div> 5)添加在点击该按钮后显示对话框的代码。在文件 static/image/editor/editor_base.js 里添加下面的函数: function downloadBlog(e, show) { if (typeof show == 'undefined') { var urlObj = $('insertBlogUrl'); var sURL = urlObj.value; if ((sURL != null) && (sURL != "http://")) { parent.downRemoteBlog(sURL); } fHide($('downloadBlogBox')); urlObj.value = 'http://'; } else { if (gIsIE) { var e = window.event; } getCaret(); var dvUrlBox = $("downloadBlogBox"); var iX = e.clientX; var iY = e.clientY; dvUrlBox.style.display = ""; dvUrlBox.style.left = (iX - 300) + "px"; dvUrlBox.style.top = 33 + "px"; } } 6)添加当用户在对话框里填写了远程日志URL并点击确定按钮后,提交该URL给服务器的代码。在文件 static/image/editor/editor_function.js 里添加下面这个函数: function downRemoteBlog(url) { edit_save(); var formObj = $("ttHtmlEditor"); var oldAction = formObj.action; formObj.action = "home.php?mod=spacecp&ac=upload&op=downremoteblog&blogurl=" + encodeURIComponent(url); formObj.onSubmit = ""; formObj.target = "uploadframe"; formObj.submit(); formObj.action = oldAction; formObj.target = ""; } 7)添加服务器对在日志编辑器里点击该按钮后提交的编辑器里的内容的处理。在文件 source/include/spacecp/spacecp_upload.php 开始部分 if(!defined('IN_DISCUZ')) { exit('Access Denied'); } 后添加一段: if($_GET['op']=='downremoteblog') { if(submitcheck('blogsubmit') && helper_access::check_module('blog')) { $subject = $_GET['subject']; $string = $_GET['message']; $blogurl = $_GET['blogurl']; $doc = new DOMDocument; $doc->loadHTMLFile($blogurl); $xpath = new DOMXPath($doc); $entries = $xpath->query('//h1[@class="ph"]'); foreach($entries as $entry) { $blogSubject = $entry->nodeValue; } $entries = $xpath->query('//div[@id="blog_article"]'); foreach($entries as $entry) { $blogContent = get_inner_html($entry); } if($blogContent) { $subject .= $blogSubject; $subject = str_replace(array("\r", "\n", "\r\n"), '', addcslashes($subject, '/"\\\'')); $string .= preg_replace("/\<img.+src=('|\"|)?(.*)(\\1)([\s].*)?\>/ismUe", "get_image_tag('\\2', '$blogurl')", $blogContent); $string = str_replace(array("\r", "\n", "\r\n"), '', addcslashes($string, '/"\\\'')); print <<<EOF <script type="text/javascript"> parent.window.document.getElementById('subject').value = "$subject"; var f = parent.window.frames["uchome-ifrHtmlEditor"].window.frames["HtmlEditor"]; f.document.body.innerHTML = "$string"; </script> EOF; } exit(); } } 8)在文件 source/include/spacecp/spacecp_upload.php 里添加几个上面用到的函数: // http://php.net/manual/de/class.domelement.php function get_inner_html( $node ) { $innerHTML= ''; $children = $node->childNodes; foreach ($children as $child) { $innerHTML .= $child->ownerDocument->saveXML( $child ); } return $innerHTML; } // http://99webtools.com/blog/convert-relative-path-into-absolute-url/ function rel2abs($rel, $base) { if(strpos($rel,"//")===0) return "http:".$rel; if (parse_url($rel, PHP_URL_SCHEME) != '') return $rel; if ($rel[0]=='#' || $rel[0]=='?') return $base.$rel; extract(parse_url($base)); $path = preg_replace('#/[^/]*$#', '', $path); if ($rel[0] == '/') $path = ''; $abs = "$host$path/$rel"; $re = array('#(/.?/)#', '#/(?!..)[^/]+/../#'); for($n=1; $n>0; $abs=preg_replace($re, '/', $abs, -1, $n)) {} return $scheme.'://'.$abs; } function get_image_tag($imageurl, $baseurl) { return "<img src='".rel2abs($imageurl, $baseurl)."'>"; } 9)(如果没做第一部分修改的话) 在日志编辑器所在网页添加一个 iframe 来接受服务器处理结果(与第一部分的4)相同)。

最后总结一下。在日志编辑器的工具栏里添加了"下载远程日志"和"下载远程图片"这两个按钮后,博主可以这样来将发表在其它网站的博文拷贝到本网站:
1)在博文列表页里点击"发表新日志"按钮
2)点击"下载远程日志"按钮,在对话框里填写要下载的其它网站的博文的网址
3)点击"下载远程图片"按钮
4)点击"保存发布"按钮

3/20/2016 补充: 导入日志和评论
HQ问及能否在导入日志时同时导入日志后的评论。 下面讨论下如何修改第二部分来添加一个同时导入评论的选项:


1)修改第二部分中的1): 添加对话框里的汉字。在原来在文件 source/language/home/lang_editor.php 内添加的内容后加上: 'editor_prompt_includecomments' => '同时下载评论', 2)修改第二部分中的4): 添加点击该按钮后出现的填写远程日志URL的对话框。将原来在文件 source/module/home/home_editor.php 里添加的内容改为 : <div id="downloadBlogBox" class="eMenu" style="display:none;top:35px;left:26px;width:320px;font-size:12px"> <?php echo lang('home/editor', 'editor_prompt_bloglink'); ?>: <input type="text" id="insertBlogUrl" name="url" value="http://" onfocus="checkURL(this, 1);" onblur="checkURL(this, 0);" class="t_input" style="width: 190px;"> <br /> <?php echo lang('home/editor', 'editor_prompt_includecomments'); ?>: <input type="checkbox" id="includeComments" name="includeComments" style="margin: 5px;" checked /> < a href="javascript:;" onclick="fHide($('downloadBlogBox'));return false;" style="float: right; margin: 5px;"><?php echo lang('home/editor', 'editor_cancel'); ?></a> <input type="button" onclick="downloadBlog();" name="downloadBlogBox" value="<?php echo lang('home/editor', 'editor_ok'); ?>" class="submit" style="float: right; margin: 5px;" /> </div> 3)修改第二部分中的5): 添加在点击该按钮后显示对话框的代码。将原来在文件在文件 static/image/editor/editor_base.js 里添加的函数 downloadBlog 改为: function downloadBlog(e, show) { if (typeof show == 'undefined') { var sURL = $('insertBlogUrl').value; var includeComments = ($('includeComments').checked)?1:0; if ((sURL != null) && (sURL != "http://")) { parent.downRemoteBlog(sURL, includeComments); } fHide($('downloadBlogBox')); $('insertBlogUrl').value = 'http://'; } else { if (gIsIE) { var e = window.event; } getCaret(); var dvUrlBox = $("downloadBlogBox"); var iX = e.clientX; var iY = e.clientY; dvUrlBox.style.display = ""; dvUrlBox.style.left = (iX - 300) + "px"; dvUrlBox.style.top = 33 + "px"; } } 4)修改第二部分中的6): 添加当用户在对话框里填写了远程日志URL并点击确定按钮后,提交该URL给服务器的代码。将原来在文件 static/image/editor/editor_function.js 里添加的函数 downRemoteBlog 改为: function downRemoteBlog(url, includeComments) { edit_save(); var formObj = $("ttHtmlEditor"); var oldAction = formObj.action; formObj.action = "home.php?mod=spacecp&ac=upload&op=downremoteblog&blogurl=" + encodeURIComponent(url) + "&includecomments=" + includeComments; formObj.onSubmit = ""; formObj.target = "uploadframe"; formObj.submit(); formObj.action = oldAction; formObj.target = ""; } 5)修改第二部分中的7): 添加服务器对在日志编辑器里点击该按钮后提交的编辑器里的内容的处理。将原来在文件 source/include/spacecp/spacecp_upload.php 里添加的内容改为: if($_GET['op']=='downremoteblog') { if(submitcheck('blogsubmit') && helper_access::check_module('blog')) { $subject = $_GET['subject']; $string = $_GET['message']; $blogurl = $_GET['blogurl']; $doc = new DOMDocument; $doc->loadHTMLFile($blogurl); $docbase = $blogurl; foreach($doc->getElementsByTagName('base') as $base) { $docbase = $base->getAttribute('href'); } dom_rel2abs($doc, $docbase); $xpath = new DOMXPath($doc); $entries = $xpath->query('//h1[@class="ph"]'); foreach($entries as $entry) { $blogSubject = $entry->nodeValue; } $entries = $xpath->query('//div[@id="blog_article"]'); foreach($entries as $entry) { if(empty($blogContent)) $blogContent = get_inner_html($entry); } if($blogContent) { $subject = $blogSubject; $subject = str_replace(array("\r", "\n", "\r\n"), '', addcslashes($subject, '/"\\\'')); $string = $blogContent; if($_GET['includecomments']) { $commentCount = 0; // get comment count $entries = $xpath->query('//span[@id="comment_replynum"]'); foreach($entries as $entry) { $commentCount = $entry->nodeValue; } $string .= '<br><br><h3 class="ptn pbn bbs">' . lang('home/template', 'comment'); $string .= ' (' . $commentCount . lang('home/template', 'blog_replay') . ')</h3>'; $comments = ''; // entry page may not be the first page $nextPageUrl = get_first_page($blogurl, $docbase); // loop through all comment pages while ($nextPageUrl) { $doc = new DOMDocument; $doc->loadHTMLFile($nextPageUrl); dom_rel2abs($doc, $docbase); $xpath = new DOMXPath($doc); $entries = $xpath->query('//div[@id="comment_ul"]'); foreach($entries as $entry) { $comments .= preg_replace("/<span class=\"y xw0\">(.*?)<\/span>/is", "", get_inner_html($entry)); } $nextPageUrl = get_next_page($doc); } if ($commentCount && $comments) $string .= '<div class="xld xlda">' . $comments . '</div>'; } $string = str_replace(array("\r", "\n", "\r\n"), '', addcslashes($string, '/"\\\'')); print <<<EOF <script type="text/javascript"> parent.window.document.getElementById('subject').value = "$subject"; var f = parent.window.frames["uchome-ifrHtmlEditor"].window.frames["HtmlEditor"]; f.document.body.innerHTML = "$string"; </script> EOF; } exit(); } } 6)在文件 source/include/spacecp/spacecp_upload.php 里再添加三个上面用到的函数: function dom_rel2abs($doc, $docbase) { $imgs = $doc->getElementsByTagName('img'); foreach($imgs as $img) { $src = $img->getAttribute('src'); $img->setAttribute('src', rel2abs($src, $docbase)); } $as = $doc->getElementsByTagName('a'); foreach($as as $a) { $href = $a->getAttribute('href'); $a->setAttribute('href', rel2abs($href, $docbase)); } } function get_next_page($pageDoc) { $xpath = new DOMXPath($pageDoc); $entries = $xpath->query('//div[@class="pg"]/*'); $getnext = false; foreach($entries as $entry) { if ($getnext) { if ($entry->nodeName=='a') { return $entry->getAttribute('href'); } break; } if ($entry->nodeName=='strong') $getnext = true; } return NULL; } function get_first_page($blogurl, $docbase) { $doc = new DOMDocument; $doc->loadHTMLFile($blogurl); dom_rel2abs($doc, $docbase); $xpath = new DOMXPath($doc); $entries = $xpath->query('//div[@class="pg"]/*'); $firstpage = true; foreach($entries as $entry) { if ($entry->nodeValue=='1') { if ($firstpage) { return $blogurl; } if ($entry->nodeName=='a') { return $entry->getAttribute('href'); } } $firstpage = false; continue; } return $blogurl; } 代码下载: http://www.bian-wang.com/upload/txgz_import_image_and_blog_160408.zip

注:本文中的代码里的<符号如果后面的字符是a的话,在它们中间加了一个不应该有的空格,以避免Discuz在保存日志时自动改变日志内容。

发表评论 评论 (52 个评论)

回复 东风 2017-6-20 09:22 PM
天香公主: 你看你那张图片//cdn.studads.com/i//3/3078.jpg是否可以用下面的URL来放在你网站上?https://images.weserv.nl/?url=cdn.studads.com/i//3/3078.jpg
参见 https ...
这是个好办法,昨晚我试着给广告公司让他们支持https, 结果今早就实现了。
回复 天香公主 2017-6-20 08:55 AM
东风: 明白了,谢谢您,可以强制他们使用http吗?可能强制保存http,在https状态下浏览器会记录安全错误。两难。
你看你那张图片//cdn.studads.com/i//3/3078.jpg是否可以用下面的URL来放在你网站上?https://images.weserv.nl/?url=cdn.studads.com/i//3/3078.jpg
参见 https://stackoverflow.com/questions/3011222 里的讨论和 https://images.weserv.nl/
关键是要架座桥,当要显示原来那张图片时,由它去取图片,再以HTTPS的方式提供给用户。这座桥可以自己架(stackoverflow里的第一个回答),也可以用别人架好的桥梁(如images.weserv.nl)
回复 东风 2017-6-20 02:15 AM
天香公主: 东风兄好,我觉得和url2html无关。将//cdn.studads.com/i//3/3078.jpg解释成https://cdn.studads.com/i//3/3078.jpg而不是http://cdn.studads.com/i//3/3078.jpg ...
明白了,谢谢您,可以强制他们使用http吗?可能强制保存http,在https状态下浏览器会记录安全错误。两难。
回复 天香公主 2017-6-19 09:28 PM
东风: 谢谢!!我又有麻烦需要您帮忙了:

我在地址“https://beimeilife.com/arts/pets/”添加了测试广告, 但是不显示图片; 广告的图片地址是:“//cdn.studads.com ...
东风兄好,我觉得和url2html无关。将//cdn.studads.com/i//3/3078.jpg解释成https://cdn.studads.com/i//3/3078.jpg而不是http://cdn.studads.com/i//3/3078.jpg的原因是你的网页https://beimeilife.com/arts/pets/index.php用的是https,参见https://stackoverflow.com/questions/2018183https://stackoverflow.com/questions/8951423里的讨论
回复 东风 2017-6-19 06:40 PM
天香公主: 是的。有两种你没成功的可能原因:
1)你在点击了'下载远程图片'后没有等待足够长的时间就点击了'保存提交'。在点击了前一个按钮后,浏览器左上角会有个转圈的标 ...
谢谢!!我又有麻烦需要您帮忙了:

我在地址“https://beimeilife.com/arts/pets/”添加了测试广告, 但是不显示图片; 广告的图片地址是:“//cdn.studads.com/i//3/3078.jpg" 网站直接解释为"https://cdn.studads.com/i//3/3078.jpg" 但是这个图片只在http下工作; 我在想是否与我们以前安装的url2html函数有关; 也不知道怎么改;麻烦您有空给看看
回复 天香公主 2017-4-15 09:55 PM
东风: 你确信是在beineilife.com测试的?我改为https 也是不行,可能是jqury 问题?
是的。有两种你没成功的可能原因:
1)你在点击了'下载远程图片'后没有等待足够长的时间就点击了'保存提交'。在点击了前一个按钮后,浏览器左上角会有个转圈的标志代表正在下载,要等它停下后才能点击后一个按钮。
2)你要下载的远程图片的地址不是以常见图片扩展名结尾的。
我提供的这个日志功能模仿了DZ提供的文章里的相应功能,所以也继承了那里就有的这两个限制
回复 东风 2017-4-15 09:21 PM
天香公主: 关于"下载远程图片",我在你那试了试,如果远程图片的地址是以http://开头的,又以常见的图片文件后缀结尾的话,这个功能应该还是能用的,作为测试,你可以试 ...
你确信是在beineilife.com测试的?我改为https 也是不行,可能是jqury 问题?
回复 天香公主 2017-4-14 06:41 PM
东风: 天香,又来叨扰你了,因为使用https, 博客里图片和swf在http下不显示,我想推荐下载远程图片,结果一测试不工作了,你有时间帮看看,还有上面的在编辑器里下载图 ...
关于"下载远程图片",我在你那试了试,如果远程图片的地址是以http://开头的,又以常见的图片文件后缀结尾的话,这个功能应该还是能用的,作为测试,你可以试下 http://blog.sinovision.net/home/space/do/blog/uid/492162/id/310913.html

但是如果远程图片的地址是以https://开头的,那的确有问题。解决的办法是我博文中 1。导入图片 里的3)提到在文件 source/include/spacecp/spacecp_upload.php 里要加的代码里有一句
    if(preg_match('/^(http:\/\/|\.)/i', $imageurl)) {
要改成
    if(preg_match('/^(https?:\/\/|\.)/i', $imageurl)) {
博文中已改。

这句话其实是从source/include/portalcp/portalcp_upload.php 里抄来的 ,要想让文章里的"下载远程图片"功能也支持以https://开头的远程图片,就需要在 source/include/portalcp/portalcp_upload.php 也做同样的修改。
回复 东风 2017-4-14 03:53 PM
天香,又来叨扰你了,因为使用https, 博客里图片和swf在http下不显示,我想推荐下载远程图片,结果一测试不工作了,你有时间帮看看,还有上面的在编辑器里下载图片按钮,能否添加对swf文件的支持,那样动画效果就可以显示了。谢谢香^_^
回复 天香公主 2016-3-21 11:57 PM
忆江南: 补充:不必抓Timestamp。估计大多数使用者是转发,而不是存档,所以不需要Timestamp。
同意,我也是这么想的。这个功能供在自己博文里插入其它博文的内容而设的。如果是要原封不动的搬博文包括timestamp,就用那个博文搬家插件搬好了。
回复 忆江南 2016-3-21 11:48 PM
补充:不必抓Timestamp。估计大多数使用者是转发,而不是存档,所以不需要Timestamp。
回复 忆江南 2016-3-21 11:11 PM
天香公主: 我三种浏览器都试了也没发现问题

我查了你的文件和我的一致。又将你的五个文件加上我的七个文件中其余两个覆盖了一个全新的3.1也没出现问题。 ...
用Firefox试了一下,没问题,但如果能把Timestamp也抓过来就最好。
回复 忆江南 2016-3-21 10:48 PM
天香公主: 明白了,你要高兴的话可以将插件文件夹里的文件discuz_plugin_txgz_blog_importer_SC_UTF8.xml 里的那些词改换即可。
O.K.
回复 天香公主 2016-3-21 10:44 PM
忆江南: 没什么不对的,就是略有不一致。我把那个链接的文字改成了”引入博客“,你的插件里还是”引入日志“,给人的感觉可能是单篇日志。 ...
明白了,你要高兴的话可以将插件文件夹里的文件discuz_plugin_txgz_blog_importer_SC_UTF8.xml 里的那些词改换即可。
回复 忆江南 2016-3-21 10:39 PM
天香公主: 哦,那我就不在那个日志搬家的插件添加搬评论的功能了。我看过了,现在它在帮助栏目下很好。
我没觉得有要改的文字,还是你发觉有什么不对的了? ...
没什么不对的,就是略有不一致。我把那个链接的文字改成了”引入博客“,你的插件里还是”引入日志“,给人的感觉可能是单篇日志。
回复 天香公主 2016-3-21 10:31 PM
忆江南: 不,是我自己搞混了。
导入整个博客的时候我并不需要同时导入评论的功能,也没这个必要。你不用去试了,我并不打算加入这样一个很复杂的功能。
需要的只是把那个 ...
哦,那我就不在那个日志搬家的插件添加搬评论的功能了。我看过了,现在它在帮助栏目下很好。
我没觉得有要改的文字,还是你发觉有什么不对的了?
回复 忆江南 2016-3-21 10:01 PM
天香公主: 哦 。关于日志搬家插件的问题,我估计你是把新的zip直接解压到插件文件夹了。能不能先清空文件夹里的内容,再把新的zip解压到那?如果还是同样error,在应 ...
对,没有做这一步。现在都好了。辛苦你了。
回复 忆江南 2016-3-21 09:48 PM
天香公主: 我这里改的是在日志编辑状态下导入日志和评论,所以是单篇导入。导航栏里那个链接提供的是导入多篇日志和整个博客的功能,我估计你是想要在那里加入同时导入评论 ...
不,是我自己搞混了。
导入整个博客的时候我并不需要同时导入评论的功能,也没这个必要。你不用去试了,我并不打算加入这样一个很复杂的功能。
需要的只是把那个链接的文字改一下,这个我来弄。但你可能需要修改一下插件中的文字。
回复 天香公主 2016-3-21 12:29 AM
忆江南: 我现在知道了,我们讲得不是同一个键。我说的是导航栏-》帮助-》日志导入。
我明天再试发表日志里的那个键。
我这里改的是在日志编辑状态下导入日志和评论,所以是单篇导入。导航栏里那个链接提供的是导入多篇日志和整个博客的功能,我估计你是想要在那里加入同时导入评论的功能,对吧?我过些天试试
回复 天香公主 2016-3-21 12:19 AM
忆江南: 我现在知道了,我们讲得不是同一个键。我说的是导航栏-》帮助-》日志导入。
我明天再试发表日志里的那个键。
。关于日志搬家插件的问题,我估计你是把新的zip直接解压到插件文件夹了。能不能先清空文件夹里的内容,再把新的zip解压到那?如果还是同样error,在应用中心->插件里先卸载该插件,再重新安装启用。
123下一页

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|Archiver|彼岸网  

Powered by Discuz! X3.1 © 2001-2014 Comsenz Inc.
GMT-4, 2017-11-24 06:26 PM , Processed in 0.066425 second(s), 21 queries.

返回顶部