Ich versuche, eine Funktion hinzuzufügen, die den HTML-Code aus einem Feld in drupal Ansichten entfernt. Ich fand eine Funktion für SQL-Server namens "udf_StripHTML", die das tut.Wie HTML aus einem Feld in drupal Ansichten entfernt werden
ich den folgenden Code verwenden:
/**
* Implements hook_views_query_alter().
*/
function cviews_views_query_alter(&$view, &$query) {
// Add a strip html tags from content.
$fields = array('field_data_body.body_value');
foreach ($query->where as $key1 => $value) {
foreach ($value['conditions'] as $key2 => $coditions) {
if (in_array($coditions['field'], $fields)) {
$query->where[$key1]['conditions'][$key2]['field'] = 'dbo.udf_StripHTML(' . $coditions['field'] . ')';
}
}
}
}
Wenn Ansichten Modul die Abfrage Objekt in eine Zeichenfolge konvertiert wird das Feld aus: 'dbo.udf_StripHTML (field_data_body.body_value)' ;
zu. [dbo] [udf_StripHTMLfield_data_body.body_value]
Meine Frage ist, wie kann ich eine Funktion dort hinzufügen?
Danke,
Vielen Dank für Ihre Antwort. Ich habe einen Weg gefunden, mein Problem zu lösen. Wenn Sie die Option "HTML-Tags entfernen" aktivieren, werden die HTML-Tags aus dem Feld entfernt und ich muss dies auf dem Filter tun. Also habe ich festgestellt, dass wenn ich Operator "Formel" benutze, ich bekommen kann, was ich will. Hier ist der Code: $ query-> where [$ key1] ['bedingungen'] [$ key2] ['field'] = 'dbo.udf_StripHTML ('. $ Coditions ['field'].")"; $ query-> wobei [$ key1] ['conditions'] [$ key2] ['operator'] = 'formula'; $ query-> wobei [$ key1] ['conditions'] [$ key2] ['value'] = array(); – alysonsm
Okay. Ich bin mir einfach nicht sicher, ohne den Code in Aktion zu sehen. Es scheint mir nur, dass dies machbar wäre, ohne die SQL-Abfrage überhaupt zu berühren (siehe meinen dritten Punkt). Filter können auch in PHP eingestellt werden, ohne die SQL (Google * Filtergruppen in Drupal * oder * ausgesetzt Filter Drupal *) zu berühren. Wie auch immer, es gibt mehr als eine Möglichkeit, eine Katze zu häuten, und wenn es funktioniert, funktioniert es;) Wenn Sie meine Antwort hilfreich finden, können Sie sie bitte als akzeptiert markieren. [Siehe, warum das Annehmen einer Antwort wichtig ist] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). –