source view: index.php


<?php



  require '../db.connect.php';

  $page_name     = preg_replace( '/^[^a-z0-9]+|[^a-z0-9]+$/', '', strtolower( urldecode( $_SERVER['QUERY_STRING'] ) ) );
  $page_keywords = array_unique( preg_split( '/[^a-z0-9]+/', $page_name ) );
  $new_page_url  = '';
  $new_page_name = '';

  $page_keywords_new = $page_keywords;
  for ( $i = 0; $i < count( $page_keywords ); ++$i )
  {
    $keyword = $page_keywords[$i];
    for ( $j = $i + 1; $j < count( $page_keywords ); ++$j )
    {
      $keyword .= '-' . $page_keywords[$j];
      array_push( $page_keywords_new, $keyword );
    }
  }
  $keyword_list = "'" . join( "','", $page_keywords_new ) . "'";

  $blog_page_name         = join( '-', $page_keywords );
  $blog_page_query_string = <<<EOQ
SELECT bp.blogPostTitle
FROM tblBlogPosts bp
WHERE  LOWER(bp.postURL) = ?
EOQ;

  $blog_page_query = $mysql->prepare( $blog_page_query_string );
  $blog_page_query->bind_param( 's', $blog_page_name );
  $blog_page_query->execute();
  $blog_page_query->bind_result( $blog_post_title );

  if ( $blog_page_query->fetch() )
  {
    $blog_page_query->close();
    header( sprintf( 'Location: /current/%s', $blog_page_name ) );
    exit;
  }

  $blog_page_query->close();



  $blog_keyword_query_string = <<<EOQ
SELECT
  bp.blogPostID,
  COUNT(*),
  COUNT(*) / (
    SELECT COUNT(*)
    FROM tblBlogPostKeywords
    WHERE blogPostID = bp.blogPostID
  ) AS keywordRating,
  bp.postUrl,
  bp.blogPostTitle
FROM
  tblBlogPosts bp,
  tblBlogPostKeywords bpk
WHERE
  bp.blogPostID = bpk.blogPostID
  AND bp.isVisible = 1
  AND bpk.keyword IN ( $keyword_list )
GROUP BY
  bp.blogPostID,
  bp.blogPostTitle
ORDER BY
  COUNT(*) DESC,
  keywordRating DESC,
  bp.blogPostID
EOQ;

  // this one just redirects to the most likely page; the extra selects are
  // left over from some old functionality that provided a menu.
  //
  // (note: can't use prepared statements with dynamic IN clauses)
  $blog_keyword_query = $mysql->query( $blog_keyword_query_string );
  if ( $blog_keyword_row = $blog_keyword_query->fetch_row() )
  {
    $blog_keyword_query->close();
    header( sprintf( 'Location: /current/%s', $blog_keyword_row[3] ) );
    exit;
  }

  $blog_keyword_query->close();



  $new_page_query_string = <<<EOQ
SELECT
  sp.sitePageURL,
  IFNULL( spk.URLAppend, '' ),
  sp.sitePageName,
  COUNT(*),
  COUNT(*) / (
    SELECT COUNT(*)
    FROM tblSitePageKeywords
    WHERE sitePageID = sp.sitePageID
  ) AS keywordRating
FROM
  tblSitePages sp,
  tblKeywords k,
  tblSitePageKeywords spk
WHERE
  sp.sitePageID = spk.sitePageID
  AND k.keywordID = spk.keywordID
  AND k.keyword IN ( $keyword_list )
GROUP BY
  sp.sitePageURL,
  sp.sitePageName
ORDER BY
  COUNT(*) DESC,
  keywordRating DESC,
  sp.sitePageName
EOQ;

  $new_page_query = $mysql->query( $new_page_query_string );
  if ( $new_page_row = $new_page_query->fetch_row() )
  {
    $new_page_query->close();
    header( sprintf( 'Location: /%s%s', preg_replace( '/^\//', '', $new_page_row[0] ), $new_page_row[1] ) );
    exit;
  }

  $new_page_query->close();




  
  require '../classes/Page.php';
  $page = new Page();
  $page->setTitle( '404' );
  $page->setColor( new PaletteColor( 102, 102, 102 ) );
  $page->setFontColor( Palette::getColor( Palette::COLOR_WHITE ) );



  $page->printPageHeader();
  


  // note: removed old redirect functionality (JS/META implementation, no longer necessary)
?>
<h3>wisdom</h3>
<p>The page you are seeking is not here.</p>
<?php



  $page->printPageFooter();



?>