Merged in bugfix/HOR-3746 (pull request #6193)
HOR-3746 Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
@@ -1,35 +0,0 @@
|
||||
<?php
|
||||
|
||||
class openFlashPlugin extends PMPlugin
|
||||
{
|
||||
function openFlashPlugin($sNamespace, $sFilename = null)
|
||||
{
|
||||
$res = parent::PMPlugin($sNamespace, $sFilename);
|
||||
$this->sFriendlyName = 'openFlash Plugin';
|
||||
$this->sDescription = 'Charts Plugin, with this plugin you can see many differents charts using interactive flash charts for ProcessMaker';
|
||||
$this->sPluginFolder = 'openFlash';
|
||||
$this->sSetupPage = 'setupPage';
|
||||
$this->aWorkspaces = array ( );
|
||||
$this->aWorkspaces = array ( 'dev');
|
||||
$this->iVersion = 0.45;
|
||||
return $res;
|
||||
}
|
||||
|
||||
function setup()
|
||||
{
|
||||
$this->registerDashboard();
|
||||
}
|
||||
|
||||
function install()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$oPluginRegistry =& PMPluginRegistry::getSingleton();
|
||||
$oPluginRegistry->registerPlugin('openFlash', __FILE__);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<?php
|
||||
|
||||
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
|
||||
|
||||
// use the chart class to build the chart:
|
||||
require_once ( "class.openFlash.php" );
|
||||
include_once( 'open-flash-chart.php' );
|
||||
$chartsObj = new openFlashClass();
|
||||
|
||||
if ( method_exists( $chartsObj, $chartType) ) {
|
||||
$chartsObj->{$chartType}();
|
||||
die;
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
$type = isset ( $_GET['type']) ? $_GET['type'] : '1' ;
|
||||
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
|
||||
$user = isset ( $_GET['user']) ? $_GET['user'] : $_SESSION['USER_LOGGED'] ;
|
||||
|
||||
include_once 'open_flash_chart_object.php';
|
||||
open_flash_chart_object( 450, 200, '../openFlash/chart-data.php?type=' . $type .'&chart='. $chartType,
|
||||
false , '/plugin/openFlash/');
|
||||
|
||||
|
||||
@@ -1,428 +0,0 @@
|
||||
<?php
|
||||
require_once ( "classes/model/Application.php" );
|
||||
require_once ( "classes/model/AppDelegation.php" );
|
||||
require_once ( "classes/model/Process.php" );
|
||||
|
||||
class openFlashClass extends PMPlugin {
|
||||
|
||||
function __construct ( ) {
|
||||
}
|
||||
|
||||
function readConfig () {
|
||||
$fileConf = PATH_PLUGINS . 'openFlash' . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
|
||||
if ( !file_exists( dirname($fileConf) ) )
|
||||
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist." ) );
|
||||
|
||||
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
|
||||
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
|
||||
|
||||
$content = file_get_contents ( $fileConf);
|
||||
$fields = unserialize ($content);
|
||||
return $fields;
|
||||
}
|
||||
|
||||
function getFieldsForPageSetup () {
|
||||
$fileConf = PATH_PLUGINS . $this->sPluginFolder . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
|
||||
if ( !file_exists( dirname($fileConf) ) )
|
||||
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist." ) );
|
||||
|
||||
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
|
||||
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
|
||||
|
||||
if ( file_exists ( $fileConf ) ) {
|
||||
$content = file_get_contents ( $fileConf);
|
||||
$fields = unserialize ($content);
|
||||
}
|
||||
else
|
||||
$fields = array();
|
||||
return $fields;
|
||||
}
|
||||
|
||||
function updateFieldsForPageSetup ( $oData) {
|
||||
$content = serialize ($oData['form']);
|
||||
$fileConf = PATH_PLUGINS . $this->sPluginFolder . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
|
||||
if ( !is_writable( dirname($fileConf) ) )
|
||||
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist or this directory is not writable." ) );
|
||||
|
||||
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
|
||||
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
|
||||
|
||||
file_put_contents ( $fileConf, $content);
|
||||
return true;
|
||||
}
|
||||
|
||||
function setup() {
|
||||
}
|
||||
|
||||
function getChart( $chartName ) {
|
||||
$this->readConfig();
|
||||
$prePath = '/sys' . config("system.workspace") . '/' . SYS_LANG . '/blank/';
|
||||
$obj = new StdClass();
|
||||
$obj->title = 'Standard ProcessMaker Reports';
|
||||
$obj->height = 220;
|
||||
$obj->open->url = $prePath . 'openFlash/chart?chart=' . $chartName . "&u=";
|
||||
return $obj;
|
||||
}
|
||||
|
||||
//here we are defining the available charts, the dashboard setup will call this function to know the charts
|
||||
function getAvailableCharts( ) {
|
||||
return array (
|
||||
'CasesByStatus',
|
||||
'CasesByStatusPie',
|
||||
'CasesByProcess',
|
||||
'CasesByProcessPie'
|
||||
);
|
||||
}
|
||||
|
||||
/* definition of all charts */
|
||||
/* that definition comes in two parts :
|
||||
/* 1. the getXX () function to get the data from the databases
|
||||
/* 2. the XX () function to draw the graph
|
||||
*/
|
||||
|
||||
/** chart getCasesByStatus ***/
|
||||
/** to show the Cases grouped by Status*/
|
||||
function getCasesByStatus ( ) {
|
||||
$dataSet = array();
|
||||
|
||||
$c = new Criteria('workflow');
|
||||
$c->clearSelectColumns();
|
||||
$c->addSelectColumn ( ApplicationPeer::APP_STATUS );
|
||||
$c->addSelectColumn ( 'COUNT(*) AS CANT') ;
|
||||
$c->addGroupByColumn(ApplicationPeer::APP_STATUS);
|
||||
$rs = ApplicationPeer::doSelectRS( $c );
|
||||
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
$label[] = $row['APP_STATUS'];
|
||||
$data[] = (int)$row['CANT'];
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
|
||||
$max = 1;
|
||||
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
|
||||
$aux = intval($max / 6 ) * 6 + 6;
|
||||
$dataSet['max'] = $aux;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function CasesByStatus( ) {
|
||||
$dataSet = $this->getCasesByStatus();
|
||||
$data = $dataSet['data'];
|
||||
//$series2 = $dataSet['series2'];
|
||||
$g = new graph();
|
||||
$g->title( ' Cases by Status ', '{font-size: 14px;}' );
|
||||
$bar_red = new bar_3d( 50, '#3334AD' );
|
||||
$bar_red->key( 'cases', 10 );
|
||||
$bar_red->data = $data;
|
||||
|
||||
$g->data_sets[] = $bar_red;
|
||||
|
||||
$g->set_x_axis_3d( 12 );
|
||||
$g->x_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->y_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->set_x_labels( $dataSet['label'] );
|
||||
|
||||
$g->set_y_max( $dataSet['max'] );
|
||||
$g->y_label_steps( 6 );
|
||||
//$g->set_y_legend( 'Posts', 12, '#736AFF' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
function CasesByStatusPie ( ) {
|
||||
$g->bg_colour = '#FFFFFF';
|
||||
$dataSet = $this->getCasesByStatus();
|
||||
$data = $dataSet['data'];
|
||||
$g = new graph();
|
||||
$g->pie(80,'#505050','{font-size: 12px; color: #404040;');
|
||||
$g->pie_values( $data, $dataSet['label'] );
|
||||
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810','#D54C78') );
|
||||
$g->set_tool_tip( '#val# #x_label#' );
|
||||
$g->title( 'Cases by Status', '{font-size:18px; color: #d01f3c}' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
/** chart CasesByProcess ***/
|
||||
/** to show the cases grouped by Process */
|
||||
function getCasesByProcess ( ) {
|
||||
$dataSet = array();
|
||||
$processObj = new Process;
|
||||
|
||||
$c = new Criteria('workflow');
|
||||
$c->clearSelectColumns();
|
||||
$c->addSelectColumn ( ApplicationPeer::PRO_UID );
|
||||
$c->addSelectColumn ( 'COUNT(*) AS CANT') ;
|
||||
//$c->addJoin( ProcessPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
|
||||
$c->addGroupByColumn(ApplicationPeer::PRO_UID);
|
||||
$rs = ApplicationPeer::doSelectRS( $c );
|
||||
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
$processObj->load ( $row['PRO_UID'] );
|
||||
$label[] = $processObj->getProTitle();
|
||||
$labelPie[] = substr ( $processObj->getProTitle(),0,16 );
|
||||
$data[] = (int)$row['CANT'];
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
$dataSet['labelPie'] = $labelPie;
|
||||
|
||||
$max = 1;
|
||||
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
|
||||
$aux = intval($max / 6 ) * 6 + 6;
|
||||
$dataSet['max'] = $aux;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function CasesByProcess( ) {
|
||||
$dataSet = $this->getCasesByProcess();
|
||||
$data = $dataSet['data'];
|
||||
//$series2 = $dataSet['series2'];
|
||||
$g = new graph();
|
||||
$g->title( ' Cases by Process ', '{font-size: 14px;}' );
|
||||
$bar_red = new bar_3d( 50, '#3334AD' );
|
||||
$bar_red->key( 'cases', 10 );
|
||||
$bar_red->data = $data;
|
||||
|
||||
$g->data_sets[] = $bar_red;
|
||||
|
||||
$g->set_x_axis_3d( 12 );
|
||||
$g->x_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->y_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->set_x_labels( $dataSet['label'] );
|
||||
|
||||
$g->set_y_max( $dataSet['max'] );
|
||||
$g->y_label_steps( 6 );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
function CasesByProcessPie ( ) {
|
||||
$g->bg_colour = '#FFFFFF';
|
||||
$dataSet = $this->getCasesByProcess();
|
||||
$data = $dataSet['data'];
|
||||
$g = new graph();
|
||||
$g->pie(80,'#505050','{font-size: 12px; color: #404040;');
|
||||
$g->pie_values( $data, $dataSet['labelPie'] );
|
||||
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810','#D54C78') );
|
||||
$g->set_tool_tip( '#val# #x_label#' );
|
||||
$g->title( 'Cases by Process', '{font-size:16px; color: #d01f3c}' );
|
||||
echo $g->render();
|
||||
}
|
||||
/*
|
||||
function getForumWeek ( ) {
|
||||
$databases = PATH_PLUGINS . "/openFlash/config/databases.php";
|
||||
Propel::init( $databases );
|
||||
|
||||
$dataSet = array();
|
||||
$processObj = new Process;
|
||||
$past2months = mktime(0, 0, 0, date("m") -2 , date("d"), date("Y"));
|
||||
|
||||
$con = Propel::getConnection('forum');
|
||||
$sql = "select week(FROM_UNIXTIME(post_time )) as week ,count(*) as cant from phpbb_posts where post_time > $past2months group by week " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
$label[] = date ( 'M d', mktime(0, 0, 0, 1 , $row['week']*7, date("Y")) );
|
||||
$data[] = $row['cant'];
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function ForumWeek ( ) {
|
||||
$dataSet = $this->getForumWeek();
|
||||
$data = $dataSet['data'];
|
||||
$max = 1;
|
||||
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
|
||||
$g = new graph();
|
||||
$g->title( ' Posts by Week ', '{font-size: 16px;}' );
|
||||
$bar_red = new bar_3d( 50, '#3334AD' );
|
||||
$bar_red->key( 'week', 10 );
|
||||
$bar_red->data = $data;
|
||||
|
||||
$g->data_sets[] = $bar_red;
|
||||
|
||||
$g->set_x_axis_3d( 12 );
|
||||
$g->x_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->y_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->set_x_labels( $dataSet['label'] );
|
||||
|
||||
$g->set_y_max( $max );
|
||||
$g->y_label_steps( 5 );
|
||||
$g->set_y_legend( 'Posts', 12, '#736AFF' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
/** chart PostByUser ***/
|
||||
/** to show the last 7 days grouped by user * /
|
||||
function getPostByUser ( ) {
|
||||
$databases = PATH_PLUGINS . "/openFlash/config/databases.php";
|
||||
Propel::init( $databases );
|
||||
|
||||
$dataSet = array();
|
||||
$con = Propel::getConnection('forum');
|
||||
|
||||
$past7days = mktime(0, 0, 0, date("m") , date("d")-7, date("Y"));
|
||||
$sql = "select username, count(*) as cant from phpbb_posts left join phpbb_users on ( poster_id = user_id ) where post_time > $past7days group by username " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
$label[] = $row['username'];
|
||||
$data[] = $row['cant'];
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['data'] = $data;
|
||||
//$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function PostByUser ( ) {
|
||||
$dataSet = $this->getPostByUser();
|
||||
$data = $dataSet['data'];
|
||||
$g = new graph();
|
||||
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
|
||||
$max = 1;
|
||||
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
|
||||
$max = intval($max / 4 ) * 4 + 4;
|
||||
|
||||
$bar_red = new bar_3d( 50, '#356aa0' );
|
||||
$bar_red->key( 'posts', 10 );
|
||||
$bar_red->data = $data;
|
||||
|
||||
$bar_blue = new bar_3d( 75, '#D54C78' );
|
||||
$bar_blue->key( 'completed', 10 );
|
||||
$bar_blue->data = $data;
|
||||
|
||||
$g->data_sets[] = $bar_red;
|
||||
//$g->data_sets[] = $bar_blue;
|
||||
|
||||
$g->set_x_axis_3d( 12 );
|
||||
$g->x_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->y_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->set_x_labels( $dataSet['label'] );
|
||||
|
||||
$g->set_y_max( $max );
|
||||
$g->y_label_steps( 4 );
|
||||
$g->set_y_legend( 'Processmaker', 12, '#736AFF' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
/** chart BugsByStatus ***/
|
||||
/** to show the bugs by status resolved, open, closed * /
|
||||
function getBugsByStatus ( ) {
|
||||
$databases = PATH_PLUGINS . "/openFlash/config/databases.php";
|
||||
Propel::init( $databases );
|
||||
|
||||
$dataSet = array();
|
||||
$con = Propel::getConnection('bugs');
|
||||
|
||||
//open
|
||||
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status in (20,30,40,50) " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
$label[] = 'open';
|
||||
$data[] = $row['cant'];
|
||||
|
||||
//resolved
|
||||
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status = 80" ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
$label[] = 'resolved';
|
||||
$data[] = $row['cant'];
|
||||
|
||||
//closed
|
||||
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status = 90" ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
$label[] = 'closed';
|
||||
$data[] = $row['cant'];
|
||||
|
||||
$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function BugsByStatus ( ) {
|
||||
$dataSet = $this->getBugsByStatus();
|
||||
$data = $dataSet['data'];
|
||||
$g = new graph();
|
||||
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
|
||||
|
||||
$g->pie(70,'#505050','{font-size: 12px; color: #404040;');
|
||||
$g->pie_values( $data, $dataSet['label'] );
|
||||
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810') );
|
||||
$g->set_tool_tip( '#val# #x_label#' );
|
||||
$g->title( 'Bugs by Status', '{font-size:18px; color: #d01f3c}' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
/** chart BugsOpenByUser ***/
|
||||
/** to show the bugs in OPEN status by user * /
|
||||
function getBugsOpenByUser ( ) {
|
||||
$databases = PATH_PLUGINS . "/openFlash/config/databases.php";
|
||||
Propel::init( $databases );
|
||||
|
||||
$dataSet = array();
|
||||
$con = Propel::getConnection('bugs');
|
||||
|
||||
$sql = "SELECT username, count(*) as cant FROM mantis_bug_table left join mantis_user_table on ( mantis_user_table.id = handler_id) where project_id = 31 and status in (20,30,40,50) group by username " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
$label[] = $row['username'];
|
||||
$data[] = $row['cant'];
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function BugsOpenByUser ( ) {
|
||||
$g->bg_colour = '#EFFFEF';
|
||||
$dataSet = $this->getBugsOpenByUser();
|
||||
$data = $dataSet['data'];
|
||||
$g = new graph();
|
||||
$g->pie(80,'#505050','{font-size: 12px; color: #404040;');
|
||||
$g->pie_values( $data, $dataSet['label'] );
|
||||
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810','#D54C78') );
|
||||
$g->set_tool_tip( '#val# #x_label#' );
|
||||
$g->title( 'Open Bugs by User', '{font-size:18px; color: #d01f3c}' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
/*******/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,109 +0,0 @@
|
||||
<?php
|
||||
|
||||
function open_flash_chart_object_str( $width, $height, $url, $use_swfobject=true, $base='' )
|
||||
{
|
||||
//
|
||||
// return the HTML as a string
|
||||
//
|
||||
return _ofc( $width, $height, $url, $use_swfobject, $base );
|
||||
}
|
||||
|
||||
function open_flash_chart_object( $width, $height, $url, $use_swfobject=true, $base='' )
|
||||
{
|
||||
//
|
||||
// stream the HTML into the page
|
||||
//
|
||||
echo _ofc( $width, $height, $url, $use_swfobject, $base );
|
||||
}
|
||||
|
||||
function _ofc( $width, $height, $url, $use_swfobject, $base )
|
||||
{
|
||||
//
|
||||
// I think we may use swfobject for all browsers,
|
||||
// not JUST for IE...
|
||||
//
|
||||
//$ie = strstr(getenv('HTTP_USER_AGENT'), 'MSIE');
|
||||
|
||||
//
|
||||
// escape the & and stuff:
|
||||
//
|
||||
$url = urlencode($url);
|
||||
|
||||
//
|
||||
// output buffer
|
||||
//
|
||||
$out = array();
|
||||
|
||||
//
|
||||
// check for http or https:
|
||||
//
|
||||
if (isset ($_SERVER['HTTPS']))
|
||||
{
|
||||
if (strtoupper ($_SERVER['HTTPS']) == 'ON')
|
||||
{
|
||||
$protocol = 'https';
|
||||
}
|
||||
else
|
||||
{
|
||||
$protocol = 'http';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$protocol = 'http';
|
||||
}
|
||||
|
||||
//
|
||||
// if there are more than one charts on the
|
||||
// page, give each a different ID
|
||||
//
|
||||
global $open_flash_chart_seqno;
|
||||
$obj_id = 'chart';
|
||||
$div_name = 'flashcontent';
|
||||
|
||||
//$out[] = '<script type="text/javascript" src="'. $base .'ofc.js"></script>';
|
||||
|
||||
if( !isset( $open_flash_chart_seqno ) )
|
||||
{
|
||||
$open_flash_chart_seqno = 1;
|
||||
$out[] = '<script type="text/javascript" src="'. $base .'swfobject.js"></script>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$open_flash_chart_seqno++;
|
||||
$obj_id .= '_'. $open_flash_chart_seqno;
|
||||
$div_name .= '_'. $open_flash_chart_seqno;
|
||||
}
|
||||
|
||||
if( $use_swfobject )
|
||||
{
|
||||
// Using library for auto-enabling Flash object on IE, disabled-Javascript proof
|
||||
$out[] = '<div id="'. $div_name .'"></div>';
|
||||
$out[] = '<script type="text/javascript">';
|
||||
$out[] = 'var so = new SWFObject("'. $base .'open-flash-chart.swf", "'. $obj_id .'", "'. $width . '", "' . $height . '", "9", "#FFFFFF");';
|
||||
//$out[] = 'so.addVariable("width", "' . $width . '");';
|
||||
//$out[] = 'so.addVariable("height", "' . $height . '");';
|
||||
$out[] = 'so.addVariable("data", "'. $url . '");';
|
||||
$out[] = 'so.addParam("allowScriptAccess", "sameDomain");';
|
||||
$out[] = 'so.write("'. $div_name .'");';
|
||||
$out[] = '</script>';
|
||||
$out[] = '<noscript>';
|
||||
}
|
||||
|
||||
$out[] = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="' . $protocol . '://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ';
|
||||
$out[] = 'width="' . $width . '" height="' . $height . '" id="ie_'. $obj_id .'" align="middle">';
|
||||
$out[] = '<param name="allowScriptAccess" value="sameDomain" />';
|
||||
$out[] = '<param name="movie" value="'. $base .'open-flash-chart.swf?width='. $width .'&height='. $height . '&data='. $url .'" />';
|
||||
$out[] = '<param name="quality" value="high" />';
|
||||
$out[] = '<param name="bgcolor" value="#FFFFFF" />';
|
||||
$out[] = '<embed src="'. $base .'open-flash-chart.swf?data=' . $url .'" quality="high" bgcolor="#FFFFFF" width="'. $width .'" height="'. $height .'" name="'. $obj_id .'" align="middle" allowScriptAccess="sameDomain" ';
|
||||
$out[] = 'type="application/x-shockwave-flash" pluginspage="' . $protocol . '://www.macromedia.com/go/getflashplayer" id="'. $obj_id .'"/>';
|
||||
$out[] = '</object>';
|
||||
|
||||
if ( $use_swfobject ) {
|
||||
$out[] = '</noscript>';
|
||||
}
|
||||
|
||||
return implode("\n",$out);
|
||||
}
|
||||
?>
|
||||
Binary file not shown.
@@ -1,233 +0,0 @@
|
||||
/**
|
||||
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
|
||||
*
|
||||
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
*/
|
||||
if(typeof deconcept == "undefined") var deconcept = new Object();
|
||||
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
|
||||
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
|
||||
deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) {
|
||||
if (!document.getElementById) { return; }
|
||||
this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
|
||||
this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
|
||||
this.params = new Object();
|
||||
this.variables = new Object();
|
||||
this.attributes = new Array();
|
||||
if(swf) { this.setAttribute('swf', swf); }
|
||||
if(id) { this.setAttribute('id', id); }
|
||||
if(w) { this.setAttribute('width', w); }
|
||||
if(h) { this.setAttribute('height', h); }
|
||||
if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
|
||||
this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
|
||||
if (!window.opera && document.all && this.installedVer.major > 7) {
|
||||
// only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE
|
||||
deconcept.SWFObject.doPrepUnload = true;
|
||||
}
|
||||
if(c) { this.addParam('bgcolor', c); }
|
||||
var q = quality ? quality : 'high';
|
||||
this.addParam('quality', q);
|
||||
this.setAttribute('useExpressInstall', false);
|
||||
this.setAttribute('doExpressInstall', false);
|
||||
var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
|
||||
this.setAttribute('xiRedirectUrl', xir);
|
||||
this.setAttribute('redirectUrl', '');
|
||||
if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
|
||||
}
|
||||
deconcept.SWFObject.prototype = {
|
||||
useExpressInstall: function(path) {
|
||||
this.xiSWFPath = !path ? "expressinstall.swf" : path;
|
||||
this.setAttribute('useExpressInstall', true);
|
||||
},
|
||||
setAttribute: function(name, value){
|
||||
this.attributes[name] = value;
|
||||
},
|
||||
getAttribute: function(name){
|
||||
return this.attributes[name];
|
||||
},
|
||||
addParam: function(name, value){
|
||||
this.params[name] = value;
|
||||
},
|
||||
getParams: function(){
|
||||
return this.params;
|
||||
},
|
||||
addVariable: function(name, value){
|
||||
this.variables[name] = value;
|
||||
},
|
||||
getVariable: function(name){
|
||||
return this.variables[name];
|
||||
},
|
||||
getVariables: function(){
|
||||
return this.variables;
|
||||
},
|
||||
getVariablePairs: function(){
|
||||
var variablePairs = new Array();
|
||||
var key;
|
||||
var variables = this.getVariables();
|
||||
for(key in variables){
|
||||
variablePairs[variablePairs.length] = key +"="+ variables[key];
|
||||
}
|
||||
return variablePairs;
|
||||
},
|
||||
getSWFHTML: function() {
|
||||
var swfNode = "";
|
||||
if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
|
||||
if (this.getAttribute("doExpressInstall")) {
|
||||
this.addVariable("MMplayerType", "PlugIn");
|
||||
this.setAttribute('swf', this.xiSWFPath);
|
||||
}
|
||||
swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'"';
|
||||
swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
|
||||
var params = this.getParams();
|
||||
for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
|
||||
var pairs = this.getVariablePairs().join("&");
|
||||
if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
|
||||
swfNode += '/>';
|
||||
} else { // PC IE
|
||||
if (this.getAttribute("doExpressInstall")) {
|
||||
this.addVariable("MMplayerType", "ActiveX");
|
||||
this.setAttribute('swf', this.xiSWFPath);
|
||||
}
|
||||
swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'">';
|
||||
swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
|
||||
var params = this.getParams();
|
||||
for(var key in params) {
|
||||
swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
|
||||
}
|
||||
var pairs = this.getVariablePairs().join("&");
|
||||
if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
|
||||
swfNode += "</object>";
|
||||
}
|
||||
return swfNode;
|
||||
},
|
||||
write: function(elementId){
|
||||
if(this.getAttribute('useExpressInstall')) {
|
||||
// check to see if we need to do an express install
|
||||
var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
|
||||
if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
|
||||
this.setAttribute('doExpressInstall', true);
|
||||
this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
|
||||
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
|
||||
this.addVariable("MMdoctitle", document.title);
|
||||
}
|
||||
}
|
||||
if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
|
||||
var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
|
||||
n.innerHTML = this.getSWFHTML();
|
||||
return true;
|
||||
}else{
|
||||
if(this.getAttribute('redirectUrl') != "") {
|
||||
document.location.replace(this.getAttribute('redirectUrl'));
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* ---- detection functions ---- */
|
||||
deconcept.SWFObjectUtil.getPlayerVersion = function(){
|
||||
var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
|
||||
if(navigator.plugins && navigator.mimeTypes.length){
|
||||
var x = navigator.plugins["Shockwave Flash"];
|
||||
if(x && x.description) {
|
||||
PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
|
||||
}
|
||||
}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE
|
||||
var axo = 1;
|
||||
var counter = 3;
|
||||
while(axo) {
|
||||
try {
|
||||
counter++;
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);
|
||||
// document.write("player v: "+ counter);
|
||||
PlayerVersion = new deconcept.PlayerVersion([counter,0,0]);
|
||||
} catch (e) {
|
||||
axo = null;
|
||||
}
|
||||
}
|
||||
} else { // Win IE (non mobile)
|
||||
// do minor version lookup in IE, but avoid fp6 crashing issues
|
||||
// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
|
||||
try{
|
||||
var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
|
||||
}catch(e){
|
||||
try {
|
||||
var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
|
||||
PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
|
||||
axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
|
||||
} catch(e) {
|
||||
if (PlayerVersion.major == 6) {
|
||||
return PlayerVersion;
|
||||
}
|
||||
}
|
||||
try {
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
|
||||
} catch(e) {}
|
||||
}
|
||||
if (axo != null) {
|
||||
PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
|
||||
}
|
||||
}
|
||||
return PlayerVersion;
|
||||
}
|
||||
deconcept.PlayerVersion = function(arrVersion){
|
||||
this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
|
||||
this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
|
||||
this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
|
||||
}
|
||||
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
|
||||
if(this.major < fv.major) return false;
|
||||
if(this.major > fv.major) return true;
|
||||
if(this.minor < fv.minor) return false;
|
||||
if(this.minor > fv.minor) return true;
|
||||
if(this.rev < fv.rev) return false;
|
||||
return true;
|
||||
}
|
||||
/* ---- get value of query string param ---- */
|
||||
deconcept.util = {
|
||||
getRequestParameter: function(param) {
|
||||
var q = document.location.search || document.location.hash;
|
||||
if (param == null) { return q; }
|
||||
if(q) {
|
||||
var pairs = q.substring(1).split("&");
|
||||
for (var i=0; i < pairs.length; i++) {
|
||||
if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
|
||||
return pairs[i].substring((pairs[i].indexOf("=")+1));
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
/* fix for video streaming bug */
|
||||
deconcept.SWFObjectUtil.cleanupSWFs = function() {
|
||||
var objects = document.getElementsByTagName("OBJECT");
|
||||
for (var i = objects.length - 1; i >= 0; i--) {
|
||||
objects[i].style.display = 'none';
|
||||
for (var x in objects[i]) {
|
||||
if (typeof objects[i][x] == 'function') {
|
||||
objects[i][x] = function(){};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// fixes bug in some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/
|
||||
if (deconcept.SWFObject.doPrepUnload) {
|
||||
if (!deconcept.unloadSet) {
|
||||
deconcept.SWFObjectUtil.prepUnload = function() {
|
||||
__flash_unloadHandler = function(){};
|
||||
__flash_savedUnloadHandler = function(){};
|
||||
window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);
|
||||
}
|
||||
window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
|
||||
deconcept.unloadSet = true;
|
||||
}
|
||||
}
|
||||
/* add document.getElementById if needed (mobile IE < 5) */
|
||||
if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }}
|
||||
|
||||
/* add some aliases for ease of use/backwards compatibility */
|
||||
var getQueryParamValue = deconcept.util.getRequestParameter;
|
||||
var FlashObject = deconcept.SWFObject; // for legacy support
|
||||
var SWFObject = deconcept.SWFObject;
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm
|
||||
name="About Charts Plugin"
|
||||
type="xmlform"
|
||||
width="550"
|
||||
>
|
||||
|
||||
<TITLE type="title" >
|
||||
<en>Open Flash Charts Plugin</en>
|
||||
</TITLE>
|
||||
|
||||
<sTITLE type="subtitle" >
|
||||
<en>Open Charts Plugin, with this plugin you can see many differents charts using interative flash charts</en>
|
||||
</sTITLE>
|
||||
|
||||
|
||||
<ACCEPT type="submit" >
|
||||
<en>Save</en>
|
||||
</ACCEPT>
|
||||
</dynaForm>
|
||||
@@ -1,35 +0,0 @@
|
||||
<?php
|
||||
|
||||
class pmosCommunityPlugin extends PMPlugin
|
||||
{
|
||||
function pmosCommunityPlugin($sNamespace, $sFilename = null)
|
||||
{
|
||||
$res = parent::PMPlugin($sNamespace, $sFilename);
|
||||
$this->sFriendlyName = 'PMOS Community Plugin';
|
||||
$this->sDescription = 'Community Charts Plugin, with this plugin you can see many differents charts related to ProcessMaker Open Source Community';
|
||||
$this->sPluginFolder = 'pmosCommunity';
|
||||
$this->sSetupPage = 'setupPage';
|
||||
$this->iVersion = 0.45;
|
||||
$this->aWorkspaces = array ( 'os' );
|
||||
return $res;
|
||||
}
|
||||
|
||||
function setup()
|
||||
{
|
||||
//$this->registerTrigger( 10000, 'createCaseFolder' );
|
||||
$this->registerDashboard();
|
||||
}
|
||||
|
||||
function install()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$oPluginRegistry =& PMPluginRegistry::getSingleton();
|
||||
$oPluginRegistry->registerPlugin('pmosCommunity', __FILE__);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<?php
|
||||
|
||||
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
|
||||
|
||||
// use the chart class to build the chart:
|
||||
require_once ( "class.pmosCommunity.php" );
|
||||
include_once( 'open-flash-chart.php' );
|
||||
$chartsObj = new pmosCommunityClass();
|
||||
|
||||
if ( method_exists( $chartsObj, $chartType) ) {
|
||||
$chartsObj->{$chartType}();
|
||||
die;
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
$type = isset ( $_GET['type']) ? $_GET['type'] : '1' ;
|
||||
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
|
||||
$user = isset ( $_GET['user']) ? $_GET['user'] : $_SESSION['USER_LOGGED'] ;
|
||||
|
||||
include_once 'open_flash_chart_object.php';
|
||||
open_flash_chart_object( 450, 200, '../pmosCommunity/chart-data.php?type=' . $type .'&chart='. $chartType,
|
||||
false , '/plugin/pmosCommunity/');
|
||||
|
||||
|
||||
@@ -1,477 +0,0 @@
|
||||
<?php
|
||||
require_once ( "classes/model/Application.php" );
|
||||
require_once ( "classes/model/AppDelegation.php" );
|
||||
require_once ( "classes/model/Process.php" );
|
||||
|
||||
class pmosCommunityClass extends PMPlugin {
|
||||
|
||||
function __construct ( ) {
|
||||
}
|
||||
|
||||
function readConfig () {
|
||||
$fileConf = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
|
||||
if ( !file_exists( dirname($fileConf) ) )
|
||||
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist." ) );
|
||||
|
||||
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
|
||||
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
|
||||
|
||||
$content = file_get_contents ( $fileConf);
|
||||
$fields = unserialize ($content);
|
||||
return $fields;
|
||||
}
|
||||
|
||||
function getFieldsForPageSetup () {
|
||||
$fileConf = PATH_PLUGINS . $this->sPluginFolder . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
|
||||
if ( !file_exists( dirname($fileConf) ) )
|
||||
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist." ) );
|
||||
|
||||
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
|
||||
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
|
||||
|
||||
if ( file_exists ( $fileConf ) ) {
|
||||
$content = file_get_contents ( $fileConf);
|
||||
$fields = unserialize ($content);
|
||||
}
|
||||
else
|
||||
$fields = array();
|
||||
return $fields;
|
||||
}
|
||||
|
||||
function updateFieldsForPageSetup ( $oData) {
|
||||
$content = serialize ($oData['form']);
|
||||
$fileConf = PATH_PLUGINS . $this->sPluginFolder . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
|
||||
if ( !is_writable( dirname($fileConf) ) )
|
||||
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist or this directory is not writable." ) );
|
||||
|
||||
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
|
||||
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
|
||||
|
||||
file_put_contents ( $fileConf, $content);
|
||||
return true;
|
||||
}
|
||||
|
||||
function setup() {
|
||||
}
|
||||
|
||||
function getChart( $chartName ) {
|
||||
$this->readConfig();
|
||||
$prePath = '/sys' . config("system.workspace") . '/' . SYS_LANG . '/blank/';
|
||||
$obj = new StdClass();
|
||||
switch ($chartName) {
|
||||
case 'PostByForum':
|
||||
$obj->title = 'Community ProcessMaker Forum - Per Forum';
|
||||
break;
|
||||
case 'ForumWeek':
|
||||
$obj->title = 'Community ProcessMaker Forum - Per Week';
|
||||
break;
|
||||
case 'PostByUser':
|
||||
$obj->title = 'Community ProcessMaker Forum - Per User';
|
||||
break;
|
||||
case 'BugsOpenByUser':
|
||||
$obj->title = 'Community ProcessMaker Forum - Per Post Author';
|
||||
break;
|
||||
case 'BugsByStatus':
|
||||
$obj->title = 'Community ProcessMaker Forum - Bugs';
|
||||
break;
|
||||
}
|
||||
$obj->height = 220;
|
||||
$obj->image = $prePath . 'pmosCommunity/drawChart?chart=' . $chartName . "&u=";
|
||||
return $obj;
|
||||
}
|
||||
|
||||
//here we are defining the available charts, the dashboard setup will call this function to know the charts
|
||||
function getAvailableCharts( ) {
|
||||
return array (
|
||||
'PostByForum',
|
||||
'ForumWeek',
|
||||
'PostByUser',
|
||||
'BugsOpenByUser',
|
||||
'BugsByStatus'
|
||||
);
|
||||
}
|
||||
|
||||
/* definition of all charts */
|
||||
/* that definition comes in two parts :
|
||||
/* 1. the getXX () function to get the data from the databases
|
||||
/* 2. the XX () function to draw the graph
|
||||
*/
|
||||
|
||||
/** chart PostByForum ***/
|
||||
/** to show the last 2 months post grouped by forum and for topic */
|
||||
function getPostByForum ( ) {
|
||||
$dataSet = array();
|
||||
$past1months = mktime(0, 0, 0, date("m") -1 , date("d"), date("Y"));
|
||||
|
||||
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
|
||||
Propel::init( $databases );
|
||||
|
||||
$con = Propel::getConnection('forum');
|
||||
$sql = "select forum_name, count(*) as cant from phpbb_posts left join phpbb_forums on ( phpbb_posts.forum_id = phpbb_forums.forum_id ) where post_time > $past1months group by forum_name " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
if ( strlen ( trim ($row['forum_name']) ) > 0 ) {
|
||||
$label[] = $row['forum_name'];
|
||||
$data[] = $row['cant'];
|
||||
}
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
|
||||
$sql = "select forum_name, count( distinct( topic_id)) as cant from phpbb_posts left join phpbb_forums on ( phpbb_posts.forum_id = phpbb_forums.forum_id ) where post_time > $past1months group by forum_name " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
if ( strlen ( trim ($row['forum_name']) ) > 0 ) {
|
||||
//$label[] = $row['forum_name'];
|
||||
$series2[] = $row['cant'];
|
||||
}
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['series2'] = $series2;
|
||||
|
||||
$max = 1;
|
||||
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
|
||||
$aux = intval($max / 6 ) * 6 + 6;
|
||||
$dataSet['max'] = $aux;
|
||||
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function PostByForum( ) {
|
||||
|
||||
$chart = new VerticalBarChart(430, 220);
|
||||
|
||||
$dataSet = $this->getPostByForum();
|
||||
$dataPostSet = new XYDataSet();
|
||||
$dataTopicSet = new XYDataSet();
|
||||
foreach ( $dataSet['label'] as $key => $label ) {
|
||||
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
|
||||
$dataTopicSet->addPoint(new Point( $label, $dataSet['series2'][$key] )) ;
|
||||
}
|
||||
|
||||
$multidataSet = new XYSeriesDataSet();
|
||||
$multidataSet->addSerie("Posts", $dataPostSet);
|
||||
$multidataSet->addSerie("Topics", $dataTopicSet);
|
||||
|
||||
$chart->setDataSet($multidataSet);
|
||||
$chart->setTitle( "Posts by Forum ( last month ) " );
|
||||
$chart->render();
|
||||
}
|
||||
|
||||
function PostByForumFlash( ) {
|
||||
$dataSet = $this->getPostByForum();
|
||||
$data = $dataSet['data'];
|
||||
$series2 = $dataSet['series2'];
|
||||
$g = new graph();
|
||||
$g->title( ' Posts by Forum ( last month )', '{font-size: 16px;}' );
|
||||
$bar_red = new bar_3d( 50, '#3334AD' );
|
||||
$bar_red->key( 'posts', 10 );
|
||||
$bar_red->data = $data;
|
||||
|
||||
$bar_blue = new bar_3d( 75, '#D54C78' );
|
||||
$bar_blue->key( 'topics', 11 );
|
||||
$bar_blue->data = $series2;
|
||||
|
||||
$g->data_sets[] = $bar_red;
|
||||
$g->data_sets[] = $bar_blue;
|
||||
|
||||
$g->set_x_axis_3d( 12 );
|
||||
$g->x_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->y_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->set_x_labels( $dataSet['label'] );
|
||||
|
||||
$g->set_y_max( $dataSet['max'] );
|
||||
$g->y_label_steps( 6 );
|
||||
//$g->set_y_legend( 'Posts', 12, '#736AFF' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
/** chart ForumWeek ***/
|
||||
/** to show the last 2 months post grouped by week */
|
||||
function getForumWeek ( ) {
|
||||
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
|
||||
Propel::init( $databases );
|
||||
|
||||
$dataSet = array();
|
||||
$processObj = new Process;
|
||||
$past2months = mktime(0, 0, 0, date("m") -2 , date("d"), date("Y"));
|
||||
|
||||
$con = Propel::getConnection('forum');
|
||||
$sql = "select week(FROM_UNIXTIME(post_time )) as week ,count(*) as cant from phpbb_posts where post_time > $past2months group by week " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
$label[] = date ( 'M d', mktime(0, 0, 0, 1 , $row['week']*7, date("Y")) );
|
||||
$data[] = $row['cant'];
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function ForumWeek( ) {
|
||||
|
||||
$chart = new VerticalBarChart(430, 220);
|
||||
|
||||
$dataSet = $this->getForumWeek();
|
||||
$dataPostSet = new XYDataSet();
|
||||
$dataTopicSet = new XYDataSet();
|
||||
foreach ( $dataSet['label'] as $key => $label ) {
|
||||
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
|
||||
}
|
||||
|
||||
$chart->setDataSet($dataPostSet);
|
||||
$chart->setTitle( " Posts by Week " );
|
||||
$chart->render();
|
||||
}
|
||||
|
||||
function ForumWeekFlash ( ) {
|
||||
$dataSet = $this->getForumWeek();
|
||||
$data = $dataSet['data'];
|
||||
$max = 1;
|
||||
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
|
||||
$g = new graph();
|
||||
$g->title( ' Posts by Week ', '{font-size: 16px;}' );
|
||||
$bar_red = new bar_3d( 50, '#3334AD' );
|
||||
$bar_red->key( 'week', 10 );
|
||||
$bar_red->data = $data;
|
||||
|
||||
$g->data_sets[] = $bar_red;
|
||||
|
||||
$g->set_x_axis_3d( 12 );
|
||||
$g->x_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->y_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->set_x_labels( $dataSet['label'] );
|
||||
|
||||
$g->set_y_max( $max );
|
||||
$g->y_label_steps( 5 );
|
||||
$g->set_y_legend( 'Posts', 12, '#736AFF' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
/** chart PostByUser ***/
|
||||
/** to show the last 7 days grouped by user */
|
||||
function getPostByUser ( ) {
|
||||
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
|
||||
Propel::init( $databases );
|
||||
|
||||
$dataSet = array();
|
||||
$con = Propel::getConnection('forum');
|
||||
|
||||
$past7days = mktime(0, 0, 0, date("m") , date("d")-7, date("Y"));
|
||||
$sql = "select username, count(*) as cant from phpbb_posts left join phpbb_users on ( poster_id = user_id ) where post_time > $past7days group by username " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
$label[] = $row['username'];
|
||||
$data[] = $row['cant'];
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['data'] = $data;
|
||||
//$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function PostByUser ( ) {
|
||||
|
||||
$chart = new VerticalBarChart(430, 220);
|
||||
|
||||
$dataSet = $this->getPostByUser();
|
||||
$dataPostSet = new XYDataSet();
|
||||
$dataTopicSet = new XYDataSet();
|
||||
foreach ( $dataSet['label'] as $key => $label ) {
|
||||
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
|
||||
}
|
||||
|
||||
$chart->setDataSet($dataPostSet);
|
||||
//$chart->setTitle( " Posts by User" );
|
||||
$chart->render();
|
||||
}
|
||||
|
||||
function PostByUserFlash ( ) {
|
||||
$dataSet = $this->getPostByUser();
|
||||
$data = $dataSet['data'];
|
||||
$g = new graph();
|
||||
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
|
||||
$max = 1;
|
||||
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
|
||||
$max = intval($max / 4 ) * 4 + 4;
|
||||
|
||||
$bar_red = new bar_3d( 50, '#356aa0' );
|
||||
$bar_red->key( 'posts', 10 );
|
||||
$bar_red->data = $data;
|
||||
|
||||
$bar_blue = new bar_3d( 75, '#D54C78' );
|
||||
$bar_blue->key( 'completed', 10 );
|
||||
$bar_blue->data = $data;
|
||||
|
||||
$g->data_sets[] = $bar_red;
|
||||
//$g->data_sets[] = $bar_blue;
|
||||
|
||||
$g->set_x_axis_3d( 12 );
|
||||
$g->x_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->y_axis_colour( '#909090', '#ADB5C7' );
|
||||
$g->set_x_labels( $dataSet['label'] );
|
||||
|
||||
$g->set_y_max( $max );
|
||||
$g->y_label_steps( 4 );
|
||||
$g->set_y_legend( 'Processmaker', 12, '#736AFF' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
/** chart BugsByStatus ***/
|
||||
/** to show the bugs by status resolved, open, closed */
|
||||
function getBugsByStatus ( ) {
|
||||
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
|
||||
Propel::init( $databases );
|
||||
|
||||
$dataSet = array();
|
||||
$con = Propel::getConnection('bugs');
|
||||
|
||||
//open
|
||||
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status in (20,30,40,50) " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
$label[] = 'open';
|
||||
$data[] = $row['cant'];
|
||||
|
||||
//resolved
|
||||
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status = 80" ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
$label[] = 'resolved';
|
||||
$data[] = $row['cant'];
|
||||
|
||||
//closed
|
||||
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status = 90" ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
$label[] = 'closed';
|
||||
$data[] = $row['cant'];
|
||||
|
||||
$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function BugsByStatus ( ) {
|
||||
|
||||
$chart = new VerticalBarChart(430, 220);
|
||||
|
||||
$dataSet = $this->getBugsByStatus();
|
||||
$dataPostSet = new XYDataSet();
|
||||
$dataTopicSet = new XYDataSet();
|
||||
foreach ( $dataSet['label'] as $key => $label ) {
|
||||
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
|
||||
}
|
||||
|
||||
$chart->setDataSet($dataPostSet);
|
||||
//$chart->setTitle( " Posts by User" );
|
||||
$chart->render();
|
||||
}
|
||||
|
||||
function BugsByStatusFlash ( ) {
|
||||
$dataSet = $this->getBugsByStatus();
|
||||
$data = $dataSet['data'];
|
||||
$g = new graph();
|
||||
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
|
||||
|
||||
$g->pie(70,'#505050','{font-size: 12px; color: #404040;');
|
||||
$g->pie_values( $data, $dataSet['label'] );
|
||||
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810') );
|
||||
$g->set_tool_tip( '#val# #x_label#' );
|
||||
$g->title( 'Bugs by Status', '{font-size:18px; color: #d01f3c}' );
|
||||
echo $g->render();
|
||||
}
|
||||
|
||||
/** chart BugsOpenByUser ***/
|
||||
/** to show the bugs in OPEN status by user */
|
||||
function getBugsOpenByUser ( ) {
|
||||
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
|
||||
Propel::init( $databases );
|
||||
|
||||
$dataSet = array();
|
||||
$con = Propel::getConnection('bugs');
|
||||
|
||||
$sql = "SELECT username, count(*) as cant FROM mantis_bug_table left join mantis_user_table on ( mantis_user_table.id = handler_id) where project_id = 31 and status in (20,30,40,50) group by username " ;
|
||||
$stmt = $con->createStatement();
|
||||
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
while ( is_array ( $row ) ) {
|
||||
$label[] = $row['username'];
|
||||
$data[] = $row['cant'];
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
}
|
||||
$dataSet['data'] = $data;
|
||||
$dataSet['label'] = $label;
|
||||
return $dataSet;
|
||||
}
|
||||
|
||||
function BugsOpenByUser ( ) {
|
||||
|
||||
$chart = new VerticalBarChart(430, 220);
|
||||
|
||||
$dataSet = $this->getBugsOpenByUser();
|
||||
$dataPostSet = new XYDataSet();
|
||||
$dataTopicSet = new XYDataSet();
|
||||
foreach ( $dataSet['label'] as $key => $label ) {
|
||||
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
|
||||
}
|
||||
|
||||
$chart->setDataSet($dataPostSet);
|
||||
//$chart->setTitle( " Posts by User" );
|
||||
$chart->render();
|
||||
|
||||
}
|
||||
|
||||
function BugsOpenByUserFlash ( ) {
|
||||
$dataSet = $this->getBugsOpenByUser();
|
||||
$data = $dataSet['data'];
|
||||
$g = new graph();
|
||||
$g->bg_colour = '#EFFFEF';
|
||||
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
|
||||
|
||||
$g->pie(70,'#505050','{font-size: 12px; color: #404040;');
|
||||
$g->pie_values( $data, $dataSet['label'] );
|
||||
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810') );
|
||||
$g->set_tool_tip( '#val# #x_label#' );
|
||||
$g->title( 'Bugs by Status', '{font-size:18px; color: #d01f3c}' );
|
||||
echo $g->render();
|
||||
/*
|
||||
$dataSet = $this->getBugsOpenByUser();
|
||||
$data = $dataSet['data'];
|
||||
$g = new graph();
|
||||
$g->pie(80,'#505050','{font-size: 12px; color: #404040;');
|
||||
$g->pie_values( $data, $dataSet['label'] );
|
||||
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810','#D54C78') );
|
||||
$g->set_tool_tip( '#val# #x_label#' );
|
||||
$g->title( 'Open Bugs by User', '{font-size:18px; color: #d01f3c}' );
|
||||
echo $g->render();*/
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
<?php
|
||||
|
||||
$pro['datasources']['forum']['connection'] = 'mysql://forum:colosa123@mysql3.colosa.net/forum';
|
||||
$pro['datasources']['forum']['adapter'] = 'mysql';
|
||||
|
||||
$pro['datasources']['bugs']['connection'] = 'mysql://forum:colosa123@mysql3.colosa.net/bugs';
|
||||
$pro['datasources']['bugs']['adapter'] = 'mysql';
|
||||
return $pro;
|
||||
?>
|
||||
@@ -1 +0,0 @@
|
||||
a:1:{s:6:"ACCEPT";s:4:"Save";}
|
||||
@@ -1,14 +0,0 @@
|
||||
<?php
|
||||
//header("Content-type: image/png");
|
||||
|
||||
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
|
||||
|
||||
// use the chart class to build the chart:
|
||||
require_once ( "class.pmosCommunity.php" );
|
||||
$chartsObj = new pmosCommunityClass();
|
||||
|
||||
if ( method_exists( $chartsObj, $chartType) ) {
|
||||
$chartsObj->{$chartType}();
|
||||
die;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,109 +0,0 @@
|
||||
<?php
|
||||
|
||||
function open_flash_chart_object_str( $width, $height, $url, $use_swfobject=true, $base='' )
|
||||
{
|
||||
//
|
||||
// return the HTML as a string
|
||||
//
|
||||
return _ofc( $width, $height, $url, $use_swfobject, $base );
|
||||
}
|
||||
|
||||
function open_flash_chart_object( $width, $height, $url, $use_swfobject=true, $base='' )
|
||||
{
|
||||
//
|
||||
// stream the HTML into the page
|
||||
//
|
||||
echo _ofc( $width, $height, $url, $use_swfobject, $base );
|
||||
}
|
||||
|
||||
function _ofc( $width, $height, $url, $use_swfobject, $base )
|
||||
{
|
||||
//
|
||||
// I think we may use swfobject for all browsers,
|
||||
// not JUST for IE...
|
||||
//
|
||||
//$ie = strstr(getenv('HTTP_USER_AGENT'), 'MSIE');
|
||||
|
||||
//
|
||||
// escape the & and stuff:
|
||||
//
|
||||
$url = urlencode($url);
|
||||
|
||||
//
|
||||
// output buffer
|
||||
//
|
||||
$out = array();
|
||||
|
||||
//
|
||||
// check for http or https:
|
||||
//
|
||||
if (isset ($_SERVER['HTTPS']))
|
||||
{
|
||||
if (strtoupper ($_SERVER['HTTPS']) == 'ON')
|
||||
{
|
||||
$protocol = 'https';
|
||||
}
|
||||
else
|
||||
{
|
||||
$protocol = 'http';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$protocol = 'http';
|
||||
}
|
||||
|
||||
//
|
||||
// if there are more than one charts on the
|
||||
// page, give each a different ID
|
||||
//
|
||||
global $open_flash_chart_seqno;
|
||||
$obj_id = 'chart';
|
||||
$div_name = 'flashcontent';
|
||||
|
||||
//$out[] = '<script type="text/javascript" src="'. $base .'ofc.js"></script>';
|
||||
|
||||
if( !isset( $open_flash_chart_seqno ) )
|
||||
{
|
||||
$open_flash_chart_seqno = 1;
|
||||
$out[] = '<script type="text/javascript" src="'. $base .'swfobject.js"></script>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$open_flash_chart_seqno++;
|
||||
$obj_id .= '_'. $open_flash_chart_seqno;
|
||||
$div_name .= '_'. $open_flash_chart_seqno;
|
||||
}
|
||||
|
||||
if( $use_swfobject )
|
||||
{
|
||||
// Using library for auto-enabling Flash object on IE, disabled-Javascript proof
|
||||
$out[] = '<div id="'. $div_name .'"></div>';
|
||||
$out[] = '<script type="text/javascript">';
|
||||
$out[] = 'var so = new SWFObject("'. $base .'open-flash-chart.swf", "'. $obj_id .'", "'. $width . '", "' . $height . '", "9", "#FFFFFF");';
|
||||
//$out[] = 'so.addVariable("width", "' . $width . '");';
|
||||
//$out[] = 'so.addVariable("height", "' . $height . '");';
|
||||
$out[] = 'so.addVariable("data", "'. $url . '");';
|
||||
$out[] = 'so.addParam("allowScriptAccess", "sameDomain");';
|
||||
$out[] = 'so.write("'. $div_name .'");';
|
||||
$out[] = '</script>';
|
||||
$out[] = '<noscript>';
|
||||
}
|
||||
|
||||
$out[] = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="' . $protocol . '://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ';
|
||||
$out[] = 'width="' . $width . '" height="' . $height . '" id="ie_'. $obj_id .'" align="middle">';
|
||||
$out[] = '<param name="allowScriptAccess" value="sameDomain" />';
|
||||
$out[] = '<param name="movie" value="'. $base .'open-flash-chart.swf?width='. $width .'&height='. $height . '&data='. $url .'" />';
|
||||
$out[] = '<param name="quality" value="high" />';
|
||||
$out[] = '<param name="bgcolor" value="#FFFFFF" />';
|
||||
$out[] = '<embed src="'. $base .'open-flash-chart.swf?data=' . $url .'" quality="high" bgcolor="#FFFFFF" width="'. $width .'" height="'. $height .'" name="'. $obj_id .'" align="middle" allowScriptAccess="sameDomain" ';
|
||||
$out[] = 'type="application/x-shockwave-flash" pluginspage="' . $protocol . '://www.macromedia.com/go/getflashplayer" id="'. $obj_id .'"/>';
|
||||
$out[] = '</object>';
|
||||
|
||||
if ( $use_swfobject ) {
|
||||
$out[] = '</noscript>';
|
||||
}
|
||||
|
||||
return implode("\n",$out);
|
||||
}
|
||||
?>
|
||||
Binary file not shown.
@@ -1,233 +0,0 @@
|
||||
/**
|
||||
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
|
||||
*
|
||||
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
*/
|
||||
if(typeof deconcept == "undefined") var deconcept = new Object();
|
||||
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
|
||||
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
|
||||
deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) {
|
||||
if (!document.getElementById) { return; }
|
||||
this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
|
||||
this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
|
||||
this.params = new Object();
|
||||
this.variables = new Object();
|
||||
this.attributes = new Array();
|
||||
if(swf) { this.setAttribute('swf', swf); }
|
||||
if(id) { this.setAttribute('id', id); }
|
||||
if(w) { this.setAttribute('width', w); }
|
||||
if(h) { this.setAttribute('height', h); }
|
||||
if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
|
||||
this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
|
||||
if (!window.opera && document.all && this.installedVer.major > 7) {
|
||||
// only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE
|
||||
deconcept.SWFObject.doPrepUnload = true;
|
||||
}
|
||||
if(c) { this.addParam('bgcolor', c); }
|
||||
var q = quality ? quality : 'high';
|
||||
this.addParam('quality', q);
|
||||
this.setAttribute('useExpressInstall', false);
|
||||
this.setAttribute('doExpressInstall', false);
|
||||
var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
|
||||
this.setAttribute('xiRedirectUrl', xir);
|
||||
this.setAttribute('redirectUrl', '');
|
||||
if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
|
||||
}
|
||||
deconcept.SWFObject.prototype = {
|
||||
useExpressInstall: function(path) {
|
||||
this.xiSWFPath = !path ? "expressinstall.swf" : path;
|
||||
this.setAttribute('useExpressInstall', true);
|
||||
},
|
||||
setAttribute: function(name, value){
|
||||
this.attributes[name] = value;
|
||||
},
|
||||
getAttribute: function(name){
|
||||
return this.attributes[name];
|
||||
},
|
||||
addParam: function(name, value){
|
||||
this.params[name] = value;
|
||||
},
|
||||
getParams: function(){
|
||||
return this.params;
|
||||
},
|
||||
addVariable: function(name, value){
|
||||
this.variables[name] = value;
|
||||
},
|
||||
getVariable: function(name){
|
||||
return this.variables[name];
|
||||
},
|
||||
getVariables: function(){
|
||||
return this.variables;
|
||||
},
|
||||
getVariablePairs: function(){
|
||||
var variablePairs = new Array();
|
||||
var key;
|
||||
var variables = this.getVariables();
|
||||
for(key in variables){
|
||||
variablePairs[variablePairs.length] = key +"="+ variables[key];
|
||||
}
|
||||
return variablePairs;
|
||||
},
|
||||
getSWFHTML: function() {
|
||||
var swfNode = "";
|
||||
if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
|
||||
if (this.getAttribute("doExpressInstall")) {
|
||||
this.addVariable("MMplayerType", "PlugIn");
|
||||
this.setAttribute('swf', this.xiSWFPath);
|
||||
}
|
||||
swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'"';
|
||||
swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
|
||||
var params = this.getParams();
|
||||
for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
|
||||
var pairs = this.getVariablePairs().join("&");
|
||||
if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
|
||||
swfNode += '/>';
|
||||
} else { // PC IE
|
||||
if (this.getAttribute("doExpressInstall")) {
|
||||
this.addVariable("MMplayerType", "ActiveX");
|
||||
this.setAttribute('swf', this.xiSWFPath);
|
||||
}
|
||||
swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'">';
|
||||
swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
|
||||
var params = this.getParams();
|
||||
for(var key in params) {
|
||||
swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
|
||||
}
|
||||
var pairs = this.getVariablePairs().join("&");
|
||||
if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
|
||||
swfNode += "</object>";
|
||||
}
|
||||
return swfNode;
|
||||
},
|
||||
write: function(elementId){
|
||||
if(this.getAttribute('useExpressInstall')) {
|
||||
// check to see if we need to do an express install
|
||||
var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
|
||||
if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
|
||||
this.setAttribute('doExpressInstall', true);
|
||||
this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
|
||||
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
|
||||
this.addVariable("MMdoctitle", document.title);
|
||||
}
|
||||
}
|
||||
if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
|
||||
var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
|
||||
n.innerHTML = this.getSWFHTML();
|
||||
return true;
|
||||
}else{
|
||||
if(this.getAttribute('redirectUrl') != "") {
|
||||
document.location.replace(this.getAttribute('redirectUrl'));
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* ---- detection functions ---- */
|
||||
deconcept.SWFObjectUtil.getPlayerVersion = function(){
|
||||
var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
|
||||
if(navigator.plugins && navigator.mimeTypes.length){
|
||||
var x = navigator.plugins["Shockwave Flash"];
|
||||
if(x && x.description) {
|
||||
PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
|
||||
}
|
||||
}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE
|
||||
var axo = 1;
|
||||
var counter = 3;
|
||||
while(axo) {
|
||||
try {
|
||||
counter++;
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);
|
||||
// document.write("player v: "+ counter);
|
||||
PlayerVersion = new deconcept.PlayerVersion([counter,0,0]);
|
||||
} catch (e) {
|
||||
axo = null;
|
||||
}
|
||||
}
|
||||
} else { // Win IE (non mobile)
|
||||
// do minor version lookup in IE, but avoid fp6 crashing issues
|
||||
// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
|
||||
try{
|
||||
var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
|
||||
}catch(e){
|
||||
try {
|
||||
var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
|
||||
PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
|
||||
axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
|
||||
} catch(e) {
|
||||
if (PlayerVersion.major == 6) {
|
||||
return PlayerVersion;
|
||||
}
|
||||
}
|
||||
try {
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
|
||||
} catch(e) {}
|
||||
}
|
||||
if (axo != null) {
|
||||
PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
|
||||
}
|
||||
}
|
||||
return PlayerVersion;
|
||||
}
|
||||
deconcept.PlayerVersion = function(arrVersion){
|
||||
this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
|
||||
this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
|
||||
this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
|
||||
}
|
||||
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
|
||||
if(this.major < fv.major) return false;
|
||||
if(this.major > fv.major) return true;
|
||||
if(this.minor < fv.minor) return false;
|
||||
if(this.minor > fv.minor) return true;
|
||||
if(this.rev < fv.rev) return false;
|
||||
return true;
|
||||
}
|
||||
/* ---- get value of query string param ---- */
|
||||
deconcept.util = {
|
||||
getRequestParameter: function(param) {
|
||||
var q = document.location.search || document.location.hash;
|
||||
if (param == null) { return q; }
|
||||
if(q) {
|
||||
var pairs = q.substring(1).split("&");
|
||||
for (var i=0; i < pairs.length; i++) {
|
||||
if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
|
||||
return pairs[i].substring((pairs[i].indexOf("=")+1));
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
/* fix for video streaming bug */
|
||||
deconcept.SWFObjectUtil.cleanupSWFs = function() {
|
||||
var objects = document.getElementsByTagName("OBJECT");
|
||||
for (var i = objects.length - 1; i >= 0; i--) {
|
||||
objects[i].style.display = 'none';
|
||||
for (var x in objects[i]) {
|
||||
if (typeof objects[i][x] == 'function') {
|
||||
objects[i][x] = function(){};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// fixes bug in some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/
|
||||
if (deconcept.SWFObject.doPrepUnload) {
|
||||
if (!deconcept.unloadSet) {
|
||||
deconcept.SWFObjectUtil.prepUnload = function() {
|
||||
__flash_unloadHandler = function(){};
|
||||
__flash_savedUnloadHandler = function(){};
|
||||
window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);
|
||||
}
|
||||
window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
|
||||
deconcept.unloadSet = true;
|
||||
}
|
||||
}
|
||||
/* add document.getElementById if needed (mobile IE < 5) */
|
||||
if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }}
|
||||
|
||||
/* add some aliases for ease of use/backwards compatibility */
|
||||
var getQueryParamValue = deconcept.util.getRequestParameter;
|
||||
var FlashObject = deconcept.SWFObject; // for legacy support
|
||||
var SWFObject = deconcept.SWFObject;
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm
|
||||
name="About ProcessMaker Open Source Plugin"
|
||||
type="xmlform"
|
||||
width="550"
|
||||
>
|
||||
|
||||
<TITLE type="title" >
|
||||
<en>ProcessMaker Open Source Plugin</en>
|
||||
</TITLE>
|
||||
|
||||
<sTITLE type="subtitle" >
|
||||
<en>ProcessMaker Open Source Plugin, with this plugin you can see many differents charts related to the ProcessMaker Community web sites</en>
|
||||
</sTITLE>
|
||||
|
||||
|
||||
<ACCEPT type="submit" >
|
||||
<en>Save</en>
|
||||
</ACCEPT>
|
||||
</dynaForm>
|
||||
Reference in New Issue
Block a user