Example #1
0
/**
 * Function save_admin_password
 *
 * Writes new admin password to the admin config.php 
 */
function save_admin_password($password1, $password2, $language)
{
    global $g_language;
    if ( $language )
	    $g_language = $language;

	if ( $password1 != $password2 )
		return sw_translate("The passwords are not identical please reenter");
	if ( strlen($password1) == 0 )
		return sw_translate("The password may not be blank");

	$proj_parent = find_best_location_in_include_path( $this->admin_projects_folder);
	$proj_dir = $proj_parent."/admin";
	$proj_conf = $proj_dir."/config.php";
	$proj_template = $proj_dir."/adminconfig.template";

	if ( !file_exists ( $proj_parent ) )
    		return "Projects area $proj_parent does not exist - cannot write project";

	if ( file_exists ( $proj_conf ) )
	{
		if ( !is_writeable ( $proj_conf  ) )
			return "Projects config file $proj_conf is not writeable - cannot write config file - change permissions to continue";
	}

	if ( !is_writeable ( $proj_dir  ) )
    		return "Projects area $proj_dir is not writeable - cannot write project password in config.php - change permissions to continue";


	if ( !file_exists ( $proj_conf ) )
		if ( !file_exists ( $proj_template ) )
    		return "Projects config template file $proj_template does not exist - please contact reportico.org";

	if ( file_exists ( $proj_conf ) )
	{
		$txt = file_get_contents($proj_conf);
	}
	else
	{
		$txt = file_get_contents($proj_template);
	}

	$proj_language = find_best_location_in_include_path( "language" ) ;
	$lang_dir = $proj_language."/".$language;
	if ( !is_dir ( $lang_dir ) )
    	return "Language directory $language does not exist within the language folder";

	$txt = preg_replace ( "/(define.*?SW_ADMIN_PASSWORD',).*\);/", "$1'$password1');", $txt);
	$txt = preg_replace ( "/(define.*?SW_LANGUAGE',).*\);/", "$1'$language');", $txt);

    unset_reportico_session_param('admin_password');
	$retval = file_put_contents($proj_conf, $txt );
	
	// Password is saved so use it so user can login
	if ( !defined('SW_ADMIN_PASSWORD') )
		define ('SW_ADMIN_PASSWORD', $password1);
	else
		define ('SW_ADMIN_PASSWORD_RESET', $password1);

	return ;

}
* @copyright 2010-2014 Peter Deed
* @author Peter Deed <*****@*****.**>
* @package Reportico
* @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
* @version $Id: swgraph_nvd3.php,v 1.3 2014/05/17 15:12:31 peter Exp $
*/
error_reporting(E_ALL);
if (function_exists("imagecreatefromstring")) {
    //include("pChart/class/pData.class.php");
    //include("pChart/class/pDraw.class.php");
    //include("pChart/class/pImage.class.php");
    //include("pChart/class/pPie.class.php");
    include "pChart/pChart.class";
    include "pChart/pData.class";
    include "pChart/pCache.class";
    $fontpath = find_best_location_in_include_path("pChart/fonts");
    define("PCHARTFONTS_DIR", $fontpath . "/");
} else {
    echo "GD not installed ( imagecreatefromstring function does not exist )";
    die;
}
require_once 'swutil.php';
/**
 * Class reportico_graph
 *
 * Storage and generation of report graphs. Holds
 * everything necessary such as titles, axis formatting, 
 * graph type, colours etc
 */
class reportico_graph
{
Example #3
0
 function _putfonts()
 {
     $nf = $this->n;
     foreach ($this->diffs as $diff) {
         //Encodings
         $this->_newobj();
         $this->_out('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [' . $diff . ']>>');
         $this->_out('endobj');
     }
     $mqr = get_magic_quotes_runtime();
     ini_set('magic_quotes_runtime', 0);
     foreach ($this->FontFiles as $file => $info) {
         //Font file embedding
         $this->_newobj();
         $this->FontFiles[$file]['n'] = $this->n;
         if (defined('FPDF_FONTPATH')) {
             $file = FPDF_FONTPATH . $file;
         }
         $ofile = $file;
         if (!is_file($file)) {
             $file = find_best_location_in_include_path($file);
             if (!$file) {
                 $file = $ofile;
             }
         }
         $size = filesize($file);
         if (!$size) {
             $this->Error('Font file not found');
         }
         $this->_out('<</Length ' . $size);
         if (substr($file, -2) == '.z') {
             $this->_out('/Filter /FlateDecode');
         }
         $this->_out('/Length1 ' . $info['length1']);
         if (isset($info['length2'])) {
             $this->_out('/Length2 ' . $info['length2'] . ' /Length3 0');
         }
         $this->_out('>>');
         $f = fopen($file, 'rb');
         $this->_putstream(fread($f, $size));
         fclose($f);
         $this->_out('endobj');
     }
     ini_set('magic_quotes_runtime', $mqr);
     foreach ($this->fonts as $k => $font) {
         //Font objects
         $this->fonts[$k]['n'] = $this->n + 1;
         $type = $font['type'];
         $name = $font['name'];
         if ($type == 'core') {
             //Standard font
             $this->_newobj();
             $this->_out('<</Type /Font');
             $this->_out('/BaseFont /' . $name);
             $this->_out('/Subtype /Type1');
             if ($name != 'Symbol' and $name != 'ZapfDingbats') {
                 $this->_out('/Encoding /WinAnsiEncoding');
             }
             $this->_out('>>');
             $this->_out('endobj');
         } elseif ($type == 'Type1' or $type == 'TrueType') {
             //Additional Type1 or TrueType font
             $this->_newobj();
             $this->_out('<</Type /Font');
             $this->_out('/BaseFont /' . $name);
             $this->_out('/Subtype /' . $type);
             $this->_out('/FirstChar 32 /LastChar 255');
             $this->_out('/Widths ' . ($this->n + 1) . ' 0 R');
             $this->_out('/FontDescriptor ' . ($this->n + 2) . ' 0 R');
             if ($font['enc']) {
                 if (isset($font['diff'])) {
                     $this->_out('/Encoding ' . ($nf + $font['diff']) . ' 0 R');
                 } else {
                     $this->_out('/Encoding /WinAnsiEncoding');
                 }
             }
             $this->_out('>>');
             $this->_out('endobj');
             //Widths
             $this->_newobj();
             $cw =& $font['cw'];
             $s = '[';
             for ($i = 32; $i <= 255; $i++) {
                 $s .= $cw[chr($i)] . ' ';
             }
             $this->_out($s . ']');
             $this->_out('endobj');
             //Descriptor
             $this->_newobj();
             $s = '<</Type /FontDescriptor /FontName /' . $name;
             foreach ($font['desc'] as $k => $v) {
                 $s .= ' /' . $k . ' ' . $v;
             }
             $file = $font['file'];
             if ($file) {
                 $s .= ' /FontFile' . ($type == 'Type1' ? '' : '2') . ' ' . $this->FontFiles[$file]['n'] . ' 0 R';
             }
             $this->_out($s . '>>');
             $this->_out('endobj');
         } else {
             //Allow for additional types
             $mtd = '_put' . strtolower($type);
             if (!method_exists($this, $mtd)) {
                 $this->Error('Unsupported font type: ' . $type);
             }
             $this->{$mtd}($font);
         }
     }
 }
 /**
  * Function generate_dropdown_menu
  *
  * Writes new admin password to the admin config.php 
  */
 function generate_dropdown_menu(&$menu)
 {
     foreach ($menu as $k => $v) {
         $project = $v["project"];
         $projtitle = "<AUTO>";
         if (isset($v["title"])) {
             $projtitle = $v["title"];
         }
         $menu[$k]["title"] = sw_translate($projtitle);
         foreach ($v["items"] as $k1 => $menuitem) {
             if (!isset($menuitem["reportname"]) || $menuitem["reportname"] == "<AUTO>") {
                 // Generate Menu from XML files
                 global $g_projpath;
                 $proj_parent = find_best_location_in_include_path("projects");
                 $filename = $proj_parent . "/" . $project . "/" . $menuitem["reportfile"];
                 if (!preg_match("/\\.xml/", $filename)) {
                     $filename .= ".xml";
                 }
                 if (is_file($filename)) {
                     $query = false;
                     $repxml = new reportico_xml_reader($query, $filename, false, "ReportTitle");
                     $menu[$k]["items"][$k1]["reportname"] = sw_translate($repxml->search_response);
                 }
             }
         }
     }
 }
Example #5
0
 function load_plugins()
 {
     $plugin_dir = find_best_location_in_include_path("plugins");
     if (is_dir($plugin_dir)) {
         if ($dh = opendir($plugin_dir)) {
             while (($file = readdir($dh)) !== false) {
                 $plugin = $plugin_dir . "/" . $file;
                 if (is_dir($plugin)) {
                     $plugin_file = $plugin . "/global.php";
                     if (is_file($plugin_file)) {
                         require_once $plugin_file;
                     }
                     $plugin_file = $plugin . "/" . strtolower($this->execute_mode) . ".php";
                     if (is_file($plugin_file)) {
                         require_once $plugin_file;
                     }
                 }
             }
         }
     }
     // Call any plugin initialisation
     $this->apply_plugins("initialize", $this);
 }
Example #6
0
 function start()
 {
     reportico_report::start();
     $this->debug("PDF Start **");
     // Set default page size, margins, fonts etc
     $this->page_line_count = 0;
     $this->fontName = $this->query->get_attribute("pdfFont");
     $this->fontSize = $this->query->get_attribute("pdfFontSize");
     $this->vsize = $this->fontSize + $this->vspace;
     $this->orientation = $this->query->get_attribute("PageOrientation");
     $this->page_type = $this->query->get_attribute("PageSize");
     if ($this->orientation == "Portrait") {
         $this->abs_page_width = $this->page_types[$this->page_type]["width"];
         $this->abs_page_height = $this->page_types[$this->page_type]["height"];
     } else {
         $this->abs_page_width = $this->page_types[$this->page_type]["height"];
         $this->abs_page_height = $this->page_types[$this->page_type]["width"];
     }
     $this->abs_top_margin = $this->abs_paging_height($this->query->get_attribute("TopMargin"));
     $this->abs_bottom_margin = $this->abs_page_height - $this->abs_paging_height($this->query->get_attribute("BottomMargin"));
     $this->abs_right_margin = $this->abs_page_width - $this->abs_paging_width($this->query->get_attribute("RightMargin"));
     $this->abs_left_margin = $this->abs_paging_width($this->query->get_attribute("LeftMargin"));
     $this->abs_print_width = $this->abs_right_margin - $this->abs_left_margin;
     $this->abs_row_left_margin = $this->abs_left_margin;
     $this->abs_col_left_margin = $this->abs_left_margin;
     $this->abs_row_right_margin = $this->abs_right_margin;
     $this->abs_col_right_margin = $this->abs_right_margin;
     $this->abs_row_width = $this->abs_print_width;
     $this->abs_columns_width = $this->abs_print_width;
     // Set up default styles
     $this->stylestack = array("border-width" => array(0 => false), "border-edges" => array(0 => ""), "padding" => array(0 => false), "border-style" => array(0 => "none"), "border-color" => array(0 => "#000000"), "font-family" => array(0 => $this->fontName), "font-size" => array(0 => $this->fontSize), "font-weight" => array(0 => false), "font-style" => array(0 => false), "color" => array(0 => "#000000"), "background-color" => array(0 => array(255, 255, 255)), "isfilling" => array(0 => false), "padding" => array(0 => 0), "margin" => array(0 => array(0, 0, 0, 0)), "margin-left" => array(0 => 0), "margin-right" => array(0 => 0), "margin-top" => array(0 => 0), "margin-bottom" => array(0 => 0), "text-align" => array(0 => false), "position" => array(0 => "relative"), "height" => array(0 => false), "width" => array(0 => false), "background-image" => array(0 => false), "type" => array(0 => "BASE"));
     if ($this->pdfDriver == "tcpdf") {
         // If font used is a Unicode Truetype font then
         // use Unicode PDF generator
         $pdf_path = find_best_location_in_include_path("tcpdf");
         require_once $pdf_path . "/tcpdf.php";
         //require_once($pdf_path."/tcpdf.php");
         $this->document = new TCPDF($this->orientations[$this->orientation], 'pt', $this->page_type, true, 'UTF-8', false);
         $this->document->setPrintHeader(false);
         //if ( !isset($this->document->CoreFonts[strtolower($this->fontName)]) )
         //if ( !isset ($this->document->fonts[strtolower($this->fontName)] ) )
         //$this->document->AddFont($this->fontName, '', $this->fontName.'.php');
         // If the font loaded is a TrueTypeUnicode font, then we wnat to
         // use UniCode PDF generator instead
         // if ( $this->document->FontType == "TrueTypeUnicode" )
         // {
         // $this->document = new UFPDF($this->orientations[$this->orientation],'pt',$this->page_type);
         // if ( !isset($this->document->CoreFonts[strtolower($this->fontName)]) )
         // if ( !isset ($this->document->fonts[strtolower($this->fontName)] ) )
         // $this->document->AddFont($this->fontName, '', $this->fontName.'.php');
         // }
     } else {
         $pdf_path = find_best_location_in_include_path("fpdf");
         require_once $pdf_path . "/fpdf.php";
         require_once $pdf_path . "/ufpdf.php";
         $this->document = new FPDF($this->orientations[$this->orientation], 'pt', $this->page_type);
         if (!isset($this->document->CoreFonts[strtolower($this->fontName)])) {
             if (!isset($this->document->fonts[strtolower($this->fontName)])) {
                 $this->document->AddFont($this->fontName, '', $this->fontName . '.php');
             }
         }
         // If the font loaded is a TrueTypeUnicode font, then we wnat to
         // use UniCode PDF generator instead
         if ($this->document->FontType == "TrueTypeUnicode") {
             $this->document = new UFPDF($this->orientations[$this->orientation], 'pt', $this->page_type);
             if (!isset($this->document->CoreFonts[strtolower($this->fontName)])) {
                 if (!isset($this->document->fonts[strtolower($this->fontName)])) {
                     $this->document->AddFont($this->fontName, '', $this->fontName . '.php');
                 }
             }
         }
     }
     $this->document->SetAutoPageBreak(false);
     $this->document->SetMargins(0, 0, 0);
     $this->document->SetCreator('Reportico');
     $this->document->SetAuthor('Reportico');
     $this->document->SetTitle($this->reporttitle);
     //$this->calculateColumnMetrics();
 }
Example #7
0
$g_debug_mode = true;
$test = new reportico_datasource();
$test->driver = $type;
$test->user_name = $user;
$test->password = $password;
$test->host_name = $host;
$test->database = $name;
$test->server = $server;
$test->protocol = $protocol;
$test->connect(true);
if ($test->connected) {
    handle_debug("Connection to Database succeeded", 0);
} else {
    trigger_error("Connection to Database failed");
}
$proj_parent = find_best_location_in_include_path("projects");
$proj_dir = $proj_parent . "/{$project}";
$proj_conf = $proj_dir . "/config.php";
$proj_menu = $proj_dir . "/menu.php";
$proj_lang = $proj_dir . "/lang.php";
$proj_template = $proj_parent . "/admin/config.template";
$menu_template = $proj_parent . "/admin/menu.template";
$lang_template = $proj_parent . "/admin/lang.template";
if (!file_exists($proj_parent)) {
    trigger_error("Projects area {$proj_parent} does not exist - cannot write project");
    return;
}
if (!is_writeable($proj_parent)) {
    trigger_error("Projects area {$proj_parent} is not writeable - cannot write project");
    return;
}
Example #8
0
function available_languages()
{
    $langs = array();
    global $g_language;
    $lang_dir = find_best_location_in_include_path("language");
    if (is_dir($lang_dir)) {
        // Place english at the start
        if ($dh = opendir($lang_dir)) {
            while (($file = readdir($dh)) !== false) {
                if ($file == "en_gb" || $file == "en_us") {
                    if (is_dir($lang_dir . "/" . $file)) {
                        $langs[] = array("label" => template_xlate($file), "value" => $file, "active" => $file == $g_language);
                    }
                }
            }
            closedir($dh);
        }
        if ($dh = opendir($lang_dir)) {
            while (($file = readdir($dh)) !== false) {
                if ($file != "." && $file != ".." && $file != "CVS" && $file != "packs" && $file != "en_us" && $file != "en_gb") {
                    if (is_dir($lang_dir . "/" . $file)) {
                        $langs[] = array("label" => template_xlate($file), "value" => $file, "active" => $file == $g_language);
                    }
                }
            }
            closedir($dh);
        }
    }
    // No languages found at all - default to en_gb
    if (count($langs) == 0) {
        $langs[] = array("label" => template_xlate("en_gb"), "value" => "en_gb");
    }
    return $langs;
}
 function start()
 {
     reportico_report::start();
     $this->debug("PDF Start **");
     // Set default page size, margins, fonts etc
     $this->page_line_count = 0;
     $this->fontName = $this->query->get_attribute("pdfFont");
     $this->fontSize = $this->query->get_attribute("pdfFontSize");
     $this->vsize = $this->fontSize + $this->vspace;
     $this->orientation = $this->query->get_attribute("PageOrientation");
     $this->page_type = $this->query->get_attribute("PageSize");
     if ($this->orientation == "Portrait") {
         $this->abs_page_width = $this->page_types[$this->page_type]["width"];
         $this->abs_page_height = $this->page_types[$this->page_type]["height"];
     } else {
         $this->abs_page_width = $this->page_types[$this->page_type]["height"];
         $this->abs_page_height = $this->page_types[$this->page_type]["width"];
     }
     $this->abs_top_margin = $this->abs_paging_height($this->query->get_attribute("TopMargin"));
     $this->abs_bottom_margin = $this->abs_page_height - $this->abs_paging_height($this->query->get_attribute("BottomMargin"));
     $this->abs_right_margin = $this->abs_page_width - $this->abs_paging_width($this->query->get_attribute("RightMargin"));
     $this->abs_left_margin = $this->abs_paging_width($this->query->get_attribute("LeftMargin"));
     // Set up default styles
     $this->stylestack = array("border-width" => array(0 => ""), "padding" => array(0 => false), "border-style" => array(0 => "none"), "border-color" => array(0 => "#000000"), "font-size" => array(0 => $this->fontSize), "color" => array(0 => "#000000"), "background-color" => array(0 => array(255, 255, 255)), "isfilling" => array(0 => false), "padding" => array(0 => 0));
     // If font used is a Unicode Truetype font then
     // use Unicode PDF generator
     $pdf_path = find_best_location_in_include_path("fpdf");
     require_once $pdf_path . "/fpdf.php";
     require_once $pdf_path . "/ufpdf.php";
     $this->document = new FPDF($this->orientations[$this->orientation], 'pt', $this->page_type);
     if (!isset($this->document->CoreFonts[strtolower($this->fontName)])) {
         if (!isset($this->document->fonts[strtolower($this->fontName)])) {
             $this->document->AddFont($this->fontName, '', $this->fontName . '.php');
         }
     }
     // If the font loaded is a TrueTypeUnicode font, then we wnat to
     // use UniCode PDF generator instead
     if ($this->document->FontType == "TrueTypeUnicode") {
         $this->document = new UFPDF($this->orientations[$this->orientation], 'pt', $this->page_type);
         if (!isset($this->document->CoreFonts[strtolower($this->fontName)])) {
             if (!isset($this->document->fonts[strtolower($this->fontName)])) {
                 $this->document->AddFont($this->fontName, '', $this->fontName . '.php');
             }
         }
     }
     $this->document->SetAutoPageBreak(false);
     $this->document->SetMargins(0, 0, 0);
     $this->document->SetCreator('Reportico');
     $this->document->SetAuthor('Reportico');
     $this->document->SetTitle($this->reporttitle);
     // Calculate column print and width poistions based on the column start attributes
     $looping = true;
     foreach ($this->query->display_order_set["column"] as $k => $w) {
         $col = get_query_column($w->query_name, $this->query->columns);
         $startcol = $col->attributes["ColumnStartPDF"];
         $colwidth = $col->attributes["ColumnWidthPDF"];
         if ($startcol) {
             $col->abs_column_start = $this->abs_paging_width($startcol);
         } else {
             $col->abs_column_start = 0;
         }
         if ($colwidth) {
             $col->abs_column_width = $this->abs_paging_width($colwidth);
         } else {
             $col->abs_column_width = 0;
         }
     }
     while ($looping) {
         $fromkey = 0;
         $nextkey = 0;
         $frompos = 0;
         $nextpos = 0;
         $topos = 0;
         $lastwidth = 0;
         $looping = false;
         $gapct = 0;
         $k = 0;
         $colct = count($this->query->display_order_set["column"]);
         $coltaken = 0;
         $colstocalc = 0;
         $colswithwidth = 0;
         foreach ($this->query->display_order_set["column"] as $k => $w) {
             if ($w->attributes["column_display"] != "show") {
                 continue;
             }
             $col = get_query_column($w->query_name, $this->query->columns);
             $startcol = $col->abs_column_start;
             $colwidth = $col->abs_column_width;
             if ($startcol) {
                 if ($frompos && $gapct) {
                     $topos = $col->abs_column_start;
                     break;
                 } else {
                     $fromkey = $k;
                     $tokey = $k;
                     $frompos = $col->abs_column_start;
                     if ($colwidth) {
                         $coltaken += $colwidth;
                         $coltaken = 0;
                         $colswithwidth = 1;
                         $colstocalc = 1;
                     } else {
                         $colstocalc++;
                         $gapct++;
                     }
                 }
                 $lastct = 0;
             } else {
                 if (!$frompos) {
                     $col->abs_column_start = $this->abs_left_margin;
                     $frompos = $col->abs_column_start;
                     $fromkey = $k;
                 }
                 if ($colwidth) {
                     $coltaken += $colwidth;
                     $colswithwidth++;
                 }
                 $colstocalc++;
                 $tokey = $k;
                 $gapct++;
                 $looping = true;
             }
         }
         if (!$gapct) {
             break;
         }
         // We have two known positions find total free space between
         $calctoend = false;
         if (!$topos) {
             $calctoend = true;
             $topos = $this->abs_right_margin;
         }
         $totwidth = $topos - $frompos;
         if ($coltaken > $totwidth) {
             $coltaken = $totwidth;
         }
         $colno = 0;
         $calccolwidth = ($totwidth - $coltaken) / ($colstocalc - $colswithwidth);
         $lastpos = $this->abs_left_margin;
         for ($ct = $fromkey; $ct <= $tokey; $ct++) {
             $col1 =& $this->query->display_order_set["column"][$ct];
             if ($col1->attributes["column_display"] == "show") {
                 $abspos = $col1->abs_column_start;
                 if (!$abspos) {
                     $col1->abs_column_start = $lastpos;
                     $colwidth = $col1->attributes["ColumnWidthPDF"];
                     if ($colwidth) {
                         $col1->abs_column_width = $this->abs_paging_width($colwidth);
                         $lastpos = $col1->abs_column_start + $col1->abs_column_width;
                     } else {
                         $col1->abs_column_width = $calccolwidth;
                         $lastpos = $col1->abs_column_start + $calccolwidth;
                     }
                 } else {
                     $colwidth = $col1->attributes["ColumnWidthPDF"];
                     if ($colwidth) {
                         $col1->abs_column_width = $this->abs_paging_width($colwidth);
                         $lastpos = $col1->abs_column_start + $col1->abs_column_width;
                     } else {
                         $col1->abs_column_width = $calccolwidth;
                         $lastpos = $col1->abs_column_start + $calccolwidth;
                     }
                 }
             }
         }
     }
 }
                trigger_error("Connection to Database failed");
                return;
            }
        }
    }
} else {
    $configparams["SW_PROJECT"] = SW_PROJECT;
    $configparams["SW_PROJECT_TITLE"] = SW_PROJECT_TITLE;
}
$proj_parent = $this->projects_folder;
if (!is_dir($proj_parent)) {
    $proj_parent = find_best_location_in_include_path($this->projects_folder);
}
$admin_folder = $this->admin_projects_folder;
if (!is_dir($admin_folder)) {
    $admin_folder = find_best_location_in_include_path($this->admin_projects_folder);
}
$proj_dir = $proj_parent . "/" . $configparams["SW_PROJECT"];
$proj_conf = $proj_dir . "/config.php";
$proj_menu = $proj_dir . "/menu.php";
$proj_lang = $proj_dir . "/lang.php";
$proj_template = $admin_folder . "/admin/config.template";
$menu_template = $admin_folder . "/admin/menu.template";
$lang_template = $admin_folder . "/admin/lang.template";
if (!file_exists($proj_parent)) {
    trigger_error("Projects area {$proj_parent} does not exist - cannot write project");
    return;
}
if (!is_writeable($proj_parent)) {
    if ($_configure_mode == "DELETE") {
        trigger_error("Projects area {$proj_parent} is not writeable - cannot delete project");
Example #11
0
 function prepare_wsdl_data($savefile = false)
 {
     $smarty = new smarty();
     $smarty->compile_dir = find_best_location_in_include_path("templates_c");
     $smarty->assign('WS_SERVICE_NAMESPACE', SW_SOAP_NAMESPACE);
     $smarty->assign('WS_SERVICE_CODE', SW_SOAP_SERVICECODE);
     $smarty->assign('WS_SERVICE_NAME', SW_SOAP_SERVICENAME);
     $smarty->assign('WS_SERVICE_URL', SW_SOAP_SERVICEURL);
     $smarty->debugging = true;
     $cols = array();
     $cols[] = array("name" => "ReportName", "type" => "char", "length" => 0);
     foreach ($this->query->columns as $col) {
         $cols[] = array("name" => $col->query_name, "type" => $col->column_type, "length" => $col->column_length);
     }
     $smarty->assign("COLUMN_ITEMS", $cols);
     $crits = array();
     foreach ($this->query->lookup_queries as $lq) {
         $crits[] = array("name" => $lq->query_name);
     }
     $smarty->assign("CRITERIA_ITEMS", $crits);
     header('Content-Type: text/xml');
     if ($savefile) {
         $data = $smarty->fetch('wsdl.tpl', null, null, false);
         $this->write_report_file($savefile, $data);
     } else {
         $smarty->display('wsdl.tpl');
     }
 }
Example #12
0
 function perform_project_modifications($project)
 {
     $filename = find_best_location_in_include_path("projects/" . $project . "/modification_rules.php");
     $return_status = array("errstat" => 0, "msgtext" => "Modification sucessful");
     if (is_file($filename)) {
         require_once $filename;
         custom_project_modifications(&$this, $return_status);
     } else {
         $return_status["errstat"] = -1;
         $return_status["msgtext"] = "No modifcation rules were found";
     }
     return $return_status;
 }
Example #13
0
 function _puttruetypeunicode($font)
 {
     //Type0 Font
     $this->_newobj();
     $this->_out('<</Type /Font');
     $this->_out('/Subtype /Type0');
     $this->_out('/BaseFont /' . $font['name'] . '-UCS');
     $this->_out('/Encoding /Identity-H');
     $this->_out('/DescendantFonts [' . ($this->n + 1) . ' 0 R]');
     $this->_out('>>');
     $this->_out('endobj');
     //CIDFont
     $this->_newobj();
     $this->_out('<</Type /Font');
     $this->_out('/Subtype /CIDFontType2');
     $this->_out('/BaseFont /' . $font['name']);
     $this->_out('/CIDSystemInfo <</Registry (Adobe) /Ordering (UCS) /Supplement 0>>');
     $this->_out('/FontDescriptor ' . ($this->n + 1) . ' 0 R');
     $c = 0;
     $widths = false;
     foreach ($font['cw'] as $i => $w) {
         $widths .= $i . ' [' . $w . '] ';
     }
     $this->_out('/W [' . $widths . ']');
     $this->_out('/CIDToGIDMap ' . ($this->n + 2) . ' 0 R');
     $this->_out('>>');
     $this->_out('endobj');
     //Font descriptor
     $this->_newobj();
     $this->_out('<</Type /FontDescriptor');
     $this->_out('/FontName /' . $font['name']);
     $s = false;
     foreach ($font['desc'] as $k => $v) {
         $s .= ' /' . $k . ' ' . $v;
     }
     if ($font['file']) {
         $s .= ' /FontFile2 ' . $this->FontFiles[$font['file']]['n'] . ' 0 R';
     }
     $this->_out($s);
     $this->_out('>>');
     $this->_out('endobj');
     //Embed CIDToGIDMap
     $this->_newobj();
     if (defined('FPDF_FONTPATH')) {
         $file = FPDF_FONTPATH . $font['ctg'];
     } else {
         $file = $font['ctg'];
     }
     $ofile = $file;
     if (!is_file($file)) {
         $file = find_best_location_in_include_path($file);
         if (!$file) {
             $file = $ofile;
         }
     }
     $size = filesize($file);
     if (!$size) {
         $this->Error('Font file not found');
     }
     $this->_out('<</Length ' . $size);
     if (substr($file, -2) == '.z') {
         $this->_out('/Filter /FlateDecode');
     }
     $this->_out('>>');
     $f = fopen($file, 'rb');
     $this->_putstream(fread($f, $size));
     fclose($f);
     $this->_out('endobj');
 }