Autor Tópico: Bibliotecas Avulsa  (Lida 1856 vezes)

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Bibliotecas Avulsa
« Online: Outubro 24, 2012, 01:29:27 pm »
Boa Tarde.

Colocar um modulo para podermos criar nossas bibliotecas, e quando compilado o código a mesma ir para pasta da aplicação que foi atribuída. Fazendo isso podemos criar nossos próprios eventos Ajax, chamando os arquivos na pasta da aplicação, ficando mais facil de entender o código e mais organizado na hora da publicação. Pois hoje se quisermos fazer isso temos que criar um arquivo fora do ScriptCase e coloca-lo em uma pasta separada, além da dificuldade de edição do mesmo..

Talvez seja uma sugestão desnecessária, mais não deixa de ser uma. rsrs

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Bibliotecas Avulsa
« Responder #1 Online: Outubro 24, 2012, 02:10:55 pm »
faço isso tranquilamente hoje, e vai tudo junto na publicação.


Veja essa biblioteca Incorporada ao  SC usando uma arquivo php externo).
Nesse caso, eu uso uma única pasta padrão( _lib/mylibs) para todos os meus scripts externos.
No caso, o script externo é: downloadfile.php
Nas selecionar a biblioteca na aplicação e fazer a chamada da função GetDownloadFile no evento onscriptinit.
Resumindo, eu escrevo o script (minha biblioteca) dinamicamente no ambiente de produção caso ela não exista.
Hoje estou migrando para usar as bibliotecas em banco de dados.

Código: [Selecionar]
<?php
Function GetDownloadFile() {

if(!
is_dir("../_lib/mylibs")) {
  
mkdir("../_lib/mylibs",0700);
}
if(!
file_exists("../_lib/mylibs/downloadfile.php")) {
  
$fp fopen("../_lib/mylibs/downloadfile.php""w"); 
  
  
fwrite($fp'<?php
function output_file($file, $name, $mime_type="")
{
$file_extension = strtolower(substr(strrchr($file,"."),1));
if($file_extension=="php") die("Arquivo Inválido para Download :(");

if(!is_readable($file)) die("Arquivo não encontrado!");

$size = filesize($file);
$name = rawurldecode($name);

$known_mime_types=array(
"pdf" => "application/pdf",
"txt" => "text/plain",
"html" => "text/html",
"htm" => "text/html",
"exe" => "application/octet-stream",
"zip" => "application/zip",
"doc" => "application/msword",
"xls" => "application/vnd.ms-excel",
"ppt" => "application/vnd.ms-powerpoint",
"gif" => "image/gif",
"png" => "image/png",
"jpeg"=> "image/jpg",
"jpg" => "image/jpg",
"php" => "********"
);


if($mime_type==""){
if(array_key_exists($file_extension, $known_mime_types)){
  $mime_type=$known_mime_types[$file_extension];
} else {
  $mime_type="application/force-download";
};
};

@ob_end_clean(); 


if(ini_get("zlib.output_compression"))
ini_set("zlib.output_compression", "Off");

header("Content-Type: ".$mime_type.";name=\'".$file."\'");
header("Content-Disposition: attachment; filename=".$name);
header("Content-Transfer-Encoding: binary");
header("Accept-Ranges: bytes");
header("Cache-control: private");
header("Pragma: private");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

if(isset($_SERVER["HTTP_RANGE"]))
{
list($a, $range) = explode("=",$_SERVER["HTTP_RANGE"],2);
list($range) = explode(",",$range,2);
list($range, $range_end) = explode("-", $range);
$range=intval($range);
if(!$range_end) {
$range_end=$size-1;
} else {
$range_end=intval($range_end);
}

$new_length = $range_end-$range+1;
header("HTTP/1.1 206 Partial Content");
header("Content-Length: $new_length");
header("Content-Range: bytes $range-$range_end/$size");
} else {
$new_length=$size;
header("Content-Length: ".$size);
}

$chunksize = 1*(1024*1024); //you may want to change this
$bytes_send = 0;
if ($file = fopen($file, "r"))
{
if(isset($_SERVER["HTTP_RANGE"]))
fseek($file, $range);

while(!feof($file) && 
(!connection_aborted()) && 
($bytes_send<$new_length)
)
{
$buffer = fread($file, $chunksize);
print($buffer); 
flush();
$bytes_send += strlen($buffer);
}
fclose($file);
} else die("Erro - Não foi possível abrir arquivo.");

}

set_time_limit(0);
if (!ISSET($_GET["mimetype"])) $_GET["mimetype"]="Application/force-download";
output_file($_GET["filein"],$_GET["fileout"],$_GET["mimetype"]);
die();

?>
');

fclose($fp);

}


}
?>
« Última modificação: Outubro 24, 2012, 02:26:30 pm por Haroldo »

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Bibliotecas Avulsa
« Responder #2 Online: Outubro 25, 2012, 05:14:04 pm »
Hum...

Deixa eu ver se entendi!!

Ai vc está criando seu arquivo em uma função. correto!
Se o arquivo não existir é criado.
Para ser usado futuramente no seus módulos do sistema...

Se for isso, eu até pensei em fazer assim, criar meu arquivo com uma função fopen na pasta da
aplicação. Só que é ruim a edição de texto.

Se tivesse como criarmos o arquivo pelo scriptcase seria uma beleza!! rsrs
Tinhamos uma boa edição e um controle legal dos aquivos...

Se não for oque achei.. me fale mais do seu arquivo.

Obrigado Haroldo!

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Bibliotecas Avulsa
« Responder #3 Online: Outubro 25, 2012, 05:19:13 pm »
Isso mesmo, mas não vejo dificuldade em editar o arquivo.

Tulio

  • Intermediário
  • ***
  • Mensagens: 102
    • QQuiser
    • Email
Re:Bibliotecas Avulsa
« Responder #4 Online: Fevereiro 26, 2014, 10:06:54 am »
Olá Haroldo,

Desculpe reabrir esse tópico e perdoe minha ignorancia...

Qual o problema de colocar esse código gerado dinamicamente em uma blank?

Tulio.

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Bibliotecas Avulsa
« Responder #5 Online: Fevereiro 26, 2014, 11:16:12 am »
Nenhum, mas para quê criar uma aplicação blank se você pode ter numa biblioteca.

Na verdade uma script php eh criado, mas com o código mais puro e simples possível o que comparado a uma blank ( app mais simples do sc) é um código muito bem menor.

Wennys Carlos

  • Avançado
  • ****
  • Mensagens: 254
    • Email
Re:Bibliotecas Avulsa
« Responder #6 Online: Fevereiro 26, 2014, 12:55:41 pm »
Utilizo da seguinte forma:

Tenho minhas bibliotecas externas em uma pasta externa ao projeto e criei uma app para, ao publicar o projeto, copiar essa pasta para o mesmo.
Wennys Carlos

Tulio

  • Intermediário
  • ***
  • Mensagens: 102
    • QQuiser
    • Email
Re:Bibliotecas Avulsa
« Responder #7 Online: Fevereiro 26, 2014, 04:23:49 pm »
Obrigado Haroldo.

Olá Wennys, interessante essa forma.

Valeu!

Bernhard

  • Administrator
  • Expert
  • *****
  • Mensagens: 1619
Re:Bibliotecas Avulsa
« Responder #8 Online: Março 14, 2014, 01:03:56 am »
Boa noite,

Discutirei sua sugestão com nossa equipe.

att,
Bernhard Bernsmann