<?php defined('SYSPATH') or die('No direct script access.'); class FileParser { public static function StudentsList($filename, $facultyID) { $model = new Model_Admin_Students; if(File::mime($filename) != 'text/plain') return false; $file = fopen($filename, "r"); $i = 0; while ($line = fgetcsv($file, 0, ";")) { if($i > 0) { // Имя, фамилия, отчество list($lastName, $firstName, $secondName) = self::parsePeopleName($line[0]); // Курс, степень подготовки $studentGradeNum = $line[1]; $studentGroupNum = $line[2]; switch($line[3]) { case 'Бакалавр': $studentDegree = 'bachelor'; break; case 'Специалист': $studentDegree = 'specialist'; break; case 'Магистр': $studentDegree = 'master'; break; } $studentSpec = $line[4]; $activationCode = Text::random('hexdec', 10); //$studentGradeID = $model->getGradeID($studentGradeNum, $studentDegree); //Account::instance()->createStudent($lastName, $firstName, $secondName, // $studentGradeID, $studentGroupNum, $facultyID); Account::instance()->createStudentEx($lastName, $firstName, $secondName, $studentGradeNum, $studentGroupNum, $studentDegree, $studentSpec, $facultyID, $activationCode); } $i++; } return true; } public static function TeachersList($filename) { if(File::mime($filename) != 'text/plain') return false; $file = fopen($filename, "r"); $i = 0; while ($line = fgetcsv($file, 0, ";")) { if($i > 0) { // Имя, фамилия, отчество list($lastName, $firstName, $secondName) = self::parsePeopleName($line[0]); $departmentName = $line[1]; Account::instance()->createTeacherByDepName($lastName, $firstName, $secondName, $departmentName); } $i++; } return true; } protected static function parsePeopleName($name) { $nameExploded = explode(' ', $name); $idx = 0; $nameHandled = array(); if(UTF8::substr($nameExploded[1], 0, 1) == '(') { $idx = 1; } $nameHandled[0] = $nameExploded[0]; $nameHandled[1] = $nameExploded[1 + $idx]; $nameHandled[2] = ''; for($i = 2 + $idx; $i < count($nameExploded); $i++) { $nameHandled[2] .= $nameExploded[$i].' '; } return Arr::map('trim', $nameHandled); } }