OpenXE/phpwf/plugins/class.phpwfapi.php

145 lines
4.1 KiB
PHP
Raw Normal View History

2021-05-21 08:49:41 +02:00
<?php
/*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
*
* This file is licensed under the Embedded Projects General Public License *Version 3.1.
*
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version.
*
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/
?>
<?php
/// special layer for webapplications
class phpWFAPI
{
function __construct(&$app)
{
$this->app=&$app;
}
function ReBuildPageFrame()
{
$this->app->Tpl->ResetParser();
$this->BuildPageFrame();
}
function BuildPageFrame()
{
$this->app->Tpl->ReadTemplatesFromPath(__DIR__."/../defaulttemplates/");
// build template tree
$this->app->Page->LoadTheme($this->app->WFconf['defaulttheme']);
if($this->app->User->GetType()=="")
$this->app->Page->CreateNavigation($this->app->WFconf['menu'][$this->app->WFconf['defaultgroup']]);
else
$this->app->Page->CreateNavigation($this->app->WFconf['menu'][$this->app->User->GetType()]);
// start acutally application instance
$this->app->Tpl->ReadTemplatesFromPath("pages/content/_gen");
$this->app->Tpl->ReadTemplatesFromPath("pages/content/");
}
function StartRequestedCommand()
{
$defaultpage = $this->app->WFconf['defaultpage'];
$defaultpageaction = $this->app->WFconf['defaultpageaction'];
$module = $this->app->Secure->GetGET('module','alpha');
$action = $this->app->Secure->GetGET('action','alpha');
if(!file_exists("pages/".$module.".php"))
$module = $defaultpage;
if($action=="")
$action = $defaultpageaction;
if(!$this->app->acl->Check($this->app->User->GetType(),$module,$action))
return;
// start module
if(file_exists("pages/".$module.".php"))
{
include("pages/".$module.".php");
//create dynamical an object
$constr=strtoupper($module[0]).substr($module, 1);
$myApp = new $constr($this->app);
}
else
{
echo $this->app->WFM->Error("Module <b>$module</b> doesn't exists in pages/");
}
$this->app->acl->CheckTimeOut();
}
/// mit dem "erstellen Formular" einfach bearbeiten liste + formular anzeigen
function EasyTableList($tablename,$cols,$parsetarget,$pkname,$delmsg,$delmsgcol)
{
// show list
// create html table
$table = new HTMLTable("0","100%");
$table->AddRowAsHeading($cols);
$all = $this->app->DB->SelectTable($tablename,$cols);
$table->AddField($all);
$action = $this->app->Secure->GetGET("action","alpha");
$module = $this->app->Secure->GetGET("module","alpha");
$table->AddCompleteCol(0,
"<a href=\"index.php?module=$module&action=$action&id=%col%\">bearbeiten</a>");
$table->AddCompleteCol(0,
"<a href=\"#\" onclick=\"str = confirm('{$delmsg}');
if(str!='' & str!=null)
window.document.location.href='index.php?module=$module&action=$action&id=%col%&formaction=delete';\">
loeschen</a>",$delmsgcol);
$table->ChangingRowColors('#ffffff','#dddddd');
$this->app->Tpl->Set($parsetarget,$table->Get());
}
function Message($msg,$parsetarget='MSGBOX')
{
$this->app->Tpl->Add('MSGBOXTEXT',$msg);
$this->app->Tpl->Parse($parsetarget,"messagebox.tpl");
}
// emailvorlage aus db senden
function EmailFromTemplate($template,$to,$values)
{
$betreff = $this->app->DB->Select("SELECT betreff
FROM emailvorlagen WHERE name='$template' LIMIT 1");
$nachricht = $this->app->DB->Select("SELECT nachricht
FROM emailvorlagen WHERE name='$template' LIMIT 1");
if(count($values) > 0)
{
foreach($values as $key=>$value)
{
$nachricht = str_replace("%".$key."%",$value,$nachricht);
$betreff = str_replace("%".$key."%",$value,$betreff);
}
}
$nachricht = str_replace('#BR#',"\n",$nachricht);
mail($to,$betreff,$nachricht,"From: ActConnect Team <info@actconnect.de>");
}
}
?>