/** * Enables/disables YouTube EDU ID * * @param string $enable enable/disable YouTube EDU ID header * @param array $id YouTube EDU ID * * @return void * @throws Engine_Exception, Validation_Exception */ public function set_youtube_edu($enable, $id) { clearos_profile(__METHOD__, __LINE__); if ($enable) { Validation_Exception::is_valid($this->validate_youtube_edu_id($id)); $this->_delete_parameter('acl youtube dstdomain .youtube.com', self::FILE_ACLS_CONFIG); $file = new File(self::FILE_ACLS_CONFIG, TRUE); $file->delete_lines("/acl youtube dstdomain\\s+.*/"); $file->add_lines("acl youtube dstdomain .youtube.com\n"); $ecap_enable = 'ecap_enable on'; } else { // Leave alone or Squid freaks out // $this->_delete_parameter('acl youtube dstdomain .youtube.com', self::FILE_ACLS_CONFIG); $ecap_enable = 'ecap_enable off'; } $file = new File(self::FILE_ECAP_SQUID_CONFIG, TRUE); $file->replace_one_line("/^ecap_enable\\s*/i", "{$ecap_enable}\n"); if (strlen($id)) { $file = new File(self::FILE_ECAP_XML_CONFIG, TRUE); $xml_source = $file->get_contents(); $xml = simplexml_load_string($xml_source); if ($xml === FALSE) { return; } foreach ($xml->header as $i => $hdr) { if ($hdr['name'] != 'X-YouTube-Edu-Filter') { continue; } $xml->header[0] = $id; break; } $file->delete_lines('/.*/'); $file->add_lines($xml->asXML()); } }