_def->getKeyValue("NEW_WEBSITE_URL");
if ($NEW_WEBSITE_URL && $_SERVER['SCRIPT_NAME']=='/scielo.php') {
header("Location: https://" . $NEW_WEBSITE_URL . $_SERVER['REQUEST_URI']);
}
$CACHE_STATUS = $scielo->_def->getKeyValue("CACHE_STATUS");
$MAX_DAYS = $scielo->_def->getKeyValue("MAX_DAYS");
$MAX_SIZE = $scielo->_def->getKeyValue("MAX_SIZE");
$DIVULGA = $scielo->_def->getKeyValue("ENABLE_DIVULGACAO");
if (($CACHE_STATUS == 'on') && ($MAX_DAYS>0)){
$filenamePage = $scielo->GetPageFile();
}
$filenamePage = "";
$pageContent = "";
$GRAVA = false;
if ($filenamePage){
if (file_exists($filenamePage)){
echo "";
$lastChange = date("F j Y g:i:s", filemtime($filenamePage));
$diff = dateDiff($interval="d",$lastChange,date("F j Y g:i:s"));
if ($diff<=$MAX_DAYS){
echo "";
$fp = fopen($filenamePage, "r");
if ($fp){
$pageContent = fread($fp, filesize($filenamePage));
$pageContent .= "\n".'';
fclose($fp);
}
} else {
echo "";
$GRAVA = true;
}
}
}
if (!$pageContent){
//Generate wxis url and set xml url
$xml = $scielo->GenerateXmlUrl();
if ((strpos($xml, '') == 0) or (strpos($xml, '') == 0)) {
$xml = '';
}
$sxml = simplexml_load_string($xml);
function xml_tostring($value) {
return (string)$value;
}
function is_requested_language_available($sxml) {
$availableLanguages = array_merge(
$sxml->xpath('/root/SERIAL/ISSUE/ARTICLE/@ORIGINALLANG'),
$sxml->xpath('/root/SERIAL/ISSUE/ARTICLE/LANGUAGES/ART_TEXT_LANGS/LANG')
);
$availableLanguages = array_map('xml_tostring', $availableLanguages);
$requestedLanguage = array_pop(
array_map(
'xml_tostring',
$sxml->xpath('/root/SERIAL/ISSUE/ARTICLE/@TEXTLANG')
)
);
return in_array($requestedLanguage, $availableLanguages);
}
/*
* Quando o texto não estiver disponível no idioma solicitado o site deve
* redirecionar (HTTP 302) o cliente para o idioma padrão.
*/
if ($_REQUEST['script'] == 'sci_arttext') {
if (!is_requested_language_available($sxml)) {
$documentPID = array_pop(
array_map(
'xml_tostring',
$sxml->xpath('/root/SERIAL/ISSUE/ARTICLE/@PID')
)
);
header('Location: /scielo.php?script=sci_arttext&pid='.$documentPID, true, 301);
exit;
}
}
if ($sxml != false){
$error = (($sxml->getName() == 'ERROR') or ($sxml->ERROR->getName() == 'ERROR'));
}
if ($error){
header("HTTP/1.0 404 Not Found - Archive Empty");
require '404.html';
exit;
}
$scielo->SetXMLUrl ($xml);
//Generate xsl url and set xsl url
$xsl = $scielo->GenerateXslUrl();
$scielo->SetXSLUrl ($xsl);
$pageContent = $scielo->getPage();
$pageContent .= "\n".'';
$pageContent .= "\n"."";
if ($GRAVA && $filenamePage){
if (!file_exists($filenamePage)){
include ("mkdir.php");
$path = substr($filenamePage, 0, strrpos($filenamePage, '/'));
createDirStructure($path, $s_root, $s_err_msg, $i_err_code, 0777);
}
$fp = fopen($filenamePage, "rw");
if ($fp){
fwrite($fp, $pageContent);
echo "";
} else {
echo "";
}
fclose($fp);
chmod($filenamePage, 0774);
}
}
if(isset($_GET['download']))
{
require_once(dirname(__FILE__)."/export.php");
exit;
}
if ( !$scielo->_request->getRequestValue ( "lng", $lng ) )
{
$lng = $scielo->_def->getKeyValue ( "STANDARD_LANG" );
}
if ($DIVULGA){
$html_divulgacao = showDivulgacao($lng,$scielo->_script);
if (strlen($html_divulgacao) > 0) {
$p = strpos(strtolower($pageContent), '
0) {
$body = substr($pageContent, $p);
$p2 = strpos($body, '>');
if ($p2 > 0) {
$body = substr($body, 0, $p2+1);
$p3 = strpos(strtolower($pageContent), strtolower($body));
if ($p3 > 0) {
$p3 = $p3 + strlen($body);
$newPageContent = substr($pageContent, 0, $p3).'';
$newPageContent .= $html_divulgacao.'';
$newPageContent .= substr($pageContent, $p3);
$pageContent = $newPageContent;
}
}
}
}
}
if (strpos($pageContent,'0) {
/* nao retirar isso, senao a conversao de formulas matematicas nao funcionara */
header("Content-type:text/xml");
}
echo $pageContent;
function showDivulgacao($lang, $script){
$pageContent = "";
$filenamePage = getDivulgacao($lang, $script);
$fp = fopen($filenamePage, "r");
if ($fp){
$pageContent = fread($fp, 9999);
fclose($fp);
$p = strpos($pageContent, ' 0) {
$body = substr($pageContent, $p);
$p = strpos($body, '>');
if ($p > 0) {
$body = substr($body, $p+1);
$p = strpos($body, '');
if ($p > 0){
$body = substr($body, 0, $p-1);
$pageContent = $body;
}
}
}
}
return $pageContent;
}
function getDivulgacao($lang, $script){
$html = "";
if (file_exists("divulgacao.txt")){
$divulgacao = parse_ini_file("divulgacao.txt",true);
$html = $divulgacao[$script][$lang];
}
return $html;
}
function dir_size($dir, &$older, &$older_accessed){
$handle = opendir($dir);
$mas = 0;
while ($file = readdir($handle)) {
if ($file != '..' && $file != '.'){
if (is_dir($dir.'/'.$file)){
$mas += dir_size($dir.'/'.$file, $older, $older_accessed);
} else {
$mas += filesize($dir.'/'.$file);
if ($older!=''){
if (fileatime($dir.'/'.$file)_def->getKeyValue("ENABLED_CACHE");
$restrito = false;
if($_SERVER['SCRIPT_NAME']=='/scielolog.php'){
$chave = $chaveNula;
$restrito = true;
}
//verificando se usuario esta logado para utilizar o cacke, se estiver logado cache nao pode ser utilizado
//isso ocorre apenas para sci_arttext e sci_abstract
if (isset($_COOKIE["userID"]) && $_COOKIE["userID"] != "-2"){
if ($_REQUEST["script"] == 'sci_arttext' or $_REQUEST["script"] == 'sci_abstract' or $_REQUEST["script"] == 'sci_home' or $_REQUEST["script"] == ''){
$restrito = true;
$useCache == '0';
}
}
if(($useCache == '1') && (!$restrito)){
require_once('cache.php');
if(strpos($_SERVER['REQUEST_URI'],'deletefromcache')){
$key = sha1(substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],'deletefromcache')-1));
echo 'apagando chave '.$key.'XML resultado :'.deleteFromCache($key.'XML');
echo '
';
echo 'apagando chave '.$key.'HTML resultado :'.deleteFromCache($key.'HTML');
die();
}
if(strpos($_SERVER['REQUEST_URI'],'cachestats')){
echo getStatsFromCache($_GET['type'], $_GET['slabs'], 10);
die();
}
$result = "";
$chave = sha1($_SERVER['REQUEST_URI']).'XML';
$chaveNula = '42099b4af021e53fd8fd4e056c2568d7c2e3ffa8XML';
$result = false;
//a chave pode ver como XML por exemplo na home, quanto não há parametros na
//URL, para evitar problemas, não colocamos essa chave em cache posis não podemos
//prever quando essa situação poderá ocorrer novamente
if($chave != $chaveNula){
//pesquisa no cache a chave
$result = getFromCache($chave);
if($result == false){
//se não achou, transforma, coloca no cache e retorna
$result = wxis_exe_($url);
addToCache($chave,$result);
}
}else{
//se chave == XML então retorna o XML, sem passar pelo cache
$result = wxis_exe_($url);
}
}else{
//se cache desligado então retorna a transformação, sem passar pelo cache
$result = wxis_exe_($url);
}
return $result;
}
//wxis-line-command
function wxis_exe_ ($url){
// Criar um novo Objeto Scielo
$host = $_SERVER['HTTP_HOST'];
$scielo = new Scielo ($host);
/************************************************************************************
* Pegamos o path do htdocs, isso é importante porque deixamos mais configuráveis *
* os diferentes scielos não precisando mexer na scielo.php, somente no scielo.def.php *
************************************************************************************/
$PATH_HTDOCS = $scielo->_def->getKeyValue("PATH_HTDOCS");
$request = $PATH_HTDOCS."../cgi-bin/wxis.exe " ;
$param = substr($url, strpos($url, "?")+1);
$param = str_replace("&", " ", $param);
$request = $request.$param." PATH_TRANSLATED=".$PATH_HTDOCS;
$r = strstr(shell_exec($request), '<');
return $r;
}
function wxis_exe_httpd ($url){
global $wxisServer;
global $scielo;
if (strpos($url,'debug=')==false && strpos($url, 'script=sci_verify')==false){
$fp = fopen($url,"rb");
$conteudo = "";
do {
$data = fread($fp, 8192);
if (strlen($data) == 0) {
break;
}
$conteudo .= $data;
} while(true);
fclose ($fp);
$url = $conteudo;
}
return $url;
}
/**
* Inclusão do arquivo gerador de log de usuários autenticados somente se o serviço estiver habilitado no scielo.def, e existir o cookie userID
*/
if($scielo->_def->getKeyValue("ENABLE_AUTH_USERS_LOG") == 1){
if(isset($_COOKIE['userID']) && $_COOKIE['userID']!= -2 ){
require_once(dirname(_FILE_)."/applications/scielo-org/ajax/AuthupdateLog.php");
}
}
?>