formato de entrada Drupal Agregador
-
23-08-2019 - |
Pergunta
módulo central Drupal agregador é um útil, mas sofre muitos problemas. Há muitos falando de melhorá-la nos Drupal 7.
Agora eu estou usando agregador módulo que vem com Drupal 6. Eu estou construindo um site de agregação, e há um grande problema. Às vezes alimentos contêm HTML tags de atributos (por exemplo, estilo, dir, título), mas filtro formato de entrada do agregador ignora alguns atributos (por exemplo, estilo e dir) e permite outros (classe e href). Sem alguns atributos alimentações olhar muito mocinha. Agregador contém é formato de entrada própria, ele não usa outros formatos entradas (e isso torna o problema mais difícil!).
A questão é como posso permitir que alguns atributos das tags HTML para aparecer em feeds.
P.S. última coisa a fazer é modificar arquivos centrais da agregador
Solução
Você pode querer considerar a mudança para uma das soluções mais recentes construídas em cima de FeedAPI
Como você pode ver a partir daí, este é onde está a ação, agregação-wise.
Outras dicas
Mover para FeedAPI. A única desvantagem para este não está a ter blocos imediatas para diferentes alimentos. No entanto, é possível configurá-los usando nodeblock e incorporação de uma visão no nó de alimentação dos itens de alimentação, que também permite que você use Visualizações e mapeador feedapi para determinar quais informações são exibidas em cada feed.
agregador é apenas um mau módulo para qualquer trabalho pesado com feeds. Ela não oferece a flexibilidade, e não jogar bem com Views. Se você é sério sobre a construção de um site inteiro para a agregação, mude para feedapi, e, em seguida, usar exibições para controlar a exibição dos nós que podem ser criados a partir dos feeds.
Vai levar algum trabalho na frente, mas no longo prazo, você vai salvar-se a dor de cabeça de tentar encontrar a solução de alimentação agregador mística que provavelmente não existe.
Eu há muito que abandonou agregador, mas eu gostaria de encorajá-lo a cavar a fonte para ver qual é o problema. O código da maioria dos módulos do núcleo são muito bem documentado e é a maneira mais fácil de ver como o módulo realmente funciona.
O meu palpite é que ele é ou usando uma seqüência codificada de tags para permitir que, ou ele está pegando carona no formato de entrada Filtered HTML.
curta e simples. Ter um olhar para o aggregator_filter_xss function () em http://api.drupal.org/api/ função / aggregator_filter_xss .
<?php
function aggregator_filter_xss($value) {
return filter_xss($value, preg_split('/\s+|<|>/', variable_get('aggregator_allowed_html_tags', '<a> <b> <br> <dd> <dl> <dt> <em> <i> <li> <ol> <p> <strong> <u> <ul>'), -1, PREG_SPLIT_NO_EMPTY));
}
?>
Como você pode ver, há uma variável Drupal chamado aggregator_allowed_html_tags .
Você só precisa para torná-lo editável em uma configurações formar a partir de um de seus módulos. Desde que eu não encontrou o que página de administração do Drupal permite editar essa variável, e eu diria que não há.
Aqui está o código que você precisa para o seu módulo personalizado:
function your_module_settings()
{
$form = array();
// Params para aggregator
$form['aggregator_allowed_html_tags'] = array(
'#type' => 'textarea',
'#title' => t('Core Module Aggregator allowed tags'),
'#default_value' => variable_get('aggregator_allowed_html_tags', '<a> <b> <br> <dd> <dl> <dt> <em> <i> <li> <ol> <p> <strong> <u> <ul>'),
'#required' => TRUE,
'#description' => t('Core Module Aggregator allowed tags'),
);
return system_settings_form($form);
}
function your_module_menu()
{
$items = array();
$items['admin/content/your-module'] = array(
'title' => 'My module settings',
'description' => 'desc',
'page callback' => 'drupal_get_form',
'page arguments' => array('your_module_ pasos'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
Espero que seja útil.