Query) ? $this->Query : 'Search';
$fields = new FieldSet(
new TextField("Search", "", $searchText)
);
$actions = new FieldSet(
new FormAction('results', 'Go')
);
return new SearchForm($this, "SearchForm", $fields, $actions);
}
function getLang(){
if(Translatable::current_lang() =='es')
return 0;
if(Translatable::current_lang() =='en')
return 1;
if(Translatable::current_lang() =='ca')
return 2;
}
function TrasnlateStrings(){
$data = array();
$data['area'] = array( "Área temática","Subject area","Àrea temàtica" );
$data['Language'] = array( "Idioma","Language","Idioma" );
$data['publication_type'] = array( "Tipo de publicación","Type of publication","Tipus de publicació" );
$data['Year'] = array( 'Año',"Year","Any" );
$data['investigation_type'] = array( 'Tipo de investigación',"Type of research","Tipus d'investigació" );
$data['cases'] = array("Casos de estudio","Case studies","Casos d'estudi");
$data['Title'] = array("Título","Title","Títol");
$data['autor'] = array("Autor","Author","Autor");
$data['buscar'] = array("Buscar","Search","Cercar");
$data['LangResult'] = array( false, array("","English","Spanish","Catalan"),
array("","Anglès","Castellà","Català")
);
$data['AreaStr'] = array(
false,
array(
"Corporate governance",
"CSR strategy and management",
"Human resources",
"Negotiations with stakeholders",
"Innovation",
"Environment",
"Social action",
"Communication and reporting",
"Socially responsible investing"
),
array(
"Govern corporatiu",
"Estratègia i gestió RSC",
"Recursos humans",
"Diàleg amb stakeholders",
"Innovació",
"Medi ambient",
"Acció social",
"Comunicació i reporting",
"Inversió socialment responsable")
);
$data['LangStr'] = array(
false,
array(
"Select","English","Spanish","Catalan"
),
array(
"Selecciona","Anglès", "Castellà", "català")
);
$data['TypeResearchStr']= array(
false,
array("Select", "Qualitative","Quantitative","Qualitative/quantitative"),
array("Selecciona","Qualitativa","Quantitativa","Qualitativa/quantitativa")
);
$data['PublicationStr'] =array(
false,
array("Select", "Book", "Book chapter", "Article in an academic magazine", "Article in specialized magazine", "Own publication"),
array("Selecciona","Llibre","Capítol de llibre","Article en revista acadèmica","Article en revista especialitzada","Publicació pròpia")
);
$data['CasesStr'] =array(
false,
array("Select", "Large enterprises", "SMEs","Large enterprises and SMEs","Other organizations"),
array("Selecciona","Empreses grans","PIMES","Empreses grans i PIMES","Altres organitzacions")
);
return $data;
}
function Form() {
//VARS
$area = array( "Área temática","Subject area","Àrea temàtica" );
$Language = array( "Idioma","Language","Idioma" );
$publication_type = array( "Tipo de publicación","Type of publication","Tipus de publicació" );
$Year = array( 'Año',"Year","Any" );
$investigation_type = array( 'Tipo de investigación',"Type of research","Tipus d'investigació" );
$cases = array("Casos de estudio","Case studies","Casos d'estudi");
$Title = array("Título","Title","Títol");
$autor = array("Autor","Author","Autor");
$buscar = array("Buscar","Search","Cercar");
$AreaStr = array(
false,
array(
"Corporate governance",
"CSR strategy and management",
"Human resources",
"Stakeholder dialogue",
"Innovation",
"Environment",
"Community engagement",
"Communication and reporting",
"Socially responsible investing"
),
array(
"Govern corporatiu",
"Estratègia i gestió RSC",
"Recursos humans",
"Diàleg amb stakeholders",
"Innovació",
"Medi ambient",
"Acció social",
"Comunicació i reporting",
"Inversió socialment responsable")
);
$TypeResearchStr= array(
false,
array("Select","Qualitative","Quantitative","Qualitative/quantitative"),
array("Selecciona","Qualitativa","Quantitativa","Qualitativa/quantitativa")
);
$ano = array(
false,
array( "Select","2011","2010","2009","2008","2007",
"2006",
"2005",
"2004",
"2003",
"2002",
"2001",
"2000"
),
array(
"Selecciona","2011","2010",
"2009",
"2008",
"2007",
"2006",
"2005",
"2004",
"2003",
"2002",
"2001",
"2000")
);
$PublicationStr =array(
false,
array(
"Select",
"Book",
"Book chapter",
"Article in an academic journal",
"Article in specialized press",
"Own publication"
),
array(
"Selecciona",
"Llibre",
"Capítol de llibre",
"Article en revista acadèmica",
"Article en revista especialitzada",
"Publicació pròpia"
)
);
$LangStr = array(
false,
array("Select",
"English",
"Spanish",
"Catalan"),
array(
"Selecciona",
"Anglès",
"Castellà",
"Català"));
$CasesStr =array(
false,
array(
"Select",
"Large enterprises",
"SMEs",
"Large enterprises and SMEs",
"Other organizations"),
array(
"Selecciona",
"Empreses grans",
"PIMES",
"Empreses grans i PIMES",
"Altres organitzacions")
);
$count=0;
foreach ( singleton('MyObject')->dbObject('Area')->enumValues() as $key => $value)
{
$AreaDropDown[$key] = $x =($AreaStr[$this->getLang()]) ? $AreaStr[$this->getLang()][$count] : $value;
$count++;
}
$c=0;
foreach ( singleton('MyObject')->dbObject('publication_type')->enumValues() as $key => $value)
{
$publication[$key] = $x =($PublicationStr[$this->getLang()]) ? $PublicationStr[$this->getLang()][$c] : $value;
$c++;
}
$c=0;
foreach ( singleton('MyObject')->dbObject('cases')->enumValues() as $key => $value)
{
$cas[$key] = $x =($CasesStr[$this->getLang()]) ? $CasesStr[$this->getLang()][$c] : $value;
$c++;
}
$c=0;
foreach ( singleton('MyObject')->dbObject('investigation_type')->enumValues() as $key => $value)
{
$investigation[$key] = $x =($TypeResearchStr[$this->getLang()]) ? $TypeResearchStr[$this->getLang()][$c] : $value;
$c++;
}
$c=0;
foreach ( singleton('MyObject')->dbObject('Lang')->enumValues() as $key => $value)
{
$Lng[$key] = $x =($LangStr[$this->getLang()]) ? $LangStr[$this->getLang()][$c] : $value;
$c++;
}
$c=0;
foreach ( singleton('MyObject')->dbObject('year')->enumValues() as $key => $value)
{
$an[$key] = $x =($ano[$this->getLang()]) ? $ano[$this->getLang()][$c] : $value;
$c++;
}
return new Form($this, "Form", new FieldSet(
new CheckboxSetField($name = "Area", $title = $area[$this->getLang()],$source = $AreaDropDown, $value = "0"
),
// List your fields here
new TextField("Titulo", $Title[$this->getLang()]),
new TextField("Autor", $autor[$this->getLang()]),
new DropdownField(
'Lang',
$Language[$this->getLang()],
$Lng
),
new DropdownField(
'publication_type',
$publication_type[$this->getLang()] ,
$publication
),
new DropdownField(
'year',
$Year[$this->getLang()],
$an
),
new DropdownField(
'investigation_type',
$investigation_type[$this->getLang()],
$investigation
),
new DropdownField(
'cases',
$cases[$this->getLang()],
$cas
)
), new FieldSet(
// List the action buttons here
new FormAction("Resultados", $buscar[$this->getLang()])
), new RequiredFields(
));
}
function GetData () {
/***VARIABLES POR POST ***/
$numero2 = count($_POST);
$tags2 = array_keys($_POST); // obtiene los nombres de las varibles
$valores2 = array_values($_POST);// obtiene los valores de las varibles
$data['url'] = "/base-de-datos-sobre-estudios-en-rsc/";
$data ['executeForm'] = "Form";
for($i=0;$i<$numero2;$i++){
$data[$tags2[$i]] = $valores2[$i];
}
#print_r($data);
return $data;
}
function getParameters () {
}
function EmptyParams( $arr ) {
$co = 0;
foreach ( $arr as $key => $item ){
if( $key == "Titulo" || $key == "Autor" || $key == "Lang" || $key == "publication_type" || $key == "year" || $key == "investigation_type" || $key == "cases" || $key == "Area" || $key == "Order" || $key == "lang" ) {
if( $item == "" || $item == "Selecciona" ){ }
else { $co +=1;}
}
}
return $co;
}
function Resultados($data, $form=false) {
$data = $this -> GetData ();
$TrasnlateStrings =$this->TrasnlateStrings();
if( $this -> EmptyParams( $data ) > 0 ) {
$Nores ='';
$hidden = '';
$autor = $v = (isset($data['Autor'])) ? $data['Autor'] : false;
$filter = null;
$order = null;
$Title = $v = (isset($data['Titulo'])) ? $data['Titulo'] : false;
$c=0;
foreach($data as $key => $value){
if( $key == 'Titulo' && $value != '' ) {
$hidden .="" ;
}
if( $key == 'Autor' && $value != '' ) {
$hidden .="" ;
}
if( $key == 'investigation_type' && $value != 'Selecciona' ) {
$filter .= "AND investigation_type = '$value' ";
$hidden .="" ;
}
if( $key == 'publication_type' && $value != 'Selecciona' ) {
$filter .= "AND publication_type = '$value' ";
$hidden .="" ;
}
if( $key == 'cases' && $value != 'Selecciona' ) {
$filter .= "AND cases = '$value' ";
$hidden .="" ;
}
if( $key == 'year' && $value != 'Selecciona' ) {
$filter .= "AND year = '$value' ";
$hidden .="" ;
}
if( $key == 'Lang' && $value != 'Selecciona' ) {
$filter .= "AND lang = '$value' ";
$hidden .="" ;
}
if( $key == 'Area' && $value != '') {
$area = is_array( $data['Area']) ? implode(",", $value) : $value;
$hidden .="" ;
}
}
/*
QUERY
*/
if ( isset($_REQUEST['Order']))
if($_REQUEST['Order'] == 'year')
$order = ' ORDER BY '. $_REQUEST['Order']. ' ASC';
else
$order = ' ORDER BY '. $_REQUEST['Order']. ' DESC';
$AutorFilert = " WHERE Autor LIKE '%$autor%' ";
if($Title !='')
$TitleFilert = "AND Titulo LIKE '%$Title%' ";
else
$TitleFilert ="";
$q ="SELECT * FROM fichaDbDataObject ". $AutorFilert. $TitleFilert. $filter. $order;
$records = DB::query($q);
$doSet = new DataObjectSet();
$dt = is_array( $data['Area']) ? $data['Area'] : $this ->toArray ( $data['Area'] ) ;
$ReferenciaStr = array( "Referencia publicación","Publication reference","Referència de publicació");
$SelectYear = array("Año","Year","Any");
$SelAutor = array("Autor","Author","Autor");
$SelTitle = array("Título","Title","Títol");
$SelSel = array("Selecciona","Select", "Selecciona");
////if (!$records) {
$cuentarecords = 0;
foreach ( $records as $key =>$value ){
$areas = $this -> relevance ($dt , $value['Area'] ) ;
$area = $value['Area'];
if( $areas > 0 || !is_numeric($areas)) {
$c=0;
foreach ( singleton('MyObject')->dbObject('publication_type')->enumValues() as $key => $v)
{
if($value['publication_type'] == $key){
$publication = $x =($TrasnlateStrings['PublicationStr'][$this->getLang()][$c] ) ? $TrasnlateStrings['PublicationStr'][$this->getLang()][$c] : $value['publication_type'] ;
}
$c++;
}
////
$c=0;
foreach ( singleton('MyObject')->dbObject('investigation_type')->enumValues() as $key => $v)
{
if($value['investigation_type'] == $key){
$TypeResearch = $x =($TrasnlateStrings['TypeResearchStr'][$this->getLang()][$c] ) ? $TrasnlateStrings['TypeResearchStr'][$this->getLang()][$c] : $value['investigation_type'] ;
}
$c++;
}
////
$c=0;
foreach ( singleton('MyObject')->dbObject('cases')->enumValues() as $k => $v)
{
if($value['cases'] == $k){
$casos = $x =($TrasnlateStrings['CasesStr'][$this->getLang()][$c] ) ? $TrasnlateStrings['CasesStr'][$this->getLang()][$c] : $value['cases'] ;
}
$c++;
}
$c=0;
foreach ( singleton('MyObject')->dbObject('Lang')->enumValues() as $k => $v)
{
if($value['Lang'] == $k){
$LangResult = $x =($TrasnlateStrings['LangResult'][$this->getLang()][$c] ) ? $TrasnlateStrings['LangResult'][$this->getLang()][$c] : $value['Lang'] ;
}
$c++;
}
////////
$ReferenciaStr = array( "Referencia publicación","Publication reference","Referència de publicació");
if($this->getLang() > 0)
$listaAreas = explode(",",$area);
# $DefaultArea = singleton('MyObject')->dbObject('Area')->enumValues();
# $TrasnlateStrings['AreaStr'][$this->getLang()] ;
$c=0;
$str='';
$AreaStr = array(
array(
"Gobierno corporativo",
"Estrategia y gestión RSC",
"Recursos humanos",
"Diálogo con stakeholders",
"Innovación",
"Medio ambiente",
"Acción social",
"Comunicación y reporting",
"Inversión socialmente responsable"
),
array(
"Corporate governance",
"CSR strategy and management",
"Human resources",
"Stakeholder dialogue",
"Innovation",
"Environment",
"Community engagement",
"Communication and reporting",
"Socially responsible investing"
),
array(
"Govern corporatiu",
"Estratègia i gestió RSC",
"Recursos humans",
"Diàleg amb stakeholders",
"Innovació",
"Medi ambient",
"Acció social",
"Comunicació i reporting",
"Inversió socialment responsable")
);
if (($this->getLang())==0) {
$str=$area;
}
else
{
$str='';
}
foreach ($listaAreas as $selectedArea ){
$cd=0;
foreach ($AreaStr[0] as $areas ){
if($selectedArea == $areas){
#echo ' 1 -> ' .$AreaStr[$this->getLang()][$cd] .' 2 -> '. $cd .'
';
$str .= $AreaStr[$this->getLang()][$cd].', ';
}
$cd++;
}
}
#if()
$record = array(
'relevance' => $areas ,
'Autor' => $value['Autor'],
'area' =>$str,
'investigation_type' => $TypeResearch,
'publication_type' =>$publication,
'URL' => $value['URL'],
'referencia' => $value['referencia'],
'cases' => $casos,
'year' => $value['year'],
'Titulo' => $value['Titulo'],
'Lang' => $LangResult,
'ano' => $TrasnlateStrings['Year'][$this->getLang()],
'Language' => $TrasnlateStrings['Language'][$this->getLang()],
'publication_typeStr' => $TrasnlateStrings['publication_type'][$this->getLang()],
'investigation_typeStr' => $TrasnlateStrings['investigation_type'][$this->getLang()],
'casesStr' => $TrasnlateStrings['cases'][$this->getLang()],
'Title' => $TrasnlateStrings['Title'][$this->getLang()],
'Area' => $TrasnlateStrings['area'][$this->getLang()],
'autor' => $TrasnlateStrings['autor'][$this->getLang()],
'ReferenciaStr'=> $ReferenciaStr[$this->getLang()],
);
$fichas[] = $record ;
}
}
foreach ( $fichas as $value ){
$cuentarecords++;
$doSet->push(new ArrayData($value));
}
/*}
else {
$msj =array("No se han encontrado resultados con los criterios introducidos.", "No results have been found for the introduced criteria.","No s'han trobat resultats amb els criteris introduïts.");
$m = $msj[$this->getLang()];
$Nores = "