用户配置文件中字段的自定义模板 -- theming 领域 和 users 领域 和 entities 领域 drupal 相关 的问题

Custom template for fields in user profiles


0
vote

问题

中文

我想自定义我的用户配置文件中的字段。到目前为止,我创造了 field.tpl.php ,其中当然通常适用于整个网站上的所有字段,不仅在用户配置文件中的字段。

如何命名 field.tpl.php ?它是 field--user-profiles.tpl.php 吗?这不起作用。

英文原文

I'd like to customize the fields in my user profiles. So far I've created field.tpl.php which of course applies to all fields on my whole website and not only to the fields in the user profiles.

How do I have to name the field.tpl.php? Is it field--user-profiles.tpl.php? That didn't work.

        

回答列表

1
 
vote
vote
最佳答案
 

根据Drupal的主题钩子建议用于drupal 7 以下建议的模板名称可用:

  1. 字段 - 字段名 - content-type.tpl.php
  2. 字段 - content-type.tpl.php
  3. 字段 - field-name.tpl.php
  4. 字段 - field type.tpl.php

/config/development/configuration/full/export7 在这种情况下 /config/development/configuration/full/export8 (我猜它意味着实体类型真的),所以要为用户配置文件页面的主题字段,应该调用您的模板:

  /config/development/configuration/full/export9  

我刚刚在DEV网站上测试,它完美地工作。

 

According to Drupal's theme hook suggestions for Drupal 7 the following suggested template names are available:

  1. field--field-name--content-type.tpl.php
  2. field--content-type.tpl.php
  3. field--field-name.tpl.php
  4. field--field-type.tpl.php

The content-type in this case is user (I guess it means entity type really), so to theme fields just for user profile pages, your template should be called:

field--user.tpl.php 

I've just tested that on a dev site and it works perfectly.

 
 
0
 
vote

您可以通过更改形式来为整个表单编写模板

我假设您没有使用profile2模块。您的用户个人资料(可能帐户)页面位于User / 1 /编辑

首先,您需要写入ALTER功能

  function MYMODULE_form_alter(&$form, &$form_state, $form_id) {   switch($form_id){     case 'user_profile_form':       //load an entity object       $form['#theme'] = 'custom_profile_form';     break; }}   

然后您必须为此表单项添加自己的模板

  function MYMODULE_theme($existing, $type, $theme, $path){   return array(     // user profile 2 form     'custom_profile_form'=>array(       'render element'=>'form',       'template'=>'custom-profile-form'     ),   

然后,您必须在模块文件夹中创建自定义配置文件窗体.tpl.php

在此模板文件中,您必须呈现一些表单特定变量

  <form action="<?php print $form['#action']; ?>" method="<?php print $form['#method']; ?>"         id="<?php print $form['#id']; ?>" accept-charset="UTF-8">     <?php print drupal_render($form['form_build_id']); ?>     <?php print drupal_render($form['form_token']); ?>     <?php print drupal_render($form['form_id']); ?> //here you have to render own elements  </form>    

渲染字段,如此将为Field Form元素提供核心附加的废物Divs的元素

  <?php print drupal_render($form['profile_profile']['field_status']['und'][0])?>   

像field.tpl.php等模板将仅对字段的格式化器产生影响。不是小部件

 

You may write a template for whole form by altering form

I assume that you didnt use profile2 module. Your user profile(maybe account) page is at user/1/edit

first of all you need write alter function

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {   switch($form_id){     case 'user_profile_form':       //load an entity object       $form['#theme'] = 'custom_profile_form';     break; }} 

then you have to add own template for this form item

like

function MYMODULE_theme($existing, $type, $theme, $path){   return array(     // user profile 2 form     'custom_profile_form'=>array(       'render element'=>'form',       'template'=>'custom-profile-form'     ), 

then you have to create custom-profile-form.tpl.php in your modules folder

in this template file you have to render some form specific variables

<form action="<?php print $form['#action']; ?>" method="<?php print $form['#method']; ?>"         id="<?php print $form['#id']; ?>" accept-charset="UTF-8">     <?php print drupal_render($form['form_build_id']); ?>     <?php print drupal_render($form['form_token']); ?>     <?php print drupal_render($form['form_id']); ?> //here you have to render own elements  </form>  

rendering fields like this will give field form elements without waste divs that core attaches

<?php print drupal_render($form['profile_profile']['field_status']['und'][0])?> 

templates like field.tpl.php will effect only to field's formatter. not to widget

 
 
 
 

相关问题

1  无法查看单个文章,而是节点的链接显示所有文章  ( Cannot view individual article instead the nodes link displays all articles ) 
我无法弄清楚我做错了什么。我正在使用Drupal 7和Omega主题。我正在使用脚踏板有很好的路径。我有内置文章内容类型,我重命名为"新闻" 。新闻文章的模式被设置为News / [Node:Title]。我创建了一个查看所有新闻,并给了它的路径"新闻" 。 当我去/新闻时,我看到了我的观点。当我点击单个文章时,我没...

1  单独的page.tpl文件for URL  ( Separate page tpl file for url ) 
我创建了一个与页面URL等自定义模块,如 $items['testpage/get'] 。如何为此URL创建一个单独的页面文件。链接就像: http://199.x.x.x/mysitename/testpage/get 。 ...

1  表格中的表格不会显示  ( Forms in a table wont show ) 
我正在尝试在表中显示一个表单,但它显示出空结果,而显示标题。我无法理解我做错了什么。 /* * cart form and page display */ function cart_page_form() { $form=array(); $form['#tree'] = TRUE; $che...

4  在呈现页面之前更改节点的正文文本  ( Altering body text of a node before the page is rendered ) 
我正在使用zen主题。我想在作为页面呈现之前更改正文文本。特别是,我想用另一个字符串替换一个字符串。我认为这是一般的解决方案是将代码放在我的子主题的template.php中的主题_preprocess_node钩子中。这是我到目前为止的代码: <?php function mytheme_preprocess_...

2  如果结束日期为空显示“现在”或“当前”或其他内容  ( If end date is empty show now or current or something else ) 
在一些内容类型中,我有一个字段日期,收集开始日期和结束日期。 结束日期不是必需的,并且是空的默认值。 当我在预告片或节点或查看日期时显示它将显示开始和结束日期,但我想要一个条件 if (empty($end_date)) { print "current"; } else { print $end_date; ...

0  在模板文件中主题节点参考字段  ( Theming a node reference field in a template file ) 
我有两个内容类型: 课程 主题 课程节点具有引用主题节点的字段参考字段。 在课程节点显示中,我希望从相应的主题节点上访问变量。我将字段设置为呈现为"渲染节点" ,但我需要重新排列两个节点的字段,以构建从可用的所有字段中的标签接口。 继续进行哪些方法? ...

3  $不是Drupal 7主题的函数  ( Is not a function in drupal 7 theme ) 
$(function(){ $('.slider').mobilyslider({ content: '.sliderContent', children: 'div', transition: 'horizontal', animationSpeed: 500, au...

2  如何仅将节点模板文件应用于节点视图页面但不是修订页面?  ( How can i apply node template file only to node view page but not revision page ) 
我有一个名为 node-"content-type-name".tpl.php 的节点模板,它会覆盖此内容类型的默认节点。 但此模板文件应用于节点修订页面。无论如何,我可以将节点模板文件应用于没有修订页面的节点查看/编辑页面? ...

0  用户配置文件页面覆盖区域主题文件  ( Overriding region theme file for user profile pages ) 
我在d7上使用omega作为基本主题。 <h1> 我的主题标记可以在 region - content.tpl.php 主题文件中找到。 但我想在一个特定情况下覆盖这个主题:在用户配置文件页面上,我不希望在 region - content.tpl.php 上设置标题。我将在 user-profile.tp...

0  CSS,Omega主题 - 如何使<Li>使用2或3个网格取决于屏幕?  ( Css omega theme how to make a li use 2 or 3 grids depending on screen with ) 
这个问题适用于欧米茄主题,但我认为这是一般的基于响应网格的主题。 是否有一种方法来制作 <li> 占用2或3个网格,具体取决于屏幕宽度? 换句话说,当主体标签有类 responsive-layout-wide 然后 <li> 应该占用3个网格(好像它有omega类 grid-3 )当机构有类 responsive...

1  如何只突出显示未发布的节点结果结果  ( How to highlight only unpublished nodes in views result ) 
我有一个具有批量操作样式的节点视图,可仅适用于管理角色。 我想只有未发表的节点。如果只有其中一个节点的字段或整行是困难的,那并不重要。 我想我需要为未发布的节点添加特殊的CSS类,但我怎样才能做到这一点? ...

0  不同的前页节点根据登录的内容?  ( Different front page node depending on logged in ) 
如何遵循显示不同的前页节点,具体取决于用户是否登录。 例如尚未登录用户时,您将查看关于页面。 登录用户时,您将查看您的用户个人资料页面。 ...

0  所有上下文中的预处理标题字段(Sitewide)  ( Preprocess title field in all contexts sitewide ) 
如果将反斜杠放入节点的标题中,我需要重写该标题并删除在标记中删除缠绕文本的反斜杠。我目前正在使用多个预处理函数来执行此操作。似乎我必须为每个上下文创建一个新的预处理功能,标题可能出现在: function project_preprocess_page(&vars){/*rewrite*/} function p...

3  是否有任何贡献/商业主题可供开放的庭院?  ( Are there any contributed commercial themes available for open atrium ) 
Googling"Open Atrium主题" 不会产生很多结果。我有一个沉没的感觉,大多数安装开放的心房用ginko为主题安装。 在那里有开放的庭院或商业主题是否有任何贡献主题? ...

10  如何使用一个下拉小部件显示视图中的曝光排序?  ( How to display exposed sort in views using one drop down widget ) 
默认情况下,Drupal 7的3.0模块使用两个下拉窗口显示曝光排序。首先下拉以选择字段名称,另一个 - 选择排序方向。 如何在一个下拉下曝光的排序? ...

1  如何在My__node.tpl.php中使用可用的现有变量(来自模块)? D7  ( How do you make an existing variable from a module available for use in my no ) 
我正在使用的contract模块(媒体库)输出一个块,单个缩略图用于触发灯箱库。 模块具有用于呈现缩略图的TPL文件。 我想隔离单个块缩略图图像(在media_gallery_media_item_thumbnail.tpl.php中使用的$ media_gallery_item)并将其直接插入新的节点模板(节点 -...

2  在禅宗主题中实现时的好菜单错误  ( Nice menus error when implement in zen themes ) 
我复制了以下代码: <div id="navigation"> <?php if (module_exists('nice_menus')): ?> <nav id="main-menu" role="navigation"> <?php print theme('nice_menu...

1  如何编写URL特定的CSS  ( How can i write url specific css ) 
如何为动态URL页面的内容编写CSS,如"http:// mysitename / user / 23 / prayerRequests" 。在此,假设用户ID。我想实现这个动态URL的Conent Div CSS。 ...

3  基于访问者的屏幕大小更改首页?  ( Change the front page based in the screen size of the visitor ) 
我使用 omega 主题响应网站。 我需要根据访问者的屏幕大小来更改网站的首页。 这个想法是隐藏一个前页,它包括手机设备上的闪存电影。 然后: 如果用户屏幕小于740px,则前页为: no-flash-page 如果用户屏幕大于740px,则前页是: flash-page 我可以使用omeg...

0  zen subtheme:给定页面上没有侧栏  ( Zen subtheme no sidebar on a given page ) 
站点的总布局由2列布局(主内容区域+右侧栏)组成。我的网站上有一个/论坛部分,我想为它及其孩子提供单一的平原区域。 添加forum.tpl页面,包含没有侧边栏的技巧? 另一种方式可能是防止。侧栏 - 第二被加载为a 给定URL的身体类(MySite.com/Forum)。这是一种干净的方式 要做到这一点,最...




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


Licensed under cc by-sa 3.0 with attribution required.