function Obtener_IDFanPage($Nombre_FanPage = "") { $ID_Obtenido = ""; $URL_Recuperacion = "https://graph.facebook.com/{$Nombre_FanPage}"; $contenido_url = @cargar_url($URL_Recuperacion); //Si se ha obtenido respuesta entonces procesa el JSON if ($contenido_url != "") { $JSON_Decodificado = json_decode($contenido_url); /*echo '<pre>'; // Esto para que sea mas legible var_dump($JSON_Decodificado); echo '</pre>';*/ } return $ID_Obtenido; }
function ObtenerEntradas_FacebookFanPage($Nombre_FanPage = "", $ID_FanPage = "", $Cantidad = 1, $FormatoProveedor = "rss20", $FormatoSalida = "arreglo") { //Por defecto inicia en blanco si es formato crudo if ($FormatoSalida == "crudo") { $EntradasFanPage = ""; } //Si el ID de consulta directa es vacio intenta averiguarlo con el nombre if ($ID_FanPage == "" && $Nombre_FanPage != "") { $ID_FanPage = Obtener_IDFanPage($Nombre_FanPage); } //Cuando ya se cuenta con un ID de FanPage hace la consulta if ($ID_FanPage != "") { $URL_Recuperacion = "https://www.facebook.com/feeds/page.php?id={$ID_FanPage}&format={$FormatoProveedor}"; $contenido_url = @cargar_url($URL_Recuperacion); //Si se ha obtenido respuesta entonces procesa entradas if ($contenido_url != "") { // Usa SimpleXML Directamente para interpretar respuesta $EntradasObtenidas = simplexml_load_string($contenido_url); // Procesa la respuesta recibida en el XML $NumEntradaProcesada = 1; //Procesa si el formato recibido es RSS 2.0 if ($FormatoProveedor = "rss20") { foreach ($EntradasObtenidas->channel->item as $Entrada) { //Si el formato es crudo agrega entrada como concatenacion if ($FormatoSalida == "crudo") { $EntradasFanPage .= $Entrada->title; $EntradasFanPage .= $Entrada->description; $EntradasFanPage .= $Entrada->link; $EntradasFanPage .= $Entrada->pubDate; } //Si el formato es arreglo agrega entrada como elemento del arreglo if ($FormatoSalida == "arreglo") { $EntradasFanPage[] = @array(Titulo => $Entrada->title, Descripcion => $Entrada->description, Enlace => $Entrada->link, Fecha => $Entrada->pubDate); } //Cuenta la entrada procesada y se detiene segun las deseadas $NumEntradaProcesada++; if ($NumEntradaProcesada > $Cantidad) { break; } } } } } return $EntradasFanPage; }
function ObtenerEntradas_GitHub($ID_Usuario = "", $Cantidad = 5) { //Cuando ya se cuenta con un ID de FanPage hace la consulta if ($ID_Usuario != "") { $URL_Recuperacion = "https://github.com/{$ID_Usuario}.atom"; $contenido_url = @cargar_url($URL_Recuperacion); //Si se ha obtenido respuesta entonces procesa entradas if ($contenido_url != "") { // Usa SimpleXML Directamente para interpretar respuesta $EntradasObtenidas = simplexml_load_string($contenido_url); // Procesa la respuesta recibida en el XML $NumEntradaProcesada = 1; foreach ($EntradasObtenidas->entry as $Entrada) { /* //Parsea contenido HTML mediante DOM/XML $Contenido_Entrada=$Entrada->content; # Crea objeto DOM y carga el contenido $dom = new DOMDocument(); @$dom->loadHTML("<html><body> $Contenido_Entrada </body></html>"); $contenidosss= $dom->getElementsByTagName('a'); echo $contenidosss->getAttribute('href'); //Carga los de tipo enlace solamente ///$link=$dom->getElementsByTagName('a') ; // echo $link->getAttribute('href'); //echo $Contenido_Entrada->$blockquote; */ $EntradasGitHub[] = @array(Fecha => $Entrada->published, Titulo => $Entrada->title, Enlace => $Entrada->content); //Cuenta la entrada procesada y se detiene segun las deseadas $NumEntradaProcesada++; if ($NumEntradaProcesada > $Cantidad) { break; } } } } return $EntradasGitHub; }
// Inicia la autenticacion como una solicitud de webservices interna // Determina si la conexion actual de Practico esta encriptada if (empty($_SERVER["HTTPS"])) { $protocolo_webservice = "http://"; } else { $protocolo_webservice = "https://"; } // Si se tiene un protocolo preferido sobreescribe lo auto-detectado if (@$Auth_ProtoTransporte == "http" || @$Auth_ProtoTransporte == "https") { $protocolo_webservice = $Auth_ProtoTransporte . "://"; } // Construye la URL para solicitar el webservice. La URL se debe poder resolver por el servidor web correctamente, ya sea por dominio o IP (interna o publica). Ver /etc/hosts si algo. $prefijo_webservice = $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['PHP_SELF']; $webservice_validacion = $protocolo_webservice . $prefijo_webservice . "?PCO_WSOn=1&PCO_WSKey=" . $LlaveDePaso . "&PCO_WSSecret=" . $LlaveDePaso . "&PCO_WSId=verificar_credenciales&uid=" . $uid . "&clave=" . $clave; // Carga el contenido en una variable para validar la conexion $contenido_url = @cargar_url($webservice_validacion); // Valida si se logro cargar o no el contenido if ($contenido_url != "") { // Usa SimpleXML Directamente para interpretar respuesta $resultado_webservice = @simplexml_load_string($contenido_url); // Analiza la respuesta recibida en el XML if (@$resultado_webservice->credencial[0]->aceptacion == 1) { $ok_login = 1; } } else { limpiar_entradas(); mensaje($MULTILANG_LoginNoWSTit, $MULTILANG_LoginNoWSDes . "<br>Test URL=<a href='" . $webservice_validacion . "' target=_BLANK>Auth WebService</a> (entradas filtradas)", '', 'fa fa-times fa-5x icon-red texto-blink', 'alert alert-danger alert-dismissible'); } $clave_correcta = 0; if ($clave != "" && $ok_login == 1 && $ok_captcha == 1) { // Busca datos del usuario Practico, sin importar metodo de autenticacion para tener configuraciones de permisos y parametros propios de la herramienta
function buscar_actualizaciones($PCOSESS_LoginUsuario = '', $PCO_Accion = '') { global $MULTILANG_Atencion, $MULTILANG_ActAlertaVersion; // Genera un aleatorio entre 1 y 10 para no sacar siempre el aviso y buscar nuevas versiones. $buscar = rand(0, 7); if ($PCOSESS_LoginUsuario == "admin" && $PCO_Accion == "Ver_menu" && $buscar == 1) { $path_ultima_version = "https://raw.githubusercontent.com/unix4you2/practico/master/dev_tools/version_publicada.txt"; $version_actualizada = @cargar_url($path_ultima_version); $archivo_origen = "inc/version_actual.txt"; $archivo = fopen($archivo_origen, "r"); if ($archivo) { $version_practico = trim(fgets($archivo, 1024)); fclose($archivo); } if ($version_actualizada > $version_practico) { mensaje($MULTILANG_Atencion, $MULTILANG_ActAlertaVersion, '', 'fa fa-exclamation-triangle fa-5x', 'TextosEscritorio'); } } }