我在我网站的前端创建了一个表单,允许注册成员发布帖子而无需访问Admin CP但是我想隐藏输出中的特定表单元素。
我们想要隐藏的元素是一个复选框,允许一个项目被显示,只有管理员才能看到。这是否可以使用自动表单输出?我使用了以下安全破解程序代码:
{global_errors}{error}{/global_errors}
<label for="title">Title</label>
<input type="text" name="title" id="title" value="{title}" size="50" maxlength="100" onkeyup="liveUrlTitle();">
{status_menu}
<label for="status">Status</label>
<select name="status" id="status">
{select_options}
</select>
{/status_menu}
{custom_fields}
<p><label for="{field_name}">{if required}* {/if}{field_label}</label>
{field_instructions}
{formatting_buttons}
{if error}
<span class="error">{error}</span>
{/if}
{if textarea}
<textarea id="{field_name}" name="{field_name}" dir="{text_direction}" rows="{rows}">{field_data}</textarea>
{/if}
{if text}
<input type="text" dir="{text_direction}" id="{field_name}" name="{field_name}" value="{field_data}" maxlength="{maxlength}" size="50">
{/if}
{if select}
<select id="{field_name}" name="{field_name}">
{options}<option value="{option_value}"{selected}>{option_name}</option>{/options}
</select>
{/if}
{if date}
<input type="text" id="{field_name}" name="{field_name}" value="{field_data}" size="50">
{/if}
{if checkbox}
{options}
<label class="checkbox">{option_value}
<input type="checkbox" id="{field_name}" name="{field_name}[]" value="{option_value}"{checked}>
</label>
{/options}
{/if}
{if radio}
{options}
<label class="checkbox">{option_value}
<input type="radio" id="{field_name}" name="{field_name}" value="{option_value}" {checked}>
</label>
{/options}
{/if}
{if safecracker_file}
{display_field}
{/if}
{if relationship}
<select id="{field_name}" name="{field_name}">
{options}
<option value="{option_value}"{selected}>{option_name}</option>
{/options}
</select>
{/if}
{if multiselect}
<select id="{field_name}" name="{field_name}[]" multiple="multiple">
{options}
<option value="{option_value}"{selected}>{option_name}</option>
{/options}
</select>
{/if}
{if rte}
<textarea id="{field_name}" class="rte" name="{field_name}" dir="{text_direction}" rows="{rows}">{field_data}</textarea>
{/if}
</p>
{/custom_fields}
<input type="submit" name="submit" value="Submit">
答案 0 :(得分:3)
您可能会丢失{custom_fields}
循环并对所有字段进行硬编码。
或者您可以扩展@ unexplainedBacn的计划,并为field_name
和member_group
添加测试 - 否则您将隐藏所有复选框。
{if checkbox}
{if field_name == 'field_to_hide' && logged_in_group_id == 1}
{options}
<label class="checkbox">{option_value}
<input type="checkbox" id="{field_name}" name="{field_name}[]" value="{option_value}"{checked}>
</label>
{/options}
{if:elseif field_name != 'field_to_hide'}
{options}
<label class="checkbox">{option_value}
<input type="checkbox" id="{field_name}" name="{field_name}[]" value="{option_value}"{checked}>
</label>
{/options}
{/if}
{/if}
答案 1 :(得分:0)
我不相信这是你可以自动完成的事情。
您可以将复选框包装在条件中,检查管理员组(或组)的组ID:
{if logged_in_group_id == 1}
<input type="checkbox" [...] />
{/if}
如果您有两个“管理员”组,则可能会出现以下内容:
{if logged_in_group_id == 1 || logged_in_group_id == 7}
<input type="checkbox" [...] />
{/if}
具体值取决于用户组的ID号(CP中的成员&gt; 成员组)。