如何通过URL别名获得分类? -- 7 领域 和 taxonomy-terms 领域 和 uri 领域 drupal 相关 的问题

How to get taxonomy by URL alias?


4
vote

问题

中文

我有一个词汇表,其中 6。类别分类学期。分类页面有一个像你的网址 www.example.com/foo/6-class/bar和我找不到与以下代码的分类法。

  $grade = arg(2); $term = taxonomy_get_term_by_name($grade)   

当我使用字符串(例如 6.类)时,但不是 arg(2) 。如何使用此URL别名获得正确的分类物?问题可能是,它是一个公开的过滤器,没有上下文过滤器。但我不能改变这个事实。

我都没有通过以下代码获取源路径。

  drupal_lookup_path('source', $_GET['q']); drupal_lookup_path('alias', current_path());   
英文原文

I have a grade vocabulary with a 6. Class taxonomy term. The taxonomy page have an URL like www.example.com/foo/6-class/bar and I can't find the taxonomy with the following code.

$grade = arg(2); $term = taxonomy_get_term_by_name($grade) 

It works when I use a string (e.g. 6. Class), but not with arg(2). How can I get the correct taxonomy with this URL alias? Problem might be, that it is a exposed filter and no contextual filter. But I can not change this fact.

Neither I can get the source path with the following code.

drupal_lookup_path('source', $_GET['q']); drupal_lookup_path('alias', current_path()); 
        
 
 

回答列表

3
 
vote
vote
最佳答案
 

我知道这是一个非常古老的问题,但似乎尚未得到解答。 这个Drupal 7个片段将帮助您加载分类学术语,但您需要知道它所属的词汇的名称,让我们说这是"位置" 。 前任。 www.example.com/foo/6-class/bar

  $term_path=drupal_get_normal_path('position/'.arg(1)); $tid = basename($term_url); $term = taxonomy_term_load($tid);   

如果你知道你的网址是你的分类学期的别名,只需使用

  $term_path=drupal_get_normal_path(current_path()); $tid = basename($term_url); $term = taxonomy_term_load($tid);   

带源和URI方法的Drupal_lookup_path对您不起作用,因为可能该路径不是别名,或者至少不适合您的分类物。

希望这有助于某人。

 

I know this is a pretty old question but seems unanswered yet. This Drupal 7 snippet will help you to load a taxonomy term but you need to know the name of the vocabulary it belongs to, lets say it is 'position'. Ex. www.example.com/foo/6-class/bar

$term_path=drupal_get_normal_path('position/'.arg(1)); $tid = basename($term_url); $term = taxonomy_term_load($tid); 

If you know your url is an alias to your taxonomy term, just use

$term_path=drupal_get_normal_path(current_path()); $tid = basename($term_url); $term = taxonomy_term_load($tid); 

The drupal_lookup_path with source and uri approach did not work for you because probably that path is not an alias, or at least not for your taxonomy.

Hope this helps someone.

 
 
2
 
vote

我在Drupal 8中工作,无论出于什么原因,我无法获得以上的任何解决方案来为我工作。以下是我最终使用的是使用术语ID获取URL。必须更好的方式做到这一点,我相信并非所有这些选项都是必需的,但我希望这有助于某人。

  function tudakozo_page_callback() {   $build = array();    // Render your two forms here.   $build['form_one'] = drupal_get_form('tudakozo_nevszerint_form');   $build['form_two'] = drupal_get_form('tudakozo_second_form');    return $build; } 0  
 

I was working in Drupal 8 and for whatever reason I couldn't get any of the above solutions to work for me. Below is what I ended up using to get the url with the term id. There must better ways of doing this and I'm sure that not all of these options are required, but I hope this helps someone.

$term_url = \Drupal\Core\Url::fromRoute('entity.taxonomy_term.canonical', ['taxonomy_term' => $term->tid->value], ['absolute' => TRUE])->toString() 
 
 
1
 
vote

function tudakozo_page_callback() { $build = array(); // Render your two forms here. $build['form_one'] = drupal_get_form('tudakozo_nevszerint_form'); $build['form_two'] = drupal_get_form('tudakozo_second_form'); return $build; } 1 将返回分类学术语的术语ID,而不是名称,因为路径将是 function tudakozo_page_callback() { $build = array(); // Render your two forms here. $build['form_one'] = drupal_get_form('tudakozo_nevszerint_form'); $build['form_two'] = drupal_get_form('tudakozo_second_form'); return $build; } 2

您已经为 99888776613 函数的术语页面添加了一个别名,因为它读取原始路径而不是别名路径。

您使用的函数使用分类名称作为参数。但是你传递的是术语ID。因此,如果您使用 function tudakozo_page_callback() { $build = array(); // Render your two forms here. $build['form_one'] = drupal_get_form('tudakozo_nevszerint_form'); $build['form_two'] = drupal_get_form('tudakozo_second_form'); return $build; } 4 然后,您将在返回的术语对象中获取有关该术语的详细信息。

在此查看文档: https://api.drupal.org/api /drupal/modules!taxonomy.module/function/taxonomy_term_load/7

希望这有帮助。 :)

 

arg(2) will return the term id of the taxonomy term not the name because the path will be taxonomy/term/[tid].

You have added an alias for the term pages which the arg() function doesn't read as it reads the original path not the aliased path.

The function that you are using with take the taxonomy name as the argument. But what you are passing is the term id. So if you use taxonomy_term_load(arg(2)) then you will get details about the term in the returned term object.

Check out the documentation here: https://api.drupal.org/api/drupal/modules!taxonomy!taxonomy.module/function/taxonomy_term_load/7

Hope this helps. :)

 
 
         
         
1
 
vote

从URL获得分类学术语的最简单方法是

  function tudakozo_page_callback() {   $build = array();    // Render your two forms here.   $build['form_one'] = drupal_get_form('tudakozo_nevszerint_form');   $build['form_two'] = drupal_get_form('tudakozo_second_form');    return $build; } 5  
 

The most easy way to get taxonomy term from url is

$term = menu_get_object('taxonomy_term', 2); 
 
 

相关问题

0  注册后如何将新注册的用户重定向到自定义URL?  ( How to redirect a newly registered user to a custom url after signing up ) 
默认情况下,新用户注册后,将发生重定向到主页。 但在这种情况下,我想将这些用户重定向到像节点/ 35这样的另一个页面。 在此节点/ 35中我希望显示一些内容。 ...

0  Drupal LD​​AP模块如何管理密码? [关闭]  ( How does the drupal ldap module manage passwords ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅拍摄了一个问题,只有编辑此帖。 closed 去年。 ...

1  是否可以翻译整数字段的后缀?  ( Is it possible to translate the suffix of an integer field ) 
是否可以转换整数字段的后缀?前缀/后缀设置不会显示在字段的"翻译" 部分下。我尝试在"翻译界面" 中搜索串,没有运气。 该字段在列表中所有字段中的视图中使用,欢迎任何替代解决方案。 使用Drupal 7. ...

4  仅对<head>进行更改为主页  ( Make changes to head for homepage only ) 
我需要在头部标签中插入hreflang标记,但我只需要这些在主页上。此刻我通过HTML.TPL.php模板将HReflang标记插入到头部,但这将代码放在站点中的所有页面上。我如何只需一个页面编辑头部?我正在使用drupal 7。 ...

2  如何在同一视图页面中扩展修剪的正文文本到全身文本?  ( How to expand trimmed body text to full body text in the same views page ) 
我在Drupal 7中有一个视图,其中我将节点标题及其正文显示为修剪文本,如此屏幕上所示: 我需要在单击 之后显示完整的正文文本,阅读更多 链接,但在同一页面中。我该怎么做? ...

0  创建模块可以在Drupal中显示页面或块的映射  ( Creating module can display map in page or block in drupal ) 
我有两天我正在尝试开发我的自定义模块。 我想在块中展示地图,但没有任何事情发生。 我如何称呼CSS A一个js文件并在页面或块中显示它们? function exemple_init() { drupal_add_js('http://maps.googleapis.com/maps/api/js?sens...

0  是否有一个模块在您创建时保存节点?  ( Is there a module that saves the node while you are creating it ) 
我有一个博客,我每天都写博客。今天我正在创建一个博客文章,我差点结束,但由于某种原因我的电脑关闭了。我丢失了我在我的文章中我必须再次写作。 是有一个模块或某些东西,在您创建它时会保存节点? ...

2  特定权限的问题  ( Problem with specific permissions ) 
我想设置根据其他字段的值来显示字段的角色权限。但我找不到怎么做。 例如,我有一个内容类型的人。如果我添加一个"警察" 的内容人(Field Job ="Policeman" )那么他的电话号码(现场电话)仅显示给具有角色"官员" 的用户。但如果该人是"秘书" ,那么他的电话号码只能向具有"方向" 角色的用户。 有谁知...

1  我如何让Elysia Cron每15分钟运行一次?  ( How can i get elysia cron to run every 15 minutes ) 
我在带有cpanel和apache的共享主机上运行drupal 7。我不想使用常规Cron,因为我想比其他人更定期运行一些任务,如搜索索引。所以我添加了 elysia cron 模块。它不会以我打算的规则间隔运行。我希望你们都能给我一些指导。这是我设置它的方式: 我在我的cpanel中添加了一个cron作业,如下所示...

1  Drupal 7 +服务:用户注册错误500(Integrity Constraint违规:1048列'UID'不能为NULL)  ( Drupal 7 services error 500 on user registration integrity constraint viola ) 
我仍然使用drupal 7和服务3的用户注册,我得到了一个奇怪的错误500: 完整性约束违规:1048列'uid'不能为null 这是我使用的代码: cors.config9 是有什么不对的吗? ...

1  为所有项目创建一个包含RadioButton的复选框字段  ( Create a checkboxes field with a radiobutton for all items ) 
usercase: 有商店服务的名单。这些服务可以预约或没有。因此,服务是复选框,无线电需要显示它是否可以在没有约会的情况下完成。 我已经抓住了我的头,尝试了一些像double_field和composation_field这样的模块,但它们似乎不适合这种情况。最终用户必须能够选择他们销售的服务,并验证它们是否有或...

0  旗帜创造共同朋友?  ( Flags to create mutual friends ) 
我正在运行一个d7系统,其中用户通过使用'按照'标志互相遵循,然后在用户配置文件中,我添加了一个视图来显示所有用户后跟一个"登录用户" 。< / p> 我努力的是我如何生成一个接着的用户列表,然后是'登录'用户的朋友。 像Facebook'共同朋友的功能,所以'登录'用户获得用户列表,后面是他/她的用户。 ...

0  在分类的行重量  ( Row weights on taxonomy ) 
在我的现场网站上,我无法看到仅在分类系统上的拖放功能,而它成功出现在menus上.below是我的屏幕拍摄的分类物。 它应该是这样的: 可以任何人了解这个吗? ...

3  如何在创建新页面时创建下拉字段以对内容进行分类?  ( How to create a drop down field to categorize content when creating new pages ) 
我希望下拉字段可用,以便当内容作者(用户)创建一个新页面时,他们可以选择网站的哪些部分此新内容应该被放置。 例如,我的顶级导航可能是关于我们&gt;服务&gt;产品。用户创建一个应该在产品部分中继续的新页面。当他们去添加新页面时,应该有一个下拉字段,显示关于我们,服务,产品。用户将选择产品以及保存页面时,该页面将自动...

1  如何通过润滑删除卸载的模块?  ( How to delete uninstalled modules via drush ) 
我一直在想知道如何在模块文件夹中清除卸载的模块。也许通过将一些吹水输出输出到rm rf ... 我注意到Drush PM列表给出了在更大的启用模块中存在的小模块。任何提示? drush pm-list --type=Module --no-core --status="Not installed" ...

0  订单产品ID字段返回“0”视图中  ( Order product id field returns 0 in views ) 
我对我的Ubercart订单有一个"订单" 类型。我正在尝试为每个订单产品显示"订购产品ID" 字段值,以便我可以将这些数字视为不同的。我添加了"订单:产品" 的关系,这使得"订单产品ID" 现场提供;但是,该字段返回值为"0" 而不是数据库中显示的实际订单产品ID。我该如何解决这个问题? 以下是我的视图导出: ...

2  用户从每个链接重定向到网站的问题  ( User having issue with site being redirected to home page from every link ) 
我们有一个托管在Linux机器上的Drupal 7站点。我们的一个用户声称从他们点击网站的每个链接被重定向到主页。我没有个人对网站拥有这种经验,也不是我谁的工作。用户还没有给我们更多信息,但我想知道你是否知道这里可能会发生什么? 我找到了这个线程,但它似乎大多是基于Windows的问题:为什么我的drupal 7从任...

1  使用预先填充的实体引用创建联系表单块并将电子邮件发送到内容作者  ( Create contact form block with prepopulated entity references and send email to ) 
我正在尝试创建3个形式,应该将其中2个块显示在特定内容类型上。一个用于ANON用户,另一个用于登录用户。另一个只是核心联系的网站宽接触表格替代品。 匿名联系表单:姓名,电子邮件,实体参考内容,消息 登录联系表单:实体参考内容,消息(从帐户拉出用户名和电子邮件) 网站广联别联系人:姓名,电子邮件,消息,术语引用对类别 ...

0  制作自定义主题并想知道如何用其余的帖子  ( Making a custom theme and want to know how to style first post different from th ) 
在几个月后弄清楚如何上传背景图像,我决定废料并使用纯色与彩色选择器。 现在我正在继续制作自定义主题,并且与制作WordPress主题非常不同。所以我需要帮助以下内容: 在我的页面上.. pl.php,有没有办法让第一帖子与帖子的其余部分不同?示例:第一个帖子有标题,日期,时间和描述。其余的只是有一个日期和标题。 我也...

0  如何将字段格式器限制为选定的字段?  ( How to restrict field formatter to selected fields ) 
我在自定义代码中创建了新字段 field_csob_srcode : <?php $field = array( 'field_name' => 'field_csob_srcode', 'type' => 'text', 'settings' => array( 'max_length' => 4, ), ...




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


Licensed under cc by-sa 3.0 with attribution required.