<td class="tac"></td> <td class="cWillContinue"></td> </tr> <tr> <th class="alignleft light" colspan="7"><?php echo __('Studio') ?></th> <?php foreach ($lessons as $lesson): ?> <td class="tac"><?php echo $lesson->getStudio()->getAbbreviation() ?></td> <?php endforeach; ?> <td> </td> <td> </td> </tr> <tr class=""> <th class="alignleft light" colspan="7"><?php echo __('Lehrer') ?></th> <?php foreach ($lessons as $lesson): ?> <td class="tac"> <?php echo Swingmachine::getTeachersAsString( $class->getTeachers() , false, "," ) ?> </td> <?php endforeach; ?> <td></td> <td></td> </tr> <!-- <tr class=""> <th class="alignleft light" colspan="8"><?php echo __('Kursbetreuer') ?></th> <?php foreach ($lessons as $lesson): ?> <td class="tac"> <?php #echo $class->getManager()->getFirstName() ?> </td> <?php endforeach; ?> <td></td> <td></td>
<table class="table table-condensed table-hover rowclick"> <tbody> <?php foreach ($enrolments as $i => $enrolment): $class = Swingmachine::isValidEmail( $enrolment->getPerson()->getEmail() ) ? '' : ' error text-error'; ?> <tr class="<?php echo $class ?>"> <td> <?php echo $i+1 ?> </td> <td> <?php echo $enrolment->getPerson() ?> </td> <td> <?php echo $enrolment->getPerson()->getEmail() ?> </td> <td> <?php #echo $enrolment->getSentAt() ?> </td> <!-- <td> <?php # if (!$enrolment->getSuccess() ) : ?> <a href="#<?php echo $enrolment->id ?>" data-toggle="modal" class="rowclick">Vorschau</a> <?php # endif; ?> </td> --> </tr> <div id="<?php echo $enrolment->id ?>" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
protected function execute($arguments = array(), $options = array()) { if (!$options['go']) $this->logBlock('Running in dry mode, no files will be created.', 'ERROR'); $pdf_dir = sfConfig::get('sf_data_dir').sfConfig::get("app_rockstep_pdf_dir"); $html_dir = sfConfig::get('sf_data_dir').sfConfig::get("app_rockstep_html2pdf_dir"); // get PDF file-info $pdf = array(); $weeds = array('.', '..','.DS_Store'); $directory = array_diff(scandir($pdf_dir), $weeds); foreach( $directory as $id => $filename ) { if (is_file($pdf_dir.$filename)) { $info = pathinfo($filename); $basename = basename($filename,'.'.$info['extension']); $timestamp = filemtime($pdf_dir.$filename); $pdf[$basename] = $timestamp; } } // get HTML files and compare to PDF $files2process = array(); $weeds = array('.', '..','.DS_Store'); $directory = array_diff(scandir($html_dir), $weeds); if (!$options['force']) { $this->logBlock(sprintf("Checking %d files in %s", count($directory), $html_dir), 'COMMENT'); } else { $this->logBlock(sprintf("Processing all %d files from %s", count($directory), $html_dir), 'COMMENT'); } foreach( $directory as $id => $filename ) { if (is_file($html_dir.$filename)) { //$info = pathinfo($filename); $basename = basename($filename,'.pdf.html'); //.$info['extension']); if (!$options['force']) { if (array_key_exists($basename, $pdf)) { if ($pdf[$basename] >= filemtime($html_dir.$filename)) { continue; // pdf is up to date } } } $files2process[$html_dir.$filename] = $pdf_dir.$basename.'.pdf'; } } // process PDF $error = 0; $success = 0; if (count($files2process) == 0) { $this->logBlock('Everything is up to date.', 'INFO'); } else { $this->logBlock(sprintf("%d files to process", count($files2process)), 'INFO'); foreach ($files2process as $html_path => $pdf_path) { $css = '/backend/pdf/kursliste.css'; $format = 'A4-L'; /* if (strpos($html_path, 'Absenzen') !== false ) { $css = '/backend/pdf/kursliste.css'; $format = 'A4-L'; } else { $css = '/backend/pdf/class_etat.css'; $format = 'A4-L'; } */ if ($options['go']) Swingmachine::mpdf($html_path, $pdf_path, $css, $format); $this->logSection('file+', sprintf("%s", basename($pdf_path))); $success++; } if ($error > 0) { $this->logBlock(sprintf('An error occured. No idea what went wrong. Sorry.', $error, $success), 'ERROR'); } else { $this->logBlock(sprintf('%d PDF files created', $success), 'INFO'); } } }
<?php require_once dirname(__FILE__).'/../bootstrap/unit.php'; $t = new lime_test(9); $t->is(Swingmachine::slugify('LindyHop'), 'lindyhop', '::slugify() converts all characters to lower case'); $t->is(Swingmachine::slugify('lindy hop'), 'lindy-hop', '::slugify() replaces a white space by a -'); $t->is(Swingmachine::slugify('lindy hop'), 'lindy-hop', '::slugify() replaces several white spaces by a single -'); $t->is(Swingmachine::slugify('lindy,balboa'), 'lindy-balboa', '::slugify() removes - at the beginning of a string'); $t->is(Swingmachine::slugify(' lindy'), 'lindy', '::slugify() removes - at the end of a string'); $t->is(Swingmachine::slugify('lindy '), 'lindy', '::slugify() replaces non-ASCII characters by a -'); $t->is(Swingmachine::slugify(''), 'n-a', '::slugify() converts the empty string to n-a'); $t->is(Swingmachine::slugify(' - '), 'n-a', '::slugify() converts a string that only contains non-ASCII characters to n-a'); if (function_exists('iconv')) { $t->is(Swingmachine::slugify('Cours Réguliers'), 'cours-reguliers', '::slugify() removes accents'); } else { $t->skip('::slugify() removes accents - iconv not installed'); }
public function executeIndex(sfWebRequest $request) { $this->form = new sfForm(); $this->form->setWidgets(array( 'input' => new sfWidgetFormTextArea( array(), array( 'rows' => 10, 'class' => 'span9' )), 'role' => new sfWidgetFormChoice( array( 'choices' => array( 'leader' => 'leader', 'follower' => 'follower') )), 'type' => new sfWidgetFormChoice( array( 'choices' => Doctrine::getTable('dsClassStudent')->getTypes() )) )); $this->form->setDefault('input', $this->getUser()->getAttribute('import_raw')); // Deal with the request if ($request->isMethod('post')) { // Handle the form submission $input = $request->getPostParameter('input'); $role = $request->getPostParameter('role'); $this->type = $request->getPostParameter('type'); $this->getUser()->setAttribute('import_raw', $this->input); // Do stuff $array = Swingmachine::csvstring_to_array($input, "\t"); // validate emails $this->array = array(); foreach( $array as $row ): // $valid = 1; $newrow = array( 'firstname' => array_key_exists(0, $row) ? $row[0] : null, 'lastname' => array_key_exists(1, $row) ? $row[1] : null, 'email' => array_key_exists(2, $row) ? $row[2] : null, 'student' => array_key_exists(3, $row) ? $row[3] : null, 'note' => array_key_exists(4, $row) ? $row[4] : null ); $test = $newrow['email'].""; $newrow['email-valid'] = Swingmachine::isValidEmail($test); array_push($this->array, $newrow); endforeach; $this->role = $role; $this->new = $this->array; $this->getUser()->setAttribute('import_data', $this->array); $this->getUser()->setAttribute('import_role', $this->role); $this->getUser()->setAttribute('import_type', $this->type); $this->redirect('import_preview'); //$this->array = $new; //$this->redirect('ds_class_student_import_preview'); } }
static public function csvstring_to_array($string, $separatorChar = ',', $enclosureChar = '"', $newlineChar = "\n") { // @author: Klemen Nagode $array = array(); $size = strlen($string); $columnIndex = 0; $rowIndex = 0; $fieldValue=""; $isEnclosured = false; //$string = preg_replace('/^\p{Z}+|\p{Z}+$/u','',$string); //$string = preg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', ' ', $string); for($i=0; $i<$size;$i++) { $char = $string{$i}; // echo "<br>".$i."-".$char."--".ord($char); if (ord($char) == 160) // Non-breaking space - A0 $char = ' '; if (ord($char) == 194) // Non-breaking space - A0 $char = ' '; /* if (ord($char) == 157) // Unknown $char = ' '; // 0D if ($char == "\x0D") $char = ' '; // carriage return */ $addChar = ""; if($isEnclosured) { if($char==$enclosureChar) { if($i+1<$size && $string{$i+1}==$enclosureChar){ // escaped char $addChar=$char; $i++; // dont check next char }else{ $isEnclosured = false; } }else { $addChar=$char; } }else { if($char==$enclosureChar) { $isEnclosured = true; }else { if($char==$separatorChar) { $array[$rowIndex][$columnIndex] = Swingmachine::supertrim($fieldValue); $fieldValue=""; $columnIndex++; }elseif($char==$newlineChar) { # echo $char; $array[$rowIndex][$columnIndex] = Swingmachine::supertrim($fieldValue); $fieldValue=""; $columnIndex=0; $rowIndex++; }else { $addChar=$char; } } } if($addChar!=""){ $fieldValue.=$addChar; } } if($fieldValue) { // save last field $array[$rowIndex][$columnIndex] = Swingmachine::supertrim($fieldValue); } return $array; }
public function getTeachersAsString() { return Swingmachine::getTeachersAsString( $this->getTeachers() ); }
public function generateKurslistePDF($download = null) { $filename = $this->getKurslisteFilename(); $html2pdf_dir = sfConfig::get('sf_data_dir').sfConfig::get('app_rockstep_html2pdf_dir'); $css = '/backend/pdf/kursliste.css'; $format = 'A4-L'; Swingmachine::mpdf($html2pdf_dir.$filename.'.html', $filename, $css, $format, $download); return true; }
public function executeImport(sfWebRequest $request) { $this->form = new sfForm(); $this->form->setWidgets(array( 'input' => new sfWidgetFormTextArea(), 'role' => new sfWidgetFormChoice( array('choices' => array( 'lead' => 'lead', 'follow' => 'follow'))) )); $this->form->setDefault('input', $this->getUser()->getAttribute('import_raw')); // Deal with the request if ($request->isMethod('post')) { // Handle the form submission $input = $request->getPostParameter('input'); $role = $request->getPostParameter('role'); $this->getUser()->setAttribute('import_raw', $this->input); // Do stuff $array = Swingmachine::csvstring_to_array($input, "\t"); // validate emails $this->array = array(); foreach( $array as $row ): // $valid = 1; $test = $row[2].""; $valid = Swingmachine::isValidEmail($test); $row['email-valid'] = $valid; array_push($this->array, $row); endforeach; $this->role = $role; $this->new = $this->array; $this->getUser()->setAttribute('import_data', $this->array); $this->getUser()->setAttribute('import_role', $this->role); $this->redirect('@ds_class_students_importPreview?class_id='.$this->class->getId() ); //$this->array = $new; //$this->redirect('ds_class_student_import_preview'); } }