Drupal 7:一个节点多个页面

发布于 2024-12-12 18:27:54 字数 259 浏览 0 评论 0原文

我们在 Drupal 7 网站上列出了活动,但我们希望我们的用户能够通过简单的表单注册这些活动。我们使用 Pathauto 为使用以下模式的事件生成 URL 别名:events/[node:title]。我们希望有另一个别名为 events/register/[node:title] 的页面来显示注册表单。我们还想使用 tpl.php 文件来创建模板,就像我们对网站的其余部分所做的那样。

关于我们如何实现这一目标有什么想法吗?谢谢。

We list events on our Drupal 7 site, but we'd like our users to be able to register for these events via a simple form. We're using Pathauto to generate URL aliases for events using the following pattern: events/[node:title]. We would like to have another page with the alias events/register/[node:title] which would present the registration form. We would also like to use tpl.php files for creating the templates, like we do for the rest of the site.

Any ideas on how we might accomplish this? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡写薰衣草的香 2024-12-19 18:27:54

您可以尝试注册模块。它仍在开发中,但有超过 7000 个网站正在使用它:

You can try the Signup module. It's still in development, but over 7000 sites are using it:

苦妄 2024-12-19 18:27:54

我会通过 node.tpl.php 文件在事件/页面上放置一个注册按钮。如果您的所有节点都不可注册,那么您可以通过使用 $node->nid 获取 $nid 来检查节点,并在 url_alias 表上运行 db_query 以查看当前节点是否符合条件。

<?php
$nid = $node->nid;
$result = db_query('SELECT alias FROM {url_alias} WHERE source = :source,
  array(':source' => 'node/'.$nid));
foreach ($result as $r) {
  $alias = $r->alias;
}
if (strpos($alias, 'events')) {
  ?> <input... or <button...

让您的注册按钮重定向到 events/register/$node->title 页面并确保您通过了该节点。从这里开始有几种不同的方法。如果您对此部分有疑问,请打开另一个线程。

I would put a register button on the event/ page via the node.tpl.php file. If all your nodes are not registerable, then you can check the node by getting the $nid with $node->nid and run a db_query on the url_alias table to see if current node qualifies.

<?php
$nid = $node->nid;
$result = db_query('SELECT alias FROM {url_alias} WHERE source = :source,
  array(':source' => 'node/'.$nid));
foreach ($result as $r) {
  $alias = $r->alias;
}
if (strpos($alias, 'events')) {
  ?> <input... or <button...

Have your register button redirect to events/register/$node->title page and make sure you pass the node. There's a few different ways to go from here. If you have questions about this part open another thread.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文