function _Course::fix_title
Search API
| 4.x _Course.php | _Course::fix_title($str = "") | 
| 5.x _Course.php | _Course::fix_title($str = "") | 
This function will correct capitalization problems in course titles.
Parameters
string $str:
Return value
string
2 calls to _Course::fix_title()
- _Course::load_descriptive_data in classes/_Course.php 
- This function will load $this will all sorts of descriptive data from the database. For example, hours, title, description, etc.
- _Course::load_descriptive_transfer_data in classes/_Course.php 
- Similar to load_descriptive_data(), this will load whatever we have for $this transfer course.
File
- classes/_Course.php, line 1371 
Class
Code
function fix_title($str = "") 
 {
  if ($str == "") 
   {
    $str = $this->title;
  }
  // Should we do this at all?  We will look at the "autocapitalize_course_titles" setting.
  $auto = $GLOBALS ["fp_system_settings"]["autocapitalize_course_titles"];
  if ($auto == "no") {
    // Nope!  Just return.
    $this->title = $str;
    return $str;
  }
  // Otherwise, we may continue with the capitalization scheme:
  $str = str_replace("/", " / ", $str);
  $str = str_replace("/", " / ", $str);
  $str = str_replace("-", " - ", $str);
  $str = str_replace(":", ": ", $str);
  $str = str_replace("(", "( ", $str);
  // Only pad an ampersand if we are not talking about
  // an HTML character.
  if (!strstr($str, "&#")) 
   {
    $str = str_replace("&", " & ", $str);
  }
  // Let's also get rid of extra spaces.
  $str = str_replace("   ", " ", $str);
  $str = str_replace("  ", " ", $str);
  // convert to ucwords and fix some problems introduced by that.
  $str = trim(ucwords(strtolower($str)));
  $str = str_replace("Iii", "III", $str);
  $str = str_replace("Ii", "II", $str);
  $str = str_replace(" Iv", " IV", $str);
  $str = str_replace(" Vi", " VI", $str);
  $str = str_replace(" Of ", " of ", $str);
  $str = str_replace(" The ", " the ", $str);
  $str = str_replace(" In ", " in ", $str);
  $str = str_replace(" And ", " and ", $str);
  $str = str_replace(" An ", " an ", $str);
  $str = str_replace(" A ", " a ", $str);
  $str = str_replace(" To ", " to ", $str);
  $str = str_replace(" For ", " for ", $str);
  // Strange words and abreviations which should be changed.
  $str = str_replace("Afrotc", "AFROTC", $str);
  $str = str_replace("Gis", "GIS", $str);
  $str = str_replace("Dna", "DNA", $str);
  $str = str_replace(" Cpr", "CPR", $str);
  $str = str_replace(" Rn", " RN", $str);
  $str = str_replace(" Micu", " MICU", $str);
  $str = str_replace(" Sicu", " SICU", $str);
  $str = str_replace(" Picu", " PICU", $str);
  $str = str_replace(" Nicu", " NICU", $str);
  $str = str_replace("Uas ", "UAS ", $str);
  $str = str_replace(" Uas", " UAS", $str);
  // Cleanup
  $str = str_replace("( ", "(", $str);
  $str = str_replace(" - ", "-", $str);
  // Is this just a course name by itself?  If so, it should
  // all be capitalized.
  $temp = explode(" ", $str);
  if (count($temp) == 2
   && strlen($temp [0]) <= 4
     && strlen($temp [1]) <= 4) 
   { // We could also test to see if there are numbers starting the
    // second token.
    $str = strtoupper($str);
  }
  // If this contains the word "formerly" then we need to pull out what's
  // there and make it all uppercase, except for the word Formerly.
  if (strstr(strtolower($str), strtolower("formerly "))) 
   {
    $formline = preg_replace("/.*\((formerly .*)\).*/i", "$1", $str);
    $str = str_replace($formline, strtoupper($formline), $str);
    $str = str_replace("FORMERLY ", "Formerly ", $str);
  }
  $this->title = $str;
  return $str;
}
