Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions config/schema/webform_replicado.schema.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Schema for the configuration files of the webform_replicado module.
webform_replicado.settings:
type: config_object
label: 'webform_replicado settings'
mapping:
example:
type: string
label: 'Example'
102 changes: 102 additions & 0 deletions src/Element/DepartamentosElement.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
<?php

namespace Drupal\webform_replicado\Element;

use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Element\Textfield;



/**
* Provides a department element.
*
* @FormElement("departamentos_fflch")
*/


class DepartamentosElement extends Textfield {

public function getInfo(): array {
$class = get_class($this);
return parent::getInfo() + [
'#input' => TRUE,
'#element_validate' => [
[$class, 'validateDepartamentos'],
],
];
}





public static function validateDepartamentos(&$element, FormStateInterface $form_state, &$complete_form): void {

$value = $element['#value'];

$value = mb_strtolower($element['#value'], 'UTF-8');

$value = strtr($value, [
'á' => 'a', 'à' => 'a', 'ã' => 'a', 'â' => 'a',
'é' => 'e', 'ê' => 'e',
'í' => 'i',
'ó' => 'o', 'ô' => 'o', 'õ' => 'o',
'ú' => 'u',
'ç' => 'c',
]);

$departamentos = [
'departamento de antropologia',
'departamento de ciencia politica',
'departamento de filosofia',
'departamento de geografia',
'departamento de historia',
'departamento de letras classicas e vernaculas',
'departamento de letras modernas',
'departamento de letras orientais',
'departamento de linguistica',
'departamento de sociologia',
'departamento de teoria literaria e literatura comparada',
'antropologia',
'ciencia politica',
'filosofia',
'geografia',
'historia',
'letras classicas e vernaculas',
'letras modernas',
'letras orientais',
'linguistica',
'sociologia',
'teoria literaria e literatura comparada',
'fla',
'flp',
'flf',
'flg',
'flh',
'flc',
'flm',
'flo',
'fll',
'fsl',
'flt',
];

$valido = FALSE;

foreach ($departamentos as $departamento) {
if (str_contains($value, $departamento)) {
$valido = TRUE;
break;
}
}

if (!$valido) {
$form_state->setError(
$element,
t('Esse departamento não é da FFLCH.')
);
}
}
}


80 changes: 80 additions & 0 deletions src/Element/HabilitacaoElement.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<?php

namespace Drupal\webform_replicado\Element;

use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Element\Textfield;



/**
* Provides a language element.
*
* @FormElement("habilitacao_letras")
*/


class HabilitacaoElement extends Textfield {

public function getInfo(): array {
$class = get_class($this);
return parent::getInfo() + [
'#input' => TRUE,
'#element_validate' => [
[$class, 'validateHabilitacao'],
],
];
}


public static function validateHabilitacao(&$element, FormStateInterface $form_state, &$complete_form): void {

$value = $element['#value'];

$value = mb_strtolower($element['#value'], 'UTF-8');

$value = strtr($value, [
'á' => 'a', 'à' => 'a', 'ã' => 'a', 'â' => 'a',
'é' => 'e', 'ê' => 'e',
'í' => 'i',
'ó' => 'o', 'ô' => 'o', 'õ' => 'o',
'ú' => 'u',
'ç' => 'c',
]);

$habilitacoes = [
'portugues',
'grego',
'latim',
'alemao',
'espanhol',
'frances',
'ingles',
'italiano',
'arabe',
'armenio',
'chines',
'coreano',
'hebraico',
'japones',
'russo',
'linguistica',
];

$valido = FALSE;

foreach ($habilitacoes as $habilitacao) {
if (str_contains($value, $habilitacao)) {
$valido = TRUE;
break;
}
}

if (!$valido) {
$form_state->setError(
$element,
t('Essa habilitação não consta.')
);
}
}
}
81 changes: 81 additions & 0 deletions src/Element/NumeroUspElement.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?php

namespace Drupal\webform_replicado\Element;

use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Element\Textfield;
use Uspdev\Replicado\Pessoa;
use Uspdev\Replicado\Replicado;

/**
* Provides a USP number element.
*
* @FormElement("numero_usp")
*/
class NumeroUspElement extends Textfield {

public function getInfo(): array {
$class = get_class($this);

return parent::getInfo() + [
'#input' => TRUE,
'#element_validate' => [
[$class, 'validateNumeroUsp'],
],
];
}

/**
* Validates the USP number.
*/
public static function validateNumeroUsp(&$element, FormStateInterface $form_state,&$complete_form): void {

$value = str_replace(['.', '-'], '', $element['#value']);

$tipo = $form_state->getValue('tipo_de_vinculo');

switch ($tipo) {

case 'intercambista':
case 'funcionario':
if (strlen($value) != 7) {
$form_state->setError(
$element,
t('O Número USP deve possuir 7 dígitos.')
);
}
break;

case 'docente':
case 'graduacao':
case 'pos':
default:
if (strlen($value) != 8) {
$form_state->setError(
$element,
t('O Número USP deve possuir 8 dígitos.')
);
}
break;
}
//validação para garantir que o número usp existe

//$config = [
//'host' => '192.168.100.89',
//'port' => 1498,
//'database' => 'rep_dbc',
//'username' => 'dbmaint_read',
//'password' => 'secret',
//'codundclg' => '8',
//'codundclgs' => '8,84',
//'pathlog' => 'path/to/your.log',
//'sybase' => true,
//'usarCache' => false,
//'debug' => false,
//'debugLevel' => 1,
// $validação = $config->get('validação')
//];

}

}
90 changes: 90 additions & 0 deletions src/Element/PosGradElement.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?php

namespace Drupal\webform_replicado\Element;

use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Element\Textfield;



/**
* Provides a post element.
*
* @FormElement("pos_grad")
*/


class PosGradElement extends Textfield {

public function getInfo(): array {
$class = get_class($this);
return parent::getInfo() + [
'#input' => TRUE,
'#element_validate' => [
[$class, 'validatePosGrad'],
],
];
}



public static function validatePosGrad(&$element, FormStateInterface $form_state, &$complete_form): void {

$value = $element['#value'];

$value = mb_strtolower($element['#value'], 'UTF-8');

$value = strtr($value, [
'á' => 'a', 'à' => 'a', 'ã' => 'a', 'â' => 'a',
'é' => 'e', 'ê' => 'e',
'í' => 'i',
'ó' => 'o', 'ô' => 'o', 'õ' => 'o',
'ú' => 'u',
'ç' => 'c',
]);

$programas = [
'antropologia social',
'ciencia politica',
'estudos comparados de literaturas de linguas portuguesa',
'estudos linguisticos e literarios em ingles',
'filologia e lingua portuguesa',
'filosofia',
'geografia fisica',
'geografia humana',
'historia economica',
'historia social',
'humanidades, direitos e outras legitimidades',
'letras classicas',
'letras estrangeiras e traducao',
'letra',
'lingua e literartura alema',
'lingua espanhola e literaturas espanhola e hispano-americana',
'lingua, literatura e cultura italianas',
'lingua, literatura e cultura japonesas',
'linguistica',
'literatura brasileira',
'literatura portuguesa',
'mestrado profissional em letras em rede nacional',
'profletras',
'sociologia',
'teoria literaria e literatura comparada',
];

$valido = FALSE;

foreach ($programas as $programa) {
if (str_contains($value, $programa)) {
$valido = TRUE;
break;
}
}

if (!$valido) {
$form_state->setError(
$element,
t('Esse programa não consta na Pós-Graduação.')
);
}
}
}
Loading