Files
        @ 34d3e77992f6
    
        
              Branch filter: 
        
    Location: SlatePermutate/class.class.php - annotation
        
            
            34d3e77992f6
            3.8 KiB
            text/x-php
        
        
    
    Merge
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139  | 27edaecc0d90 27edaecc0d90 27edaecc0d90 27edaecc0d90 27edaecc0d90 27edaecc0d90 27edaecc0d90 27edaecc0d90 27edaecc0d90 27edaecc0d90 27edaecc0d90 27edaecc0d90 4c752d8248bd 4c752d8248bd 4c752d8248bd 27edaecc0d90 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 27edaecc0d90 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 27edaecc0d90 cebfe2251d8c 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd cebfe2251d8c 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 4c752d8248bd 936c42a99c1e 4c752d8248bd 589628d5019b 589628d5019b 4c752d8248bd cebfe2251d8c 4c752d8248bd 4c752d8248bd cebfe2251d8c 4c752d8248bd 4c752d8248bd 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 6cb196f112d9 27edaecc0d90  | <?php
//**************************************************
// class.class.php	Author: Nathan Gelderloos
//
// Represents a class.
//**************************************************
include_once 'class.section.php';
class Classes
{
  private $name;		// String
  private $sections;	// Array of sections
  private $nsections;	// int
    
  //--------------------------------------------------
  // Creates a class with the given name.
  //--------------------------------------------------
  function __construct($n)
  {
    $this->name = $n;
    $this->nsections = 0;
  }
	
  /**
   * \brief
   *   Adds an already-instantiated section to this class.
   */
  public function section_add(Section $section)
  {
    $this->sections[$this->nsections] = $section;
    $this->nsections ++;
  }
  //--------------------------------------------------
  // Returns the number of sections in the class.
  //--------------------------------------------------
  function getnsections()
  {
    return $this->nsections;
  }
	
  //--------------------------------------------------
  // Returns the desired section for analysis.
  //--------------------------------------------------
  function getSection($i)
  {
    // Checks to make sure the desired section is part of the set.
    if(isset($this->sections[$i]))
      {
	//echo "Object sections[$i] was set<br />";
      } else {
      echo "Object sections[$i] was NOT set <br />";
    }
    $result = $this->sections[$i];
    return $result;
  }
    
  //--------------------------------------------------
  // Returns the name of the class.
  //--------------------------------------------------
  function getName()
  {
    return $this->name;
  }
  /**
   * \brief
   *   Renders this Classes into something suitable for input.php.
   */
  function input_form_render($class_key)
  {
    $n = "\n";
    $out = '<tr title="' . $class_key . '" class="class class' . $class_key . '">' . $n
      . '  <td><input type="text" class="required defText" title="Class Name" name="postData[' . $class_key . '][name]" value="' . htmlentities($this->getName()) . '"/></td>' . $n
      . '  <td colspan="8"></td>' . $n
      . '  <td class="tdInput"><div class="addSection"><input type="button" value="Add section" class="gray" /></div></td>' . $n
      . '  <td class="tdInput"><div class="deleteClass"><input type="button" value="Remove" class="gray" /></div></td>' . $n
      . "</tr>\n";
    foreach ($this->sections as $key => $section)
      $out .= $section->input_form_render($class_key, $key);
    return $out;
  }
  /**
   * \brief
   *   Split up a user-friendly course specification into components.
   *
   * This will only return the 'department' and 'course' components of
   * the given course identifier. Otherwise, it acts the same as
   * Section::parse.
   *
   * \see Section::parse()
   *
   * \param $course_spec
   *   A course specifier to parse, such as 'cs262' or 'MATH-156'.
   * \return
   *   An array with normalized output having keys of 'department' and
   *   'course'. If the user's input has less than these two keys of
   *   information, the returned array may have zero or one elements.
   */
  public static function parse($course_spec)
  {
    $section_parts = Section::parse($course_spec);
    if (isset($section_parts['section']))
      unset($section_parts['section']);
    return $section_parts;
  }
  /**
   * \brief
   *   Represent this class as a string.
   */
  public function __toString()
  {
    return $this->getName();
  }
  /**
   * \brief
   *   Represent this class as an array of sections ready to be JSONized.
   */
  public function to_json_array()
  {
    $json_array = array('class' => $this->getName(),
			'sections' => array());
    foreach ($this->sections as $section)
      {
	$json_array['sections'][] = $section->to_json_array();
      }
    return $json_array;
  }
}
 |