JForms - Editando data

5 respostas
fabrico

Olá, sou novo na área e gostaria que seja qual for a ajuda, seja detalhada. Estou utilizando o JForms para o Joomla e preciso fazer um formulário onde um dos campo é a data para o evento, pois tratasse de um site de buffet para festas. Até ai tudo bem, o problema é que os meses a escolher estão em inglês e como o site esta em portugues, vai ficar meio estranho né ?! Gostaria que de saber qual arquivo eu modifico e onde eu modifico para alterar a forma de exibição dos meses. Prociso muito dessa dica. Quero deixar claro que eu não manjo de programação, olhando tenho uma vaga noção, mas não programo.

5 Respostas

ViniGodoy

Dê uma olhada na sua pasta do joomla, no caminho:
/administrator/components/com_jforms/language

Geralmente lá terá uma pasta para cada idioma do seu plugin.

Se não tiver para o Brasil, crie uma pasta pt-BR, então baixe o conteúdo da en-GB, faça a tradução e coloque nessa pasta.

Aproveite e refaça o upload para o criador do site. Aí vc ajuda outros brasileiros como vc.

fabrico

Ja dei uma olhada nessa pasta e encontrei os arquivos referente aos idiomas, mas tem 2 porens, como eu faço para alterar o idioma do jforms para uso no admin… exemplo, se eu quiser alterar para fr-FR que deve ser frances, eu naum sei como mudar.E a outra duvida é onde eu vou traduzir para o portugues brasileiro ? pois eu encontrei o arquivo que eu quero, que é o “en-GB.element.Date”, mas naum sei onde indicar nesse arquivo que ao inves de aparecer o meses em ingles, tem q aparecer os meses em portugues br… Ententeu ?

ViniGodoy

Você vai ter que criar outro arquivo:
pt-BR.element-Date, e coloca-lo numa pasta também chamada pt-BR.

Você deve seguir a mesma estrutura da pasta en-GB, mas para pt-BR. Se o plugin foi implementado direito, ele deve puxar o idioma que você definiu para o joomla todo, assim que os arquivos estiverem lá.

fabrico

bom, eu apanhaei pra tentar achar o arquivo referente aos meses e acho que achei, porem, naum modificou em nada. Logo abaixo, esta a estrutura do arquivo referente ao elemento data.

OBS: em vermelho estam os meses em portugues q modifiquei do ingles, porem naum alterou em nada.

<?php /** * Date Element plugin * * @version $Id: date.php 362 2010-02-20 06:50:23Z dr_drsh $ * @package Joomla * @subpackage JForms.Plugins * @copyright Copyright (C) 2008 Mostafa Muhammad. All rights reserved. * @license GNU/GPL */ // Check to ensure this file is included in Joomla! defined('_JEXEC') or die(); /** * Date Element plugin * * @package Joomla * @subpackage JForms.Plugins */ jimport('joomla.filesystem.file'); class JFormEPluginDate extends JFormEPlugin { function getSQL( $elementData, $criteria ){ $db =& JFactory::getDBO(); $from = $criteria->from; $to = $criteria->to; $mode = $criteria->mode=='or'?' OR ':' AND '; $fragments = array(); $field= $elementData->parameters['hash']; if($from != '' ) $fragments[] = "`$field` >= '$from'"; if($to != '' ) $fragments[] = "`$field` <= '$to'"; $sql = implode( ' AND ', $fragments ); if( trim( $sql ) != '' ){ $sql = "($sql) $mode"; } return $sql; } function beforeSave( $elementData, $input ){ $p = JArrayHelper::toObject($elementData->parameters); $arrangedValue = array(); $format = explode('/',$p->format); foreach($format as $key => $e){ if($e == 'DD')$arrangedValue[0] = $input[intval($key)]; if($e == 'MM')$arrangedValue[1] = $input[intval($key)]; if($e == 'YYYY')$arrangedValue[2] = $input[intval($key)]; } //Store in mysql date Format return intval($arrangedValue[2]) . '-' . intval($arrangedValue[1]) . '-' . intval($arrangedValue[0]); } function _getSegment( $segment, $input ){ if( $segment == '' )return $input; $output = explode( '-', $input ); if( count($output) != 3 )return null; switch( $segment ){ case 'day': return $output[2]; case 'month': return $output[1]; case 'year': return $output[0]; } return null; } function translate( $elementData, $input, $format='html', $segment=''){ $segment = trim($segment); $p = JArrayHelper::toObject($elementData->parameters); $object = JFormEPluginDate::_getSegment( $segment, $input ); if( is_null($object) )return null; switch( $format ){ case 'raw': case 'html': if($segment == '')return str_replace(array('YYYY','MM','DD'),explode('-',$object),$p->format); else return $object; case 'object': return $object; } return null; } function render( $elementData ){ $p = JArrayHelper::toObject($elementData->parameters); $default = property_exists($elementData,'defaultValue' )?$elementData->defaultValue:$p->defaultValue; $error = property_exists($elementData,'validationError' )?$elementData->validationError:''; if( !is_array( $default )){ //coming from DB $default = str_replace('-',"\n",$default); $default = explode("\n", $default); $arrangedDefault = array(); $format = explode('/',$p->format); foreach($format as $key => $e){ if($e == 'DD')$arrangedDefault[0] = $default[2]; if($e == 'MM')$arrangedDefault[1] = $default[1]; if($e == 'YYYY')$arrangedDefault[2] = $default[0]; } $default = $arrangedDefault; } else { //Coming from POST request $arrangedDefault = array(); $format = explode('/',$p->format); foreach($format as $key => $e){ if($e == 'DD')$arrangedDefault[0] = $default[intval($key)]; if($e == 'MM')$arrangedDefault[1] = $default[intval($key)]; if($e == 'YYYY')$arrangedDefault[2] = $default[intval($key)]; } $default = $arrangedDefault; } $css = $p->css; $inputClass = $css . (empty( $error )?'':' input-error'); $labelClass = $css . (empty( $error )?'':' label-error'); $labelStyle = $p->useCss?'':"width:{$p->lw}px;height:{$p->lh}px"; $htmlId = $p->hash.'_'.$elementData->id; $startYear = $p->startYear; $endYear = 0; switch( $p->span ){ case 0: $endYear = intval(date('Y')); break; case -1: $endYear = $p->startYear + $p->ospan; break; default: $endYear = $p->startYear + $p->span; break; } $p->label = htmlspecialchars($p->label, ENT_QUOTES); if( $p->required ) { $p->label = $p->label . ' * '; } $output = ''; $output .= _line("
$error
",2 ); $output .= _line("$p->label ",2); $format = explode('/',$p->format); foreach($format as $key => $e){ if( $e == 'DD' ){ $output .= _line( JFormEPluginDate::_intList( 1,31,1, $p->hash.'[]', "class='$inputClass day'", $default[0], '', $htmlId.'_d' ), 2); } if( $e == 'MM' ){ $output .= _line( JHTML::_('select.genericlist',JFormEPluginDate::_doMonthOptions(), $p->hash.'[]', "class='$inputClass month'" ,'value','text', $default[1],$htmlId.'_m' ), 2); } if( $e == 'YYYY' ){ $output .= _line( JFormEPluginDate::_intList( $startYear,$endYear,1, $p->hash.'[]', " class='$inputClass year'", $default[2], '', $htmlId.'_y' ), 2); } } $output .= _line('
',2); return $output; } function _doMonthOptions(){ $months = array(); [color=red] $months[] = JHTML::_('select.option', 1, JText::_('Janeiro')); $months[] = JHTML::_('select.option', 2, JText::_('Fevereiro')); $months[] = JHTML::_('select.option', 3, JText::_('Março')); $months[] = JHTML::_('select.option', 4, JText::_('Abril')); $months[] = JHTML::_('select.option', 5, JText::_('Maio')); $months[] = JHTML::_('select.option', 6, JText::_('Junho')); $months[] = JHTML::_('select.option', 7, JText::_('Julho')); $months[] = JHTML::_('select.option', 8, JText::_('Agosto')); $months[] = JHTML::_('select.option', 9, JText::_('Setembro')); $months[] = JHTML::_('select.option', 10, JText::_('Outobro')); $months[] = JHTML::_('select.option', 11, JText::_('Novembro')); $months[] = JHTML::_('select.option', 12, JText::_('Dezembro')); [/color] return $months; } function _intList($start, $end, $inc, $name, $attribs = null, $selected = null, $format = "", $id = "" ) { $start = intval( $start ); $end = intval( $end ); $inc = intval( $inc ); $arr = array(); for ($i=$start; $i <= $end; $i+=$inc) { $fi = $format ? sprintf( "$format", $i ) : "$i"; $arr[] = JHTML::_('select.option', $fi, $fi ); } return JHTML::_('select.genericlist', $arr, $name, $attribs, 'value', 'text', $selected, $id ); } function validate( $elementData, $input ){ $p = JArrayHelper::toObject($elementData->parameters); $arrangedValue = array(); $format = explode('/',$p->format); foreach($format as $key => $e){ if($e == 'DD')$arrangedValue[0] = $input[intval($key)]; if($e == 'MM')$arrangedValue[1] = $input[intval($key)]; if($e == 'YYYY')$arrangedValue[2] = $input[intval($key)]; } if( !checkdate( intval( $arrangedValue[1] ),intval( $arrangedValue[0] ),intval( $arrangedValue[2] ))){ return JText::_('Invalid date'); } return ''; } }
deiacorreia

não consegui achar esse arquivo…alguém me ajuda??? :oops:

Criado 7 de janeiro de 2011
Ultima resposta 13 de abr. de 2011
Respostas 5
Participantes 3