替换带有斜杠的URL查询字符串,以获取清洁器URL -- 7 领域 和 path-aliases 领域 drupal 相关 的问题

Replace URL query string with slash for a cleaner URL


1
vote

问题

中文

我已经创建了一个带有正文和多个字段的新内容类型。

我使用以下查询字符串

  ?article=referral-partners   

根据物品值的值更改节点的身体内容。

完整的URL看起来如此(我的路径别名我创建了):

  http://localhost/userguides/contacts/my-first-user-guide?article=referral-partners   

我想清理网址,看起来像这样:

  http://localhost/userguides/contacts/my-first-user-guide/article/referral-partners   

如何用drupal 7做到这一点?

英文原文

I have created a new content type with a body and multiple fields.

I use the following query string

?article=referral-partners 

to change the content of the node's body according to the value of the value of article.

The full URL looks like this (with my path alias I created):

http://localhost/userguides/contacts/my-first-user-guide?article=referral-partners 

I would like to clean up the url to look like this instead:

http://localhost/userguides/contacts/my-first-user-guide/article/referral-partners 

How can I do this with Drupal 7?

     
         
         

回答列表

0
 
vote
vote
最佳答案
 

除非有机会,您的URL将要更改很多,只要"深度" 转到,您可以使用 arg()访问路径中的任何元素。

如果您的路径为 userguides/contacts/my-first-user-guide/article/referral-partners ,您将使用这样的内容...

  $article = arg(4);     // $article is set to 'referral-partners'   

...然后只检查$文章的值。如果代码可能会在您不希望的节点或页面上运行,那么您也可能想要检查其他"args" 以进行安全。通常,只要初始路径是真实的,就会让您在各种额外路径元件上释放各种额外路径元素,而无需通过额外的箍。

 

Unless there's a chance your URL is going to change a lot as far as "depth" goes, you can use arg() to access any element in the path.

If your path is userguides/contacts/my-first-user-guide/article/referral-partners, you would use something like this...

$article = arg(4);     // $article is set to 'referral-partners' 

... and then just check the value of $article. If the code can potentially be run on nodes or pages you don't want it to, then you'd also probably want to check other "args" for safety. Generally Drupal will let you tack on all kinds of extra path elements without needing to go through extra hoops as long as the initial path is a real one.

 
 
   
   
0
 
vote

您可以在自定义模块上使用类似于查询字符串的重定向的内容。

  /*  * custom redirect with query string  * module implements hook_init()  */  function MyModule_init() {   if ($_GET['q'] == 'userguides/contacts/my-first-user-guide/article/referral-partners') {     drupal_goto('userguides/contacts/my-first-user-guide', array('query' => array('article' => 'referral-partners')));   } }   
 

You can use something like this on your custom module for the redirects with the query strings.

/*  * custom redirect with query string  * module implements hook_init()  */  function MyModule_init() {   if ($_GET['q'] == 'userguides/contacts/my-first-user-guide/article/referral-partners') {     drupal_goto('userguides/contacts/my-first-user-guide', array('query' => array('article' => 'referral-partners')));   } } 
 
 
0
 
vote

我能够通过使用模块 subpathauto

来实现这一点

而不是使用这样的查询参数: ?文章=推荐合作伙伴 我只是用这样用它们 / my-arg-i-walk 我能够使用arg(2)在我的模块中获得它们。

 

I was able to accomplish this by using the module Subpathauto

Instead of using query parameters like this: ?article=referral-partners I just use them like this /my-arg-i-want and I am able to get them in my module using arg(2).

 
 

相关问题

1  如何从搜索中加载同一页面上的内容  ( How can i load content on the same page from a search ) 
所以想法是在同一页面上加载搜索结果。我被告知要调查solr,但看起来我们有类似于solr的东西,我们只需要知道如何将新页面内容加载到我们的Drupal网站中。替换为iframe。 ...

1  如何在EntityForm / Hook_Form_alter中添加字段  ( How can i add a field in entityform hook form alter ) 
我正在尝试在hook_form_alter中添加一个字段。在EntityForm的情况下,在此挂钩中添加字段的正确方式是什么? 我试图用这种方式添加: $form['leadname'] = array( '#type' => 'hidden', '#value' => 'abc' ); 但...

0  限制每个匿名用户的内容创建量  ( Limit amount of content creation per anonymous user ) 
在我的网站中,匿名用户可以访问创建一种类型的内容和站点存储的所有数据是用户IP地址。 如何限制让我们说。 2个节点在12小时内创建每次IP?当达到限制时,它们会得到一些消息而不是创建另一个节点,直到12小时范围通过? 因为现在一些匿名用户只是滥用和垃圾签发默认情况下的节点创建,这是无限的。 更新:我尝试使用节点限制,...

0  更改像“您刚刚使用过一次登录链接”的Drupal标准消息  ( Change drupal standard messages like you have just used your one time login lin ) 
我遇到了更改Drupal默认消息的问题。 例如当您注册时,您收到一封带有一次性登录链接的电子邮件(我知道如何更改此电子邮件文本)以及点击链接时,您将收到消息 这是用户名的一次性登录,将在...中过期。 单击此按钮可登录站点并更改密码。 此登录只能使用一次。 但我如何更改此文本?另一个例子是: 您刚刚使用了您的...

0  STYLE VIEWS行布局在结果数量上删除  ( Style views row layout debending on result count ) 
如何样式视图行布局在结果数量上删除? 如果视图有4个结果,则应放在两行和两列上的项目: | | | | 当观点有超过4个项目时 - 例如: | | | | | | ...

0  如何将用户重定向在新的节点通过ajax以先进的形式块Drupal 7保存?  ( How to redirect user when new node save by ajax in advance form block drupal 7 ) 
我在drupal 7中有一个网站。我使用了高级表单块模块来创建添加表单块。高级表单块模块为表单创建块以编辑和添加新内容。 Ajax提交保存的所有节点。 我想在新节点通过此表单保存时重定向用户。我在我的钩子中使用了规则并表单[#redirect]方法,但这些不起作用。 任何人都可以帮助我弄清楚这个吗? 感谢 ...

0  如何根据主键的存在条件添加/更新记录?  ( How add update a record conditionally based on existence of primary key ) 
我有一个结构的表: 表 ( Record_1 int, Record_2 int, 主键(Record_1) ); 我想根据其存在写入/更新记录。 我被告知要使用drupal_write_record(),但是我必须知道记录是否已存在。 在我的情况下,我不知道它的存在。 如何这样做? ...

1  Drupal视图表与交替列的列  ( Drupal views table with alternating amount of columns ) 
我正在尝试使用交替列的列进行视图。第一行应该只有1列,而第二行需要2个COLUM,第三列和第四个COUMUMNS。显示的字段是某个内容类型的标题。 如果可能,我希望能够使用表格或网格。 目前我正在使用未格式化的列表,并使用CSS来以我想要的方式显示它,但是它不再相当响应。 我该怎么办? 前。 标题1 标题2 i标题...

1  CSRftoken:没有注销用户的remet  ( Csrftoken reget without logout user ) 
我有一个网站,其中我使用angularjs连接到服务模块路径。 现在,我们知道我需要将CSRF令牌发送(为每个Put Connection)到标题请求中,此令牌链接到用户的会话ID。 我的问题是,当前有些用户登录到Drupal(我可以看到身份验证的用户的所有内容),但是当我发送一个请求时,Drupal将我返回无效C...

1  如何加载面板页面的所有上下文?  ( How to load all contexts of a panels page ) 
面板ajax选项卡模块是加载窗格(Minipanel窗格)通过ajax的面板页面: $pane = panels_mini_block_view($name); echo $pane['content']; 这将获取MiniPanel上定义的上下文。 我想拥有的是主机面板页面上定义的上下文。我有一个Pag...

0  创建节点时添加多个共同作者  ( Add multiple co authors while creating node ) 
我有内容类型提案。现在我想拥有多个节点的共同作者。我想给作者有机会添加这样的用户: 用户必须是实体引用。我知道有一个模块节点访问用户参考,但我如何拥有一个实体引用的集合捆绑了"共同作者" 。该模块不适用于现场收集模块。 有人遇到过这个,是否有一个模块或简单的解决方案? ...

1  来自uuid hrefs的反向链接  ( Backlinks from uuid hrefs ) 
目标是Hack Core,以便搜索模块在节点内容中从UUID-Link Hrefs填充 search_node_links 表。 计划方法是修改Core search.module中 search_index 的解析功能。 所针对的代码部分是 search.module 的第633-643行。 if (preg...

2  如何在背景中关闭叠加点击  ( How to close overlay on background click ) 
请帮我在背景中封装封闭。我尝试了以下代码,但它不起作用: jQuery('.overlay-modal-background').live('click', function(e) { Drupal.overlay.close(); }); ...

1  编辑“默认前页”基本URL  ( Editing the default front page base url ) 
我从另一台服务器的图像重建了新服务器。我想将它用于新域,但我发现新服务器继续重定向到原始服务器的域。 进入新服务器的Drupal管理控制台,我看到域(即, https://mysite.com/)在配置下是不可分辨诚的。系统>网站信息>首页>默认前页。 我尝试在/etc/drupal/7/sites...

2  从模块传递数组以在模板中呈现  ( Pass array from module to render in template ) 
我在该模块中有一个模块名称mysite mysite。我的函数名为mysite_preprocess_panels_pane。具有阵列,我想呈现此阵列Inn panel.tpl.php。我的代码不起作用。请问,谢谢。 function mysite_preprocess_panels_pane(&$variabl...

0  图像样式规模和裁剪不格式化  ( Image style scale and crop not formatting right ) 
我有一个规模和裁剪图像样式,但我必须将它移动到代码。所以,重新创建它,我的代码是: function mymodule_image_default_styles() { $styles = array(); $styles['mymodule_thumb'] = array( '...

0  布局详细信息节点+ CKEDITOTER布局  ( Layout detail node ckeditor layout ) 
当我创建这样的内容类型的节点时: 我可以添加图像,段落,......。但它在节点的详细信息页面上看起来如此: 没有图像,没有段落,......这可能是这个问题? 我正在使用过滤的HTML文本格式。当我检查段落的HTML时,没有图像,没有。只是文字...... 这些是我的上下文过滤器的设置过滤了HTML:...

1  如何以编程方式添加类以查看块  ( How to add class to view block programmatically ) 
我需要添加类以编程方式查看块,但无法找到工作方式。我的视图格式是未格式化的列表。 我在我的template.php中有这个: function theme_preprocess_block(&$variables){ // Add arbitrary class to specific block ...

0  如何在我的模块中注册Image_style主题函数,该函数仅在我的主题模板中工作?  ( How can i register a image style theme function in my module which only works in ) 
有没有办法告诉Drupal我的模块具有一个主题功能,通常只在我的主题中工作? 如果我在我的主题的template.php中写入: function mytheme_image_style($variables) { // Determine the dimensions of the styled imag...

5  使用规则模块自动将内容发布到LinkedIn帐户  ( Using rules module to auto post the content to linkedin account ) 
我正在使用drupal 7.我使用了 feeds 模块从RSS内容。所以我可以从RSS源中获取内容。现在 feed 内容类型随着RSS提供内容自动保存。所以现在我想自动发布 feeds 内容到Twitter,linkedin和facebook.i使用 Twitter 模块。 所以我可以自动将内容用规则模块到Face...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.