![]() |
1
49
我正在寻找一种通过Ajax提取节点数据的方法,并为Drupal6提供了以下解决方案。在实现下面的更改之后,如果在URL中添加ajax=1(例如mysite.com/node/1?Ajax=1),您只会得到内容,而不会得到页面布局。 在您的主题的template.php文件中:
然后在主题目录中创建page-ajax.tpl.php,内容如下:
|
![]() |
2
19
根据Ufonion实验室的答案,我可以通过实现这两种方法完全删除Drupal7中页面内容周围的所有HTML输出。
然后我在我的主题中添加了两个模板:
和
现在,当我打开一个节点页面时,例如
http://example.com/node/3
,我像往常一样看到完整的页面,但是当我添加响应类型参数时,例如
http://example.com/node/3?response_type=embed
我
只有
得到
|
![]() |
3
7
我知道这个问题已经被回答了,但是我想添加我自己的解决方案,它使用费城网页设计(pwd)答案的元素,并使用hook_theme_registry_alter,正如欧文建议的那样。使用此解决方案,可以直接从自定义模块加载模板。 首先,我将raw.tpl.php添加到模块中新创建的“templates”文件夹中。raw.tpl.php的内容与pwd的page-ajax.tpl.php相同:
接下来,我在模块中以与pwd相同的方式实现了hook_预处理页面(除了我修改了$_get参数并更新了模板文件引用:
最后,我实现了hook-theme-registry-alter,将模块的“templates”目录添加到主题注册表(基于 http://drupal.org/node/1105922#comment-4265700 ):
现在,当我补充?raw=1到视图的url路径,它将在我的模块中使用指定的模板。 |
![]() |
4
5
对于可能访问此页面的其他人,如果您只是使用标准回调(不一定是视图),这很容易。在回调函数中,不要返回要在页面内呈现的代码,而是使用“print”函数。 例如:
干杯! |
![]() |
5
3
另一种我觉得非常方便的方法是添加一个带有不返回字符串的页面回调函数的菜单项: 例子:
——更新
最好用一下
|
![]() |
6
2
嘿,还有另一种方法: 1)下载并安装VIEWS奖励包( http://drupal.org/project/views_bonus ) 2)创建一个视图显示“feed”,并使用样式“xml”(或者您认为更适合您需要的东西)。 3)如果您对标准XML输出不满意,可以通过调整视图的模板来更改它。请检查“主题”设置,以获取有关此特定视图的可选模板名称的建议(这样您仍然可以保留默认的XML输出以供将来使用)。 祝你好运! //Johan Falk,Nodeone,瑞典 |
![]() |
7
2
基于费城网页设计的答案(谢谢)和一些谷歌搜索( http://drupal.org/node/957250 )这是我工作的地方 德鲁巴7 要在不显示模板的情况下显示所选页面,请执行以下操作:
在D7中,函数名中必须有主题的名称_,而不是phptemplate。另外,我必须在php变量中用文件名加上两个下划线,但是实际的模板文件名需要两个破折号。-- 第--vlozeno.tpl.php页内容:
然而,输出仍然有很多包装和主题的CSS引用。不知道如何输出完全未选边的数据… |
![]() |
8
2
假设你在Drupal6,最简单的方法是
ps-确保清除缓存(at/admin/settings/performance)以查看此工作。 |
![]() |
9
1
可能有很多方法可以解决这个问题,但是,“最简单的”可能只是设置自己的自定义主题,让page.tpl.php为空,或者一些随机的div
这个方法基本上只允许node.tpl.php显示(或任何Drupal的窗体视图等等),并且是避免修改核心的一个简单方法,或者必须更改主题注册表以避免首先显示page.tpl.php。 编辑 见评论
好吧,我稍微讨论了一下视图,它看起来像是接管并构造了自己的“node.tpl.php”(从某种意义上说),用于在“page.tpl.php”中显示。乍一看,我的直觉是
当您查看一个视图页面时,您可以访问这里的成堆信息,以及page.tpl.php路径/文件。因此,我会做如下的事情:
这将允许您在当前主题中使用“override_page.tpl.php”模板,在该模板中可以删除任何您想要的内容(作为上面的第一个答案)。 几件事:
|
![]() |
10
1
我喜欢Drupal模块。但是,这是另一种方式。 将主题文件夹中的page.tpl.php复制到名为page-view name.tpl.php的新文件中,其中view name是视图的机器可读名称。 然后编辑page-viewname.tpl.php以适应。 |
![]() |
11
1
也有 http://drupal.org/project/pagearray 这是一个通用的解决方案… 另外,@scott evernden的解决方案是一个跨站点脚本(xss)安全漏洞。别那么做。阅读drupal.org上关于如何以安全方式处理文本的文档 http://drupal.org/node/28984 |
![]() |
12
1
一种显示特殊内容类型的内容的简单方法,您希望不显示
添加一个
|
![]() |
13
0
如果我理解您的问题,您希望节点包含页面的所有HTML,从doctype到</html>。我要做的是为这些节点创建一个内容类型——“fullhtml”作为其机器可读的名称——然后为它创建一个名为node-fullhtml.tpl.php的节点模板。您不能只是转储节点的内容,因为它们已经经过了HTML清理。node.fullhtml.tpl.php字面意思是:
然后您需要一种方法来覆盖标准page.tpl.php。我 认为 您可以在page.tpl.php的顶部检查$node的内容类型,如果是fullhtml,就退出。或者,在node-fullhtml.tpl.php中设置page.tpl.php将检查的全局变量。 我不是Drupal专家,但我就是这么做的。我是在胡说八道,所以要注意细节上的恶魔。 |
![]() |
14
0
我看到你已经把自己变成了一个模块,所以这可能不再有帮助,但是让一个视图公开一个RSS提要是相当容易的,这可能是获取内容的一种更容易的方法,特别是如果你想把它包含在一个不同的站点上。 |
![]() |
15
0
在D7上可以使用 menu_execute_active_handler
|
![]() |
16
0
杰罗恩的回答是,我玩过之后做了什么。我有一个Drupal7网站。
|
![]() |
17
0
我的第一个回答只允许我在Web浏览器中调用节点时显示它。然而,最终目标是使用iframe将drupal节点嵌入到第三方站点中。 自从Drupal发行以来 Core 7.50 iframe is by default blocked to prevent Clickjacking 要仅使节点成功嵌入第三方站点,还需要覆盖X帧默认设置。在template.php中添加以下内容之后,一切都开始工作了
|
![]() |
Karlo · PHP Sqlite PDO最新版本 4 月前 |
![]() |
Malte · 检查远程服务器上是否存在文件(使用PHP)[关闭] 4 月前 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 4 月前 |