我想使用链接到外部源的自动完成字段来获取自动完成数据。 Drupal似乎拒绝在Drupal中无法访问的所有autocomplete_paths。任何想法如何规避这个问题?表单字段如下所示:
$form['business_city'] = array(
'#type' => 'textfield',
'#size' => 30,
'#title' => t('city'),
'#autocomplete_path' => '_/city?=',
'#default_value' => $userProfile->field_address_business_city[0]['value'],
);
出于性能原因,在Drupal内无法访问_ / city。该脚本将Drupal引导至会话级以检查有效登录。
更新
如果我通过手动将所需的标记附加到字段来创建自动完成字段,那么它可以正常工作,但维护起来很难:
'#attributes' => array('class' => 'form-autocomplete'),
'#suffix' => '<input type="hidden" disabled="disabled" value="/_/city?n=" id="edit-private-city-autocomplete" class="autocomplete">',
答案 0 :(得分:3)
您可以确保查询“/ _ / city?n =”的路径是有效的menu_hook项目,而不是黑客攻击。这样它将验证theme_textfield()内的drupal_valid_path()。在菜单钩子函数回调中,您可以将请求转发到外部数据源。
答案 1 :(得分:2)
如果自动完成路径是有效(内部)路径,则Drupal 6会在theme_textfield()中进行验证。
因此,除非重写该主题函数,否则无法解决此问题。