Adding a url field to the boost_cache table will be better then this function.

function boost_reverse_urls_from_db($filename = NULL, $start = NULL, $end = NULL) {
  Global $base_url;
  $urls = array();
  if (!isset($filename) && !isset($start) && !isset($end)) {
    $result = db_query('SELECT filename, base_dir, extension FROM {boost_cache}');
  }
  elseif (!isset($filename) && isset($start) && isset($end)) (
    $result = db_query_range('SELECT filename, base_dir, extension FROM {boost_cache}', $start, $end);
  }
  elseif (isset($filename)) (
    $result = db_query("SELECT filename, base_dir, extension FROM {boost_cache} WHERE filename = '%s'", $filename);
  }
  else {
    return FALSE;
  }
  while ($boost = db_fetch_array($result)) {
    $url = explode($boost['base_dir'], $boost['filename']);
    array_shift($url);
    $url = ltrim(implode($boost['base_dir'], $url), '/');
    $url = explode($boost['extension'], $url);
    array_pop($url);
    $url = implode($boost['extension'], $url);
    $len_before = strlen($url);
    $url = rtrim($url, '_');
    $len_after = strlen($url);
    if ($len_before != $len_after) {
      $urls[] = $base_url . '/' . $url;
    }
    else {
      //query string in URL
      $temp = explode('=', $url);
      if (substr_count($temp[0], '_') <= 1) {
        $temp[0] = str_replace('_', '?', $temp[0]);
        $url = implode('=', $temp);
        $urls[] = $base_url . '/' . $url;
      }
      else {
        $strings = explode('_', $temp[0]);
        $search = '';
        $found = FALSE;
        foreach($strings as $str) {
          $search .= $str;
          // Try Menu Router
          if (db_fetch_array(db_query("SELECT path FROM {menu_router} WHERE path = '%s'", $search))) {
            $found = TRUE;
            break;
          }
           // Try URL Alias
          elseif (db_fetch_array(db_query("SELECT dst FROM {url_alias} WHERE dst = '%s'", $search))) {
            $found = TRUE;
            break;
          }
          $search .= '_';
        }
        if ($found == TRUE) {
          $url = str_replace($search . '_', $search . '?', $url);
          $urls[] = $base_url . '/' . $url;
        }
        else {
          //$urls[] = FALSE;
        }
      }
    }
  }
  return $urls;
}
CommentFileSizeAuthor
#1 boost-538418.patch3.96 KBmikeytown2

Comments

mikeytown2’s picture

Status: Active » Needs review
StatusFileSize
new3.96 KB
mikeytown2’s picture

Status: Needs review » Fixed

committed

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.