退出Magento填充编辑框

这应该是相当直接的问题,但无法找到如何去做。在前端,我有一个表单,其中包含一些编辑框或input-text字段。在其中一个用户将写/粘贴博客网址。当用户退出箱子时,我想:退出Magento填充编辑框

  1. 抓住此URL并从该博客解析/搜索/获取与OpenGraph protocol相关的标记(如果存在)。如果没有这种标签,则会使用通常的title和相关标签。
  2. 然后用变量的值来填补其他编辑领域目前的形式,标题,注释,说明,图像等

如何能够将这些动作可以完成,AJAX可能?加上jQuery?或者其他解决方案? 现在我已经搜查,这里有一些链接,我想可能是有用的:

  • Need to display user's choices realtime in magento
  • Using Basic AJAX calls within Magento
  • Magento and AJAX.Updater
  • Refreshing DIV content with AJAX

我有充分的工作模块,几种不同的模型,布局,控制器,后端管理,几个前端功能等等我甚至不知道从哪里开始,哪些文件需要修改,以及要在表单上添加什么内容。

EDIT

管理来完成第二点,从使用XMLHttpRequest Ajax请求填使用应答其他输入文件。这里是不同的文件,以防万一有人有不同的解决方案或一些建议。不会显示所有的代码,因为它会太长。

PHTML文件:

<div id="blog_link_block"> 

<input class="input-text required-entry" onchange="showHint(this.value)"

name="blog_link" id="blog_link_field" type="text" style="width: 210px;"

value="" />

</div>

<div>

<label for="title_field"><?php echo $this->__('Title'); ?>

<span class="required">*</span>

</label><br />

<input class="input-text required-entry" name="title" id="title_field" type="text"

style="width: 450px;" value="" />

</div>

<script type="text/javascript">

function showHint(str)

{

<?php $block = Mage::getBlockSingleton('blogtest/product_view');

$temp = $block->getUrl('blogtest/blogtagsajax/index');?>

if (str.length==0)

{

document.getElementById("title_field").innerHTML = "";

return;

}

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp = new XMLHttpRequest();

}

else

{// code for IE6, IE5

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange = function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)

{

document.getElementById("title_field").value = xmlhttp.responseText;

}

}

xmlhttp.open("GET","<?php echo $temp ?>?q="+str,true);

xmlhttp.send();

}

</script>

布局文件:

<?xml version="1.0" encoding="UTF-8"?> 

<layout version="0.1.0">

<blogtest_blogtagsajax_index>

<reference name="root">

<remove name="root"/>

</reference>

<block type="blogtest/product_ajax" name="product.ajax" output="toHtml" />

</blogtest_blogtagsajax_index>

</layout>

控制器:

<?php 

class Dts_Blogtest_BlogtagsajaxController extends Mage_Core_Controller_Front_Action {

public function indexAction() {

$this->loadLayout();

$this->renderLayout();

}

}

PHP文件来处理该请求:

<?php 

class Dts_Blogtest_Block_Product_Ajax extends Mage_Core_Block_Template {

public function __construct(){

echo self::myFunc();

}

public function myFunc() {

$a[]="Anna";

$a[]="Brittany";

$a[]="Cinderella";

$a[]="Diana";

//get the q parameter from URL

$q=$_GET["q"];

//lookup all hints from array if length of q>0

if (strlen($q) > 0)

{

$hint="";

for($i=0; $i<count($a); $i++){

if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q)))){

if ($hint==""){

$hint=$a[$i];

}

else{

$hint=$hint." , ".$a[$i];

}

}

}

}

if ($hint == ""){

$response="no suggestion";

}

else{

$response=$hint;

}

//output the response

return $response;

}

}

回答:

要回答的第一个问题使用OpenGraphNode图书馆尝试过,但卡住了with some errors。

然后我发现这个question/answer right here on SO和所有问题都没有了。在接受的答案上提出的功能完美地与og:标签一起工作。这里是我的修改版本:

function file_get_contents_curl($url) 

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

public function myFunc() {

// get the q parameter from URL

$q = $_GET["q"];

$html = self::file_get_contents_curl($q);

//parsing begins here:

$doc = new DOMDocument();

@$doc->loadHTML($html);

$nodes = $doc->getElementsByTagName('title');

$title = $nodes->item(0)->nodeValue;

$metas = $doc->getElementsByTagName('meta');

for ($i = 0; $i < $metas->length; $i++){

$meta = $metas->item($i);

if($meta->getAttribute('name') == 'og:title')

$title = $meta->getAttribute('content');

if($meta->getAttribute('name') == 'og:description')

$description = $meta->getAttribute('content');

if($meta->getAttribute('name') == 'keywords')

$keywords = $meta->getAttribute('content');

}

$title = trim($title);

if ($title == ""){

$response = "no title";

}

else{

$response = $title;

}

//output the response

return $response;

}

以上是 退出Magento填充编辑框 的全部内容, 来源链接: utcz.com/qa/263785.html

回到顶部