View source
<?php
function highlight_menu() {
$items['admin/config/search/highlight/settings'] = array(
'title' => t('Highlight'),
'description' => t('Configure the highlight options'),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'highlight_admin_settings',
),
'access arguments' => array(
'administer search',
),
);
return $items;
}
function highlight_admin_settings($form, &$form_state) {
$form['highlight_area'] = array(
'#type' => 'textarea',
'#title' => t('Highlight area'),
'#default_value' => variable_get('highlight_area', 'body'),
'#description' => t('Use jQuery selector to set the part of HTML you want to highlight.'),
);
$form['highlight_class'] = array(
'#type' => 'textfield',
'#title' => t('Highlight CSS class'),
'#default_value' => variable_get('highlight_class', 'highlight'),
'#description' => t('Set the highlight CSS class that will be used for the enclosing highlight HTML tag.'),
);
$form['highlight_color'] = array(
'#type' => 'textfield',
'#title' => t('Highlight color'),
'#default_value' => variable_get('highlight_color', 'yellow'),
'#description' => t('Set the highlight color with CSS value.'),
);
$form['highlight_text_color'] = array(
'#type' => 'textfield',
'#title' => t('Highlighted text color'),
'#default_value' => variable_get('highlight_text_color', 'black'),
'#description' => t('Set the highlight color with CSS value.'),
);
$form['highlight_wordsonly'] = array(
'#type' => 'checkbox',
'#title' => t('Highlight words'),
'#default_value' => variable_get('highlight_wordsonly', TRUE),
'#description' => t('Highlight only full words.'),
);
$form['highlight_patterns'] = array(
'#type' => 'textarea',
'#title' => t('Local search patterns'),
'#default_value' => variable_get('highlight_patterns', ''),
'#description' => t('Set the patterns to get local search keywords to highlight. Use JavaScript Regex and put each parttern per line. '),
);
$form['highlight_patterns_referrer'] = array(
'#type' => 'textarea',
'#title' => t('Referrer patterns'),
'#default_value' => variable_get('highlight_patterns_referrer', '
^http://www\\.google\\.com.+[&?]q=([^&]+).*$
^http://www\\.google\\.co\\.uk.+[&?]q=([^&]+).*$
^http://search\\.yahoo\\.com.+[&?]p=([^&]+).*$
^http://search\\.yahoo\\.co\\.uk.+[&?]p=([^&]+).*$
^http://www\\.bing\\.com.+[&?]q=([^&]+).*$'),
'#description' => t('Set the referrer patterns for search engines. Use JavaScript Regex and put each parttern per line. '),
);
$form['highlight_stopwords'] = array(
'#type' => 'textarea',
'#title' => t('Stopwords'),
'#default_value' => variable_get('highlight_stopwords', 'a, about, above, above, across, after, afterwards, again, against, all, almost, alone, along, already, also,although,always,am,among, amongst, amoungst, amount, an, and, another, any,anyhow,anyone,anything,anyway, anywhere, are, around, as, at, back,be,became, because,become,becomes, becoming, been, before, beforehand, behind, being, below, beside, besides, between, beyond, bill, both, bottom,but, by, call, can, cannot, cant, co, con, could, couldnt, cry, de, describe, detail, do, done, down, due, during, each, eg, eight, either, eleven,else, elsewhere, empty, enough, etc, even, ever, every, everyone, everything, everywhere, except, few, fifteen, fify, fill, find, fire, first, five, for, former, formerly, forty, found, four, from, front, full, further, get, give, go, had, has, hasnt, have, he, hence, her, here, hereafter, hereby, herein, hereupon, hers, herself, him, himself, his, how, however, hundred, ie, if, in, inc, indeed, interest, into, is, it, its, itself, keep, last, latter, latterly, least, less, ltd, made, many, may, me, meanwhile, might, mill, mine, more, moreover, most, mostly, move, much, must, my, myself, name, namely, neither, never, nevertheless, next, nine, no, nobody, none, noone, nor, not, nothing, now, nowhere, of, off, often, on, once, one, only, onto, or, other, others, otherwise, our, ours, ourselves, out, over, own,part, per, perhaps, please, put, rather, re, same, see, seem, seemed, seeming, seems, serious, several, she, should, show, side, since, sincere, six, sixty, so, some, somehow, someone, something, sometime, sometimes, somewhere, still, such, system, take, ten, than, that, the, their, them, themselves, then, thence, there, thereafter, thereby, therefore, therein, thereupon, these, they, thickv, thin, third, this, those, though, three, through, throughout, thru, thus, to, together, too, top, toward, towards, twelve, twenty, two, un, under, until, up, upon, us, very, via, was, we, well, were, what, whatever, when, whence, whenever, where, whereafter, whereas, whereby, wherein, whereupon, wherever, whether, which, while, whither, who, whoever, whole, whom, whose, why, will, with, within, without, would, yet, you, your, yours, yourself, yourselves, the'),
'#description' => t('Stopwords which shouldn\'t be highlighted.'),
);
return system_settings_form($form);
}
function highlight_page_build(&$page) {
drupal_add_js(array(
'highlight' => array(
'area' => variable_get('highlight_area', 'body'),
),
), 'setting');
drupal_add_js(array(
'highlight' => array(
'class' => variable_get('highlight_class', 'highlight'),
),
), 'setting');
drupal_add_js(array(
'highlight' => array(
'color' => variable_get('highlight_color', 'yellow'),
),
), 'setting');
drupal_add_js(array(
'highlight' => array(
'textColor' => variable_get('highlight_text_color', 'black'),
),
), 'setting');
drupal_add_js(array(
'highlight' => array(
'wordsonly' => variable_get('highlight_wordsonly', TRUE),
),
), 'setting');
drupal_add_js(array(
'highlight' => array(
'patterns' => variable_get('highlight_patterns', ''),
),
), 'setting');
drupal_add_js(array(
'highlight' => array(
'referrerPatterns' => variable_get('highlight_patterns_referrer', ''),
),
), 'setting');
drupal_add_js(array(
'highlight' => array(
'stopwords' => str_replace(' ', '', variable_get('highlight_stopwords', '')),
),
), 'setting');
drupal_add_js(drupal_get_path('module', 'highlight') . '/js/jquery.highlight.js');
drupal_add_js(drupal_get_path('module', 'highlight') . '/js/highlight.js', array(
'scope' => 'footer',
));
}