forked from qwerty/tupali
prueba de concepto de estadisticas en notas
This commit is contained in:
parent
b701d1c83d
commit
450245f254
@ -1,12 +1,246 @@
|
||||
<?php
|
||||
date_default_timezone_set('America/Bogota');
|
||||
|
||||
function limpiar_cadena($cadena) {
|
||||
return (preg_replace('[^ A-Za-z0-9_-ñÑ]', '', $cadena));
|
||||
// return preg_replace('/\&(.)[^;]*;/', '\\1', $cadena);
|
||||
}
|
||||
|
||||
|
||||
function cadena_array($text,$tipo,$cantidad) {
|
||||
$limpios="";
|
||||
$compuestos="";
|
||||
$array_compuestos =array();
|
||||
$wordCounter =array();
|
||||
$cantidades =array();
|
||||
if($cantidad =="") {$cantidad="10";}
|
||||
$extras = array(
|
||||
'p'=>array('de','la','que','el','en','y','a','los','del','se','las','por','un','para','con','no','una','su','al','es','lo',
|
||||
'como','más','pero','sus','le','ya','o','fue','este','ha','sí','porque','esta','son','entre','está','cuando','muy','sin','sobre',
|
||||
'ser','tiene','también','me','hasta','hay','donde','han','quien','están','estado','desde','todo','nos','durante','estados','todos',
|
||||
'uno','les','ni','contra','otros','fueron','ese','eso','había','ante','ellos','e','esto','mí','antes','algunos','qué','unos','yo'
|
||||
,'otro','otras','otra','él','tanto','esa','estos','mucho','quienes','nada','muchos','cual','sea','poco','ella','estar','haber',
|
||||
'estas','estaba','estamos','algunas','algo','nosotros','mi','mis','tú','te','ti','tu','tus','ellas','nosotras','vosotros','vosotras',
|
||||
'os','mío','mía','míos','mías','tuyo','tuya','tuyos','tuyas','suyo','suya','suyos','suyas','nuestro','nuestra','nuestros','nuestras',
|
||||
'vuestro','vuestra','vuestros','vuestras','esos','esas','estoy','estás','está','estamos','estáis','están','esté','estés','estemos',
|
||||
'estéis','estén','estaré','estarás','estará','estaremos','estaréis','estarán','estaría','estarías','estaríamos','estaríais',
|
||||
'estarían','estaba','estabas','estábamos','estabais','estaban','estuve','estuviste','estuvo','estuvimos','estuvisteis','estuvieron',
|
||||
'estuviera','estuvieras','estuviéramos','estuvierais','estuvieran','estuviese','estuvieses','estuviésemos','estuvieseis','estuviesen',
|
||||
'estando','estado','estada','estados','estadas','estad','he','has','ha','hemos','habéis','han','haya','hayas','hayamos','hayáis',
|
||||
'hayan','habré','habrás','habrá','habremos','habréis','habrán','habría','habrías','habríamos','habríais','habrían','había','habías',
|
||||
'habíamos','habíais','habían','hube','hubiste','hubo','hubimos','hubisteis','hubieron','hubiera','hubieras','hubiéramos','hubierais',
|
||||
'hubieran','hubiese','hubieses','hubiésemos','hubieseis','hubiesen','habiendo','habido','habida','habidos','habidas','soy','eres',
|
||||
'es','somos','sois','son','sea','seas','seamos','seáis','sean','seré','serás','será','seremos','seréis','serán','sería','serías',
|
||||
'seríamos','seríais','serían','era','eras','éramos','erais','eran','fui','fuiste','fue','fuimos','fuisteis','fueron','fuera','fueras',
|
||||
'fuéramos','fuerais','fueran','fuese','fueses','fuésemos','fueseis','fuesen','siendo','sido','tengo','tienes','tiene','tenemos',
|
||||
'tenéis','tienen','tenga','tengas','tengamos','tengáis','tengan','tendré','tendrás','tendrá','tendremos','tendréis','tendrán',
|
||||
'tendría','tendrías','tendríamos','tendríais','tendrían','tenía','tenías','teníamos','teníais','tenían','tuve','tuviste','tuvo',
|
||||
'tuvimos','tuvisteis','tuvieron','tuviera','tuvieras','tuviéramos','tuvierais','tuvieran','tuviese','tuvieses','tuviésemos',
|
||||
'tuvieseis','tuviesen','teniendo','tenido','tenida','tenidos','tenidas','tened',
|
||||
'ante', 'bajo', 'con', 'contra', 'desde', 'durante', 'entre',
|
||||
'hacia', 'hasta', 'mediante', 'para', 'por', 'pro', 'según',
|
||||
'sin', 'sobre', 'tras', 'vía', 'también','parecen','toca','numero','número','video','vídeo','fotos','asi','así','miles'
|
||||
,'cientos','imágenes','imagenes','años','sentido','ultimos','últimos','mano','dicen','casi','servicio','vice','pero','Pero','trata','decir'
|
||||
),
|
||||
'a'=>array('el','él','los', 'las', 'una', 'unos', 'unas', 'este', 'estos', 'ese',
|
||||
'esos', 'aquel', 'aquellos', 'esta', 'estas', 'esa', 'esas',
|
||||
'aquella', 'aquellas', 'usted', 'nosotros', 'vosotros',
|
||||
'ustedes', 'nos', 'les', 'nuestro', 'nuestra', 'vuestro',
|
||||
'vuestra', 'mis', 'tus', 'sus', 'nuestros', 'nuestras',
|
||||
'vuestros', 'vuestras', 'de', 'la', 'su', 'La', 'No', 'rcn', 'RCN', 'El', 'una', 'Una'
|
||||
),
|
||||
'o'=>array('esto', 'que', 'del', 'es', 'en', 'ha', 'al', 'lo', 'un','si','sí','no','se','art','luego','solo','más','como','cómo','dijo',
|
||||
'buena','buen','algunos','algunas','el','donde','fueron','más','varios','personas','uno','dos','tres','cuatro','cinco','seis','siete','ocho','nueve','diez'
|
||||
,'causa','cien','mil','millon','millones','pesos','quien','que','fecha','tiene','vez','hay','horas','fue','com','var','uri','mas','quot','minuto','the','event',
|
||||
'param','pero','and','split','ciento','san','son','aacute','colombia','pais','un','Un','youtube','estaba','ayer','hoy','anoche',
|
||||
'adelante','ahora','allá','anoche','antaño','anteanoche','antenoche','antes','aquí','aún','ayer','constantemente','cuando','despacio',
|
||||
'después','durante','enantes','encima','endenantes','enseguida','hasta','hogaño','horita','hoy','luego','mañana','mientras','mucho',
|
||||
'nunca','primero','pronto','recientemente','recién','siempre','tarde','temprano','todavía','ya','parte','procedieron','están','Ver'),
|
||||
);
|
||||
|
||||
$texto = $text;
|
||||
$text = html_entity_decode($text);
|
||||
|
||||
//$text = limpiar_cadena("$text");
|
||||
|
||||
///$text = str_replace(array('\r\n', '\n', '<br>', '<BR>'),'', $text);
|
||||
$text = str_replace(array('?','¿','¡','!',' ','"'," ",">","El"), ' ', $text);
|
||||
//$text = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', $text);//reemplazar el carácterno es válido
|
||||
//$regex_nombres_compuestos = array('(\s[A-Z][\w-áéíóú]*(\s+[A-Z][\w-áéíóú]+)+)');
|
||||
$no_validos = array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>",">");
|
||||
//$regex_nombres_compuestos = '(.[A-Z][\w-áéíóú]*(\s+[A-Z][\w-áéíóú]+)+)';
|
||||
//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(\s+[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)';
|
||||
//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(\s((de)(( la))?)?\s?[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)';
|
||||
$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ]+[\wáéíóúñ]*(\s((de)(( la ))?)?\s?[A-ZÁÉÍÓÚ]+[\wáéíóúñ]+)+)';
|
||||
//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(.((de)(( la)?))?.?[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)';
|
||||
///$text = preg_replace($mayuscula_inicial,"$0_compuesto_$1_$2", $text);
|
||||
|
||||
preg_match_all("$regex_nombres_compuestos", $text, $array_nombres_compuestos);
|
||||
//$array_nombres_compuestos[0] = str_replace($no_validos, '',$array_nombres_compuestos[0]);//reemplazar el carácterno es válido
|
||||
|
||||
$array_nombres_compuestos_unicos[0]=array_unique($array_nombres_compuestos[0]);
|
||||
|
||||
foreach($array_nombres_compuestos[0] as $clave => $v){
|
||||
$tags = str_replace(array(' '), '_', $v);
|
||||
$compuestos .="$v<br> ";
|
||||
//$array_compuestos[] = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', strip_tags($tags));;
|
||||
$array_compuestos[] = strip_tags($tags);
|
||||
}
|
||||
$text = strip_tags($text);
|
||||
$text = str_replace(array('?','¿','¡','!',' ','\r\n', '\n','<27>'), ' ', $text);
|
||||
$text = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', $text);//reemplazar el carácterno es válido
|
||||
|
||||
$text = str_replace(array(' ','.'), ',', $text);//sustituir por comas
|
||||
$array=explode(",",$text);//Crear un array con las palabras
|
||||
$array = array_merge($array_compuestos,$array);
|
||||
//// debug
|
||||
$array = array_diff($array, $extras['p'], $extras['a'], $extras['o']);
|
||||
|
||||
|
||||
foreach ($array as $clave => $value) {
|
||||
$title="";
|
||||
$tag_adicional="";
|
||||
$value=trim($value);//bye spaces
|
||||
if ( strlen($value)>3) {//no smaller than X and not in banned
|
||||
//$value = stemm_es::stemm($value);
|
||||
//I can count how many time we ad and update the record in an array
|
||||
if (@array_key_exists($value,$wordCounter)){//if the key exists we ad 1 more
|
||||
$wordCounter[$value]=$wordCounter[$value]+1;
|
||||
|
||||
}
|
||||
else $wordCounter[$value]=1;//creating the key
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
unset($arrText);
|
||||
//$lema=stemm_es::stemm($wordCounter);
|
||||
uasort($wordCounter,"cmp");//short from bigger to smaller
|
||||
|
||||
|
||||
$keywords="";
|
||||
$count = 0;
|
||||
foreach ($wordCounter as $key => $value){
|
||||
|
||||
if($value >1){
|
||||
if($count < $cantidad){
|
||||
//$keywords[] =$key;
|
||||
$keywords[] ="$key";
|
||||
}else{break;} $count++;
|
||||
}
|
||||
}
|
||||
|
||||
$tags=$keywords;
|
||||
$resultado = $title;
|
||||
if($tags !=''){
|
||||
|
||||
|
||||
$nube ="";
|
||||
foreach($tags as $c=>$valor){
|
||||
//foreach($wordCounter as $c=>$valor){
|
||||
//$valor = $tags[0];
|
||||
|
||||
//$valor ="$valor ";
|
||||
$p = stripos($resultado, $valor);
|
||||
if($p !==false ){
|
||||
$s1 = substr($resultado, 0, $p);
|
||||
$s2 = substr($resultado, $p, strlen($valor));
|
||||
$s3 = substr($resultado, ($p + strlen($valor)));
|
||||
$resultado = $s1."#$s2".$s3;
|
||||
//$r= $s1;
|
||||
}else{
|
||||
$c = str_replace(array('_'), ' ', $valor);
|
||||
$camel[] = str_replace(array(' '), '', $c);
|
||||
$palabras[]=explode(" ",$c);//Crear un array con las palabras
|
||||
foreach($palabras as $valor){
|
||||
$listado_palabras[] = $valor;
|
||||
|
||||
}
|
||||
$ht = str_replace(array(' '), '', $c);
|
||||
$limpios[] = $c;
|
||||
|
||||
$cant = $wordCounter[$c];
|
||||
$size = ($cant/4);
|
||||
$tag_adicional .= "<SPAN title='$cant' CLASS='badge label-warning' draggable='true' id='#$ht ' ondragstart=\"evdragstart(event,this)\">$c </span> " ;
|
||||
|
||||
$nube .= "<a href='#' title='$c $cant' style='font-size: $size"."vh' id='#$ht ' >$c</a> " ;
|
||||
}
|
||||
}
|
||||
}
|
||||
$resultado = " $compuestos $tag_adicional ";
|
||||
if($tipo=="tags") {
|
||||
return $tag_adicional;
|
||||
}elseif($tipo=="personajes") {
|
||||
//return $compuestos;
|
||||
return $array_nombres_compuestos[0];
|
||||
}elseif($tipo=="nube") {
|
||||
//return $compuestos;
|
||||
return $nube;
|
||||
}elseif($tipo=="limpio") {
|
||||
//return $compuestos;
|
||||
return $limpios;
|
||||
}elseif($tipo=="camel") {
|
||||
//return $compuestos;
|
||||
return $listado_palabras[0];
|
||||
}else {
|
||||
return $resultado;
|
||||
}
|
||||
///return $array;
|
||||
///debug
|
||||
|
||||
}
|
||||
|
||||
function array_tabla($contenido,$campo){
|
||||
//return $contenido[0];
|
||||
foreach ($contenido as $id_campo => $valor) {
|
||||
$linea .= "<div class='div_$campo' >$id_campo $valor esto</div>";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return $linea ;
|
||||
}
|
||||
|
||||
function formulario_corpus($id_form,$id_campo,$group,$tipo){
|
||||
|
||||
|
||||
$consulta = "SELECT count(control) as cantidad , id_campo ,contenido , campo_nombre FROM `form_datos`, `form_campos` WHERE `form_datos`.id_campo = `form_campos`.id AND `id_campo` = '$id_campo' AND `form_id` = '$id_form' GROUP BY $group order by cantidad";
|
||||
$link=Conectarse();
|
||||
mysqli_set_charset($link, "utf8");
|
||||
$sql=mysqli_query($link,$consulta);
|
||||
|
||||
if (mysqli_num_rows($sql)!='0'){
|
||||
$array = array();
|
||||
while( $row = mysqli_fetch_array( $sql ) ) {
|
||||
$etiquetas .="".html_entity_decode($row['contenido'])." ";
|
||||
$array[] = html_entity_decode($row['contenido']);
|
||||
$colores .= "'#".substr(md5(rand()), 0, 6)."',";
|
||||
}
|
||||
|
||||
$etiqueta = "".substr (preg_replace("[\n|\r|\n\r|\t]",'', $etiquetas), 0, -1)."";
|
||||
|
||||
}else { $grafica= $consulta;
|
||||
}
|
||||
$etiqueta = limpiar_cadena($etiqueta);
|
||||
$etiqueta= cadena_array("$etiqueta","nube","50");
|
||||
|
||||
///$etiqueta = array_tabla($etiqueta,"tags");
|
||||
|
||||
//$etiqueta = json_encode($etiqueta);
|
||||
return $etiqueta;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function formulario_autores($form,$id_usuario) {
|
||||
$link=Conectarse();
|
||||
mysqli_set_charset($link, "utf8");
|
||||
|
||||
$consulta ="SELECT COUNT(id_usuario) AS cantidad,id_usuario FROM `form_datos` WHERE `form_id` = '$form' GROUP BY `id_usuario` ORDER BY cantidad DESC ";
|
||||
//$consulta ="SELECT COUNT(control) AS cantidad,id_usuario FROM `form_datos` WHERE `form_id` = '$form' GROUP BY `id_usuario` ORDER BY cantidad DESC ";
|
||||
$consulta ="SELECT *,count(distinct control) as cantidad FROM form_datos WHERE form_id = '$form' GROUP BY id_usuario order by cantidad DESC ";
|
||||
/*
|
||||
if($autor=="") {
|
||||
|
||||
@ -34,7 +268,7 @@ $consulta ="SELECT COUNT(id_usuario) AS cantidad,id_usuario FROM `form_datos` WH
|
||||
$autor .= "<li ><a title='$row[id_usuario]' href='#'>$Autor <span class='badge'>$row[cantidad]</span></a></li> ";
|
||||
}else { $otros .= "<li ><a title='$row[id_usuario]' href='#'>Otro <span class='badge'>$row[cantidad]</span></a></li>";}
|
||||
}
|
||||
$resultado = "$cantidad <ul>$autor $otros</ul>";
|
||||
$resultado = "$cantidad <ul>$autor $otros</ul> ";
|
||||
|
||||
}else {$resultado =0;}
|
||||
return $resultado ;
|
||||
@ -64,24 +298,35 @@ return $resultado;
|
||||
}
|
||||
|
||||
function notas_estadisticas($form,$div,$tipo) {
|
||||
$cantidad_notas= formulario_contar_registros("$form","","","");
|
||||
$cantidad_notas= formulario_contar("$form");
|
||||
$cantidad_autores= formulario_autores("$form","");
|
||||
$total_gusta= contar_interacciones("","Gusta","","$form");
|
||||
$total_compromisos= contar_interacciones("","Comprometo","","$form");
|
||||
$total_comentarios= contar_interacciones("","Comentar","","$form");
|
||||
$id_campo = campo_titulo($form) ;
|
||||
$corpus = formulario_corpus("$form","$id_campo","contenido","barras");
|
||||
|
||||
$contenido ="
|
||||
<hr>
|
||||
<div class='col-md-5'>
|
||||
<ul class='list-group'>
|
||||
<li class ='list-group-item active'>Estadísticas</li>
|
||||
<li class='list-group-item' >Total notas: <strong>$cantidad_notas</strong> </li>
|
||||
<li class='list-group-item'>Autores: <strong>$cantidad_autores</strong></li>
|
||||
<li class='list-group-item'>Me gusta: <strong>$total_gusta</strong>
|
||||
Compromisos: <strong>$total_compromisos</strong>
|
||||
Comentarios: <strong>$total_comentarios</strong></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<div class='col-md-5'>
|
||||
<div class='container-fluid'>
|
||||
<ul class='list-group'>
|
||||
<li class ='list-group-item active'>Palabras mas usadas</li>
|
||||
<li class='list-group-item'>$corpus</li>
|
||||
<ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
";
|
||||
@ -1118,6 +1363,8 @@ $resultado="
|
||||
return $resultado;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function json_tabla($contenido,$campo,$control){
|
||||
|
||||
|
||||
@ -16854,6 +17101,12 @@ $respuesta->addAssign("$div","innerHTML","$resultado");
|
||||
}
|
||||
$xajax->registerFunction("XXX");
|
||||
|
||||
function cmp($a, $b) {//Ordenar los numeros descendientemente
|
||||
if ($a == $b) return 0;
|
||||
return ($a < $b) ? 1 : -1;
|
||||
}
|
||||
|
||||
|
||||
function holamundo() {
|
||||
|
||||
$respuesta = new xajaxResponse('utf-8');
|
||||
|
Loading…
Reference in New Issue
Block a user