123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- <?php
- $arguments = getopt("i:n:");
- if(isset($arguments['i'])){
- $drupal_base_url = parse_url('http://www.example.com');
- $_SERVER['HTTP_HOST'] = $drupal_base_url['host'];
- $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] = $_SERVER['PHP_SELF'];
- $_SERVER['REMOTE_ADDR'] = NULL;
- $_SERVER['REQUEST_METHOD'] = NULL;
-
- require_once 'includes/bootstrap.inc';
- drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
- $feature_id = $arguments['i'];
- $nid = $arguments['n'];
-
-
-
-
- if($feature_id > 0){
-
-
-
-
-
-
-
-
- register_shutdown_function('search_update_totals');
- tripal_feature_index_feature($feature_id, $nid);
- }
- else{
- print "indexing all features...\n";
- tripal_features_reindex(0);
- }
- }
- function tripal_features_reindex ($max_sync,$job_id = NULL){
- $i = 0;
-
-
-
-
-
-
-
- register_shutdown_function('search_update_totals');
-
-
-
-
- $sql = "SELECT N.nid, N.title, CF.feature_id ".
- "FROM {node} N ".
- " INNER JOIN chado_feature CF ON CF.nid = N.nid ";
- $results = db_query($sql);
-
- $count = 0;
- $chado_features = array();
- while($chado_feature = db_fetch_object($results)){
- $chado_features[$count] = $chado_feature;
- $count++;
- }
-
- $interval = intval($count * 0.01);
- if($interval >= 0){
- $interval = 1;
- }
- foreach($chado_features as $chado_feature){
-
- if($job_id and $i % $interval == 0){
- $prog = intval(($i/$count)*100);
- tripal_job_set_progress($job_id,$prog);
- print "$prog%\n";
- }
-
- if($max_sync and $i == $max_sync){
- return '';
- }
- $i++;
-
-
-
-
-
- $cmd = "php " . drupal_get_path('module', 'tripal_feature') . "/indexFeatures.php ";
- $cmd .= "-i $chado_feature->feature_id -n $chado_feature->nid ";
-
-
-
-
- system($cmd);
- }
- return '';
- }
- function tripal_feature_index_feature ($feature_id,$nid){
-
-
- if(!$feature_id){
- return 0;
- }
-
-
- if(!$nid){
- $nsql = "SELECT N.nid,N.title FROM {chado_feature} CF ".
- " INNER JOIN {node} N ON N.nid = CF.nid ".
- "WHERE CF.feature_id = %d";
- $node = db_fetch_object(db_query($nsql,$feature_id));
- if(!$node){
- return 0;
- }
- $node = node_load($node->nid);
- } else {
- $node = node_load($nid);
- }
-
-
- $node->build_mode = NODE_BUILD_SEARCH_INDEX;
- $node = node_build_content($node, FALSE, FALSE);
- $node->body = drupal_render($node->content);
- node_invoke_nodeapi($node, 'view', FALSE, FALSE);
-
- search_index($node->nid,'node',$node->body);
-
-
-
- return 1;
- }
- ?>
|