@@ -1,7 +1,7 @@ |
||
| 1 | 1 | <?php namespace EvolutionCMS\Legacy; |
| 2 | 2 | |
| 3 | -use EvolutionCMS\Interfaces\ModifiersInterface; |
|
| 4 | 3 | use DataGrid; |
| 4 | +use EvolutionCMS\Interfaces\ModifiersInterface; |
|
| 5 | 5 | |
| 6 | 6 | class Modifiers implements ModifiersInterface{ |
| 7 | 7 | /** |
@@ -1,7 +1,7 @@ |
||
| 1 | 1 | <?php namespace EvolutionCMS; |
| 2 | 2 | |
| 3 | -use PHPMailer\PHPMailer\PHPMailer; |
|
| 4 | 3 | use PHPMailer\PHPMailer\Exception as PHPMailerException; |
| 4 | +use PHPMailer\PHPMailer\PHPMailer; |
|
| 5 | 5 | |
| 6 | 6 | class Mail extends PHPMailer |
| 7 | 7 | { |
@@ -5,14 +5,14 @@ discard block |
||
| 5 | 5 | |
| 6 | 6 | // PROCESSOR FIRST |
| 7 | 7 | if($_SESSION['mgrRole'] == 1) { |
| 8 | - if($_REQUEST['b'] == 'resetSysfilesChecksum' && $modx->hasPermission('settings')) { |
|
| 9 | - $current = $modx->getManagerApi()->getSystemChecksum($modx->config['check_files_onlogin']); |
|
| 10 | - if(!empty($current)) { |
|
| 11 | - $modx->getManagerApi()->setSystemChecksum($current); |
|
| 12 | - $modx->clearCache('full'); |
|
| 13 | - $modx->config['sys_files_checksum'] = $current; |
|
| 14 | - }; |
|
| 15 | - } |
|
| 8 | + if($_REQUEST['b'] == 'resetSysfilesChecksum' && $modx->hasPermission('settings')) { |
|
| 9 | + $current = $modx->getManagerApi()->getSystemChecksum($modx->config['check_files_onlogin']); |
|
| 10 | + if(!empty($current)) { |
|
| 11 | + $modx->getManagerApi()->setSystemChecksum($current); |
|
| 12 | + $modx->clearCache('full'); |
|
| 13 | + $modx->config['sys_files_checksum'] = $current; |
|
| 14 | + }; |
|
| 15 | + } |
|
| 16 | 16 | } |
| 17 | 17 | |
| 18 | 18 | // NOW CHECK CONFIG |
@@ -20,15 +20,15 @@ discard block |
||
| 20 | 20 | |
| 21 | 21 | $sysfiles_check = $modx->getManagerApi()->checkSystemChecksum(); |
| 22 | 22 | if ($sysfiles_check!=='0'){ |
| 23 | - $warningspresent = 1; |
|
| 24 | - $warnings[] = array($_lang['configcheck_sysfiles_mod']); |
|
| 23 | + $warningspresent = 1; |
|
| 24 | + $warnings[] = array($_lang['configcheck_sysfiles_mod']); |
|
| 25 | 25 | } |
| 26 | 26 | |
| 27 | 27 | if (is_writable("includes/config.inc.php")){ |
| 28 | 28 | // Warn if world writable |
| 29 | 29 | if(@fileperms('includes/config.inc.php') & 0x0002) { |
| 30 | - $warningspresent = 1; |
|
| 31 | - $warnings[] = array($_lang['configcheck_configinc']); |
|
| 30 | + $warningspresent = 1; |
|
| 31 | + $warnings[] = array($_lang['configcheck_configinc']); |
|
| 32 | 32 | } |
| 33 | 33 | } |
| 34 | 34 | |
@@ -182,10 +182,10 @@ discard block |
||
| 182 | 182 | break; |
| 183 | 183 | case $_lang['configcheck_sysfiles_mod']: |
| 184 | 184 | $warnings[$i][1] = $_lang["configcheck_sysfiles_mod_msg"]; |
| 185 | - $warnings[$i][2] = '<ul><li>'. implode('</li><li>', $sysfiles_check) .'</li></ul>'; |
|
| 186 | - if($modx->hasPermission('settings')) { |
|
| 187 | - $warnings[$i][2] .= '<ul class="actionButtons" style="float:right"><li><a href="index.php?a=2&b=resetSysfilesChecksum" onclick="return confirm(\'' . $_lang["reset_sysfiles_checksum_alert"] . '\')">' . $_lang["reset_sysfiles_checksum_button"] . '</a></li></ul>'; |
|
| 188 | - } |
|
| 185 | + $warnings[$i][2] = '<ul><li>'. implode('</li><li>', $sysfiles_check) .'</li></ul>'; |
|
| 186 | + if($modx->hasPermission('settings')) { |
|
| 187 | + $warnings[$i][2] .= '<ul class="actionButtons" style="float:right"><li><a href="index.php?a=2&b=resetSysfilesChecksum" onclick="return confirm(\'' . $_lang["reset_sysfiles_checksum_alert"] . '\')">' . $_lang["reset_sysfiles_checksum_button"] . '</a></li></ul>'; |
|
| 188 | + } |
|
| 189 | 189 | if(!$_SESSION["mgrConfigCheck"]) $modx->logEvent(0,3,$warnings[$i][1]." ".implode(', ',$sysfiles_check),$_lang['configcheck_sysfiles_mod']); |
| 190 | 190 | break; |
| 191 | 191 | case $_lang['configcheck_lang_difference'] : |
@@ -1,11 +1,11 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | if( ! defined('IN_MANAGER_MODE') || IN_MANAGER_MODE !== true) { |
| 3 | - die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the EVO Content Manager instead of accessing this file directly."); |
|
| 3 | + die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the EVO Content Manager instead of accessing this file directly."); |
|
| 4 | 4 | } |
| 5 | 5 | global $SystemAlertMsgQueque; |
| 6 | 6 | // display system alert window if messages are available |
| 7 | 7 | if(count($SystemAlertMsgQueque) > 0) { |
| 8 | - include "sysalert.display.inc.php"; |
|
| 8 | + include "sysalert.display.inc.php"; |
|
| 9 | 9 | } |
| 10 | 10 | ?> |
| 11 | 11 | <script type='text/javascript'> |
@@ -19,17 +19,17 @@ discard block |
||
| 19 | 19 | </script> |
| 20 | 20 | <?php |
| 21 | 21 | if(in_array($modx->getManagerApi()->action, array( |
| 22 | - 85, |
|
| 23 | - 27, |
|
| 24 | - 4, |
|
| 25 | - 72, |
|
| 26 | - 13, |
|
| 27 | - 11, |
|
| 28 | - 12, |
|
| 29 | - 87, |
|
| 30 | - 88 |
|
| 22 | + 85, |
|
| 23 | + 27, |
|
| 24 | + 4, |
|
| 25 | + 72, |
|
| 26 | + 13, |
|
| 27 | + 11, |
|
| 28 | + 12, |
|
| 29 | + 87, |
|
| 30 | + 88 |
|
| 31 | 31 | ))) { |
| 32 | - echo $modx->getManagerApi()->loadDatePicker($modx->config['mgr_date_picker_path']); |
|
| 32 | + echo $modx->getManagerApi()->loadDatePicker($modx->config['mgr_date_picker_path']); |
|
| 33 | 33 | } |
| 34 | 34 | ?> |
| 35 | 35 | </body> |
@@ -1,30 +1,30 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | - /** |
|
| 4 | - * System Alert Message Queue Display file |
|
| 5 | - * Written By Raymond Irving, April, 2005 |
|
| 6 | - * |
|
| 7 | - * Used to display system alert messages inside the browser |
|
| 8 | - * |
|
| 9 | - */ |
|
| 3 | + /** |
|
| 4 | + * System Alert Message Queue Display file |
|
| 5 | + * Written By Raymond Irving, April, 2005 |
|
| 6 | + * |
|
| 7 | + * Used to display system alert messages inside the browser |
|
| 8 | + * |
|
| 9 | + */ |
|
| 10 | 10 | |
| 11 | - require_once(dirname(__FILE__).'/protect.inc.php'); |
|
| 11 | + require_once(dirname(__FILE__).'/protect.inc.php'); |
|
| 12 | 12 | |
| 13 | - $sysMsgs = ""; |
|
| 14 | - $limit = count($SystemAlertMsgQueque); |
|
| 15 | - for($i=0;$i<$limit;$i++) { |
|
| 16 | - $sysMsgs .= $SystemAlertMsgQueque[$i]."<hr sys/>"; |
|
| 17 | - } |
|
| 18 | - // reset message queque |
|
| 19 | - unset($_SESSION['SystemAlertMsgQueque']); |
|
| 20 | - $_SESSION['SystemAlertMsgQueque'] = array(); |
|
| 21 | - $SystemAlertMsgQueque = &$_SESSION['SystemAlertMsgQueque']; |
|
| 13 | + $sysMsgs = ""; |
|
| 14 | + $limit = count($SystemAlertMsgQueque); |
|
| 15 | + for($i=0;$i<$limit;$i++) { |
|
| 16 | + $sysMsgs .= $SystemAlertMsgQueque[$i]."<hr sys/>"; |
|
| 17 | + } |
|
| 18 | + // reset message queque |
|
| 19 | + unset($_SESSION['SystemAlertMsgQueque']); |
|
| 20 | + $_SESSION['SystemAlertMsgQueque'] = array(); |
|
| 21 | + $SystemAlertMsgQueque = &$_SESSION['SystemAlertMsgQueque']; |
|
| 22 | 22 | |
| 23 | - if($sysMsgs!="") { |
|
| 23 | + if($sysMsgs!="") { |
|
| 24 | 24 | ?> |
| 25 | 25 | |
| 26 | 26 | <?php // fetch the styles |
| 27 | - echo '<link rel="stylesheet" type="text/css" href="'.MODX_MANAGER_URL.'media/style/'.$manager_theme.'/style.css'.'" />'; |
|
| 27 | + echo '<link rel="stylesheet" type="text/css" href="'.MODX_MANAGER_URL.'media/style/'.$manager_theme.'/style.css'.'" />'; |
|
| 28 | 28 | ?> |
| 29 | 29 | <script type="text/javascript"> |
| 30 | 30 | // <![CDATA[ |
@@ -42,5 +42,5 @@ discard block |
||
| 42 | 42 | // ]]> |
| 43 | 43 | </script> |
| 44 | 44 | <?php |
| 45 | - } |
|
| 45 | + } |
|
| 46 | 46 | ?> |
@@ -5,10 +5,10 @@ |
||
| 5 | 5 | class DeprecatedCore implements DeprecatedCoreInterface |
| 6 | 6 | { |
| 7 | 7 | /** |
| 8 | - * @deprecated |
|
| 9 | - * |
|
| 10 | - * return @void |
|
| 11 | - */ |
|
| 8 | + * @deprecated |
|
| 9 | + * |
|
| 10 | + * return @void |
|
| 11 | + */ |
|
| 12 | 12 | public function dbConnect() |
| 13 | 13 | { |
| 14 | 14 | $modx = evolutionCMS(); |
@@ -13,7 +13,7 @@ discard block |
||
| 13 | 13 | |
| 14 | 14 | class DataGrid implements DataGridInterface{ |
| 15 | 15 | |
| 16 | - public $ds; // datasource |
|
| 16 | + public $ds; // datasource |
|
| 17 | 17 | public $id; |
| 18 | 18 | public $pageSize; // pager settings |
| 19 | 19 | public $pageNumber; |
@@ -37,7 +37,7 @@ discard block |
||
| 37 | 37 | public $colWraps; |
| 38 | 38 | public $colColors; |
| 39 | 39 | public $colTypes; // coltype1, coltype2, etc or coltype1:format1, e.g. date:%Y %m |
| 40 | - // data type: integer,float,currency,date |
|
| 40 | + // data type: integer,float,currency,date |
|
| 41 | 41 | |
| 42 | 42 | public $header; |
| 43 | 43 | public $footer; |
@@ -76,236 +76,236 @@ discard block |
||
| 76 | 76 | public static $dataGridCnt; |
| 77 | 77 | |
| 78 | 78 | public function __construct($id, $ds, $pageSize = 20, $pageNumber = -1) { |
| 79 | - // set id |
|
| 80 | - self::$dataGridCnt++; |
|
| 81 | - $this->id = $this->id ? empty($id) : "dg" . self::$dataGridCnt; |
|
| 79 | + // set id |
|
| 80 | + self::$dataGridCnt++; |
|
| 81 | + $this->id = $this->id ? empty($id) : "dg" . self::$dataGridCnt; |
|
| 82 | 82 | |
| 83 | - // set datasource |
|
| 84 | - $this->ds = $ds; |
|
| 83 | + // set datasource |
|
| 84 | + $this->ds = $ds; |
|
| 85 | 85 | |
| 86 | - // set pager |
|
| 87 | - $this->pageSize = $pageSize; |
|
| 88 | - $this->pageNumber = $pageNumber; // by setting pager to -1 will cause pager to load it's last page number |
|
| 89 | - $this->pagerLocation = 'top-right'; |
|
| 90 | - } |
|
| 86 | + // set pager |
|
| 87 | + $this->pageSize = $pageSize; |
|
| 88 | + $this->pageNumber = $pageNumber; // by setting pager to -1 will cause pager to load it's last page number |
|
| 89 | + $this->pagerLocation = 'top-right'; |
|
| 90 | + } |
|
| 91 | 91 | |
| 92 | 92 | public function setDataSource($ds) { |
| 93 | - $this->ds = $ds; |
|
| 94 | - } |
|
| 93 | + $this->ds = $ds; |
|
| 94 | + } |
|
| 95 | 95 | |
| 96 | 96 | public function render() { |
| 97 | 97 | $modx = evolutionCMS(); |
| 98 | - $columnHeaderStyle = ($this->columnHeaderStyle) ? "style='" . $this->columnHeaderStyle . "'" : ''; |
|
| 99 | - $columnHeaderClass = ($this->columnHeaderClass) ? "class='" . $this->columnHeaderClass . "'" : ""; |
|
| 100 | - $cssStyle = ($this->cssStyle) ? "style='" . $this->cssStyle . "'" : ''; |
|
| 101 | - $cssClass = ($this->cssClass) ? "class='" . $this->cssClass . "'" : ''; |
|
| 102 | - |
|
| 103 | - $pagerClass = ($this->pagerClass) ? "class='" . $this->pagerClass . "'" : ''; |
|
| 104 | - $pagerStyle = ($this->pagerStyle) ? "style='" . $this->pagerStyle . "'" : "style='background-color:#ffffff;'"; |
|
| 105 | - |
|
| 106 | - $this->_itemStyle = ($this->itemStyle) ? "style='" . $this->itemStyle . "'" : ''; |
|
| 107 | - $this->_itemClass = ($this->itemClass) ? "class='" . $this->itemClass . "'" : ''; |
|
| 108 | - $this->_altItemStyle = ($this->altItemStyle) ? "style='" . $this->altItemStyle . "'" : ''; |
|
| 109 | - $this->_altItemClass = ($this->altItemClass) ? "class='" . $this->altItemClass . "'" : ''; |
|
| 110 | - |
|
| 111 | - $this->_alt = 0; |
|
| 112 | - $this->_total = 0; |
|
| 113 | - |
|
| 114 | - $this->_isDataset = $modx->getDatabase()->isResult($this->ds); // if not dataset then treat as array |
|
| 115 | - |
|
| 116 | - if(!$cssStyle && !$cssClass) { |
|
| 117 | - $cssStyle = "style='width:100%;border:1px solid silver;font-family:verdana,arial; font-size:11px;'"; |
|
| 118 | - } |
|
| 119 | - if(!$columnHeaderStyle && !$columnHeaderClass) { |
|
| 120 | - $columnHeaderStyle = "style='color:black;background-color:silver'"; |
|
| 121 | - } |
|
| 122 | - if(!$this->_itemStyle && !$this->_itemClass) { |
|
| 123 | - $this->_itemStyle = "style='color:black;'"; |
|
| 124 | - } |
|
| 125 | - if(!$this->_altItemStyle && !$this->_altItemClass) { |
|
| 126 | - $this->_altItemStyle = "style='color:black;background-color:#eeeeee'"; |
|
| 127 | - } |
|
| 128 | - |
|
| 129 | - if($this->_isDataset && !$this->columns) { |
|
| 130 | - $cols = $modx->getDatabase()->numFields($this->ds); |
|
| 131 | - for($i = 0; $i < $cols; $i++) $this->columns .= ($i ? "," : "") . $modx->getDatabase()->fieldName($this->ds, $i); |
|
| 132 | - } |
|
| 133 | - |
|
| 134 | - // start grid |
|
| 135 | - $tblStart = "<table $cssClass $cssStyle cellpadding='" . (isset($this->cellPadding) ? (int) $this->cellPadding : 1) . "' cellspacing='" . (isset($this->cellSpacing) ? (int) $this->cellSpacing : 1) . "'>"; |
|
| 136 | - $tblEnd = "</table>"; |
|
| 137 | - |
|
| 138 | - // build column header |
|
| 139 | - $this->_colnames = explode((strstr($this->columns, "||") !== false ? "||" : ","), $this->columns); |
|
| 140 | - $this->_colwidths = explode((strstr($this->colWidths, "||") !== false ? "||" : ","), $this->colWidths); |
|
| 141 | - $this->_colaligns = explode((strstr($this->colAligns, "||") !== false ? "||" : ","), $this->colAligns); |
|
| 142 | - $this->_colwraps = explode((strstr($this->colWraps, "||") !== false ? "||" : ","), $this->colWraps); |
|
| 143 | - $this->_colcolors = explode((strstr($this->colColors, "||") !== false ? "||" : ","), $this->colColors); |
|
| 144 | - $this->_coltypes = explode((strstr($this->colTypes, "||") !== false ? "||" : ","), $this->colTypes); |
|
| 145 | - $this->_colcount = count($this->_colnames); |
|
| 146 | - if(!$this->_isDataset) { |
|
| 147 | - $this->ds = explode((strstr($this->ds, "||") !== false ? "||" : ","), $this->ds); |
|
| 148 | - $this->ds = array_chunk($this->ds, $this->_colcount); |
|
| 149 | - } |
|
| 150 | - $tblColHdr = "<thead><tr>"; |
|
| 151 | - for($c = 0; $c < $this->_colcount; $c++) { |
|
| 152 | - $name = $this->_colnames[$c]; |
|
| 153 | - $width = $this->_colwidths[$c]; |
|
| 154 | - $tblColHdr .= "<td $columnHeaderStyle $columnHeaderClass" . ($width ? " width='$width'" : "") . ">$name</td>"; |
|
| 155 | - } |
|
| 156 | - $tblColHdr .= "</tr></thead>\n"; |
|
| 157 | - |
|
| 158 | - // build rows |
|
| 159 | - $rowcount = $this->_isDataset ? $modx->getDatabase()->getRecordCount($this->ds) : count($this->ds); |
|
| 160 | - $this->_fieldnames = explode(",", $this->fields); |
|
| 161 | - if($rowcount == 0) { |
|
| 162 | - $tblRows .= "<tr><td " . $this->_itemStyle . " " . $this->_itemClass . " colspan='" . $this->_colcount . "'>" . $this->noRecordMsg . "</td></tr>\n"; |
|
| 163 | - } else { |
|
| 164 | - // render grid items |
|
| 165 | - if($this->pageSize <= 0) { |
|
| 166 | - for($r = 0; $r < $rowcount; $r++) { |
|
| 167 | - $row = $this->_isDataset ? $modx->getDatabase()->getRow($this->ds) : $this->ds[$r]; |
|
| 168 | - $tblRows .= $this->RenderRowFnc($r + 1, $row); |
|
| 169 | - } |
|
| 170 | - } else { |
|
| 171 | - if(!$this->pager) { |
|
| 172 | - $this->pager = new DataSetPager($this->id, $this->ds, $this->pageSize, $this->pageNumber); |
|
| 173 | - $this->pager->setRenderRowFnc($this); // pass this object |
|
| 174 | - $this->pager->cssStyle = $pagerStyle; |
|
| 175 | - $this->pager->cssClass = $pagerClass; |
|
| 176 | - } else { |
|
| 177 | - $this->pager->pageSize = $this->pageSize; |
|
| 178 | - $this->pager->pageNumber = $this->pageNumber; |
|
| 179 | - } |
|
| 180 | - |
|
| 181 | - $this->pager->render(); |
|
| 182 | - $tblRows = $this->pager->getRenderedRows(); |
|
| 183 | - $tblPager = $this->pager->getRenderedPager(); |
|
| 184 | - } |
|
| 185 | - } |
|
| 186 | - |
|
| 187 | - // setup header,pager and footer |
|
| 188 | - $o = $tblStart; |
|
| 189 | - $ptop = (substr($this->pagerLocation, 0, 3) == "top") || (substr($this->pagerLocation, 0, 4) == "both"); |
|
| 190 | - $pbot = (substr($this->pagerLocation, 0, 3) == "bot") || (substr($this->pagerLocation, 0, 4) == "both"); |
|
| 191 | - if($this->header) { |
|
| 192 | - $o .= "<tr><td bgcolor='#ffffff' colspan='" . $this->_colcount . "'>" . $this->header . "</td></tr>"; |
|
| 193 | - } |
|
| 194 | - if($tblPager && $ptop) { |
|
| 195 | - $o .= "<tr><td align='" . (substr($this->pagerLocation, -4) == "left" ? "left" : "right") . "' $pagerClass $pagerStyle colspan='" . $this->_colcount . "'>" . $tblPager . " </td></tr>"; |
|
| 196 | - } |
|
| 197 | - $o .= $tblColHdr . $tblRows; |
|
| 198 | - if($tblPager && $pbot) { |
|
| 199 | - $o .= "<tr><td align='" . (substr($this->pagerLocation, -4) == "left" ? "left" : "right") . "' $pagerClass $pagerStyle colspan='" . $this->_colcount . "'>" . $tblPager . " </td></tr>"; |
|
| 200 | - } |
|
| 201 | - if($this->footer) { |
|
| 202 | - $o .= "<tr><td bgcolor='#ffffff' colspan='" . $this->_colcount . "'>" . $this->footer . "</td></tr>"; |
|
| 203 | - } |
|
| 204 | - $o .= $tblEnd; |
|
| 205 | - return $o; |
|
| 206 | - } |
|
| 207 | - |
|
| 208 | - // format column values |
|
| 98 | + $columnHeaderStyle = ($this->columnHeaderStyle) ? "style='" . $this->columnHeaderStyle . "'" : ''; |
|
| 99 | + $columnHeaderClass = ($this->columnHeaderClass) ? "class='" . $this->columnHeaderClass . "'" : ""; |
|
| 100 | + $cssStyle = ($this->cssStyle) ? "style='" . $this->cssStyle . "'" : ''; |
|
| 101 | + $cssClass = ($this->cssClass) ? "class='" . $this->cssClass . "'" : ''; |
|
| 102 | + |
|
| 103 | + $pagerClass = ($this->pagerClass) ? "class='" . $this->pagerClass . "'" : ''; |
|
| 104 | + $pagerStyle = ($this->pagerStyle) ? "style='" . $this->pagerStyle . "'" : "style='background-color:#ffffff;'"; |
|
| 105 | + |
|
| 106 | + $this->_itemStyle = ($this->itemStyle) ? "style='" . $this->itemStyle . "'" : ''; |
|
| 107 | + $this->_itemClass = ($this->itemClass) ? "class='" . $this->itemClass . "'" : ''; |
|
| 108 | + $this->_altItemStyle = ($this->altItemStyle) ? "style='" . $this->altItemStyle . "'" : ''; |
|
| 109 | + $this->_altItemClass = ($this->altItemClass) ? "class='" . $this->altItemClass . "'" : ''; |
|
| 110 | + |
|
| 111 | + $this->_alt = 0; |
|
| 112 | + $this->_total = 0; |
|
| 113 | + |
|
| 114 | + $this->_isDataset = $modx->getDatabase()->isResult($this->ds); // if not dataset then treat as array |
|
| 115 | + |
|
| 116 | + if(!$cssStyle && !$cssClass) { |
|
| 117 | + $cssStyle = "style='width:100%;border:1px solid silver;font-family:verdana,arial; font-size:11px;'"; |
|
| 118 | + } |
|
| 119 | + if(!$columnHeaderStyle && !$columnHeaderClass) { |
|
| 120 | + $columnHeaderStyle = "style='color:black;background-color:silver'"; |
|
| 121 | + } |
|
| 122 | + if(!$this->_itemStyle && !$this->_itemClass) { |
|
| 123 | + $this->_itemStyle = "style='color:black;'"; |
|
| 124 | + } |
|
| 125 | + if(!$this->_altItemStyle && !$this->_altItemClass) { |
|
| 126 | + $this->_altItemStyle = "style='color:black;background-color:#eeeeee'"; |
|
| 127 | + } |
|
| 128 | + |
|
| 129 | + if($this->_isDataset && !$this->columns) { |
|
| 130 | + $cols = $modx->getDatabase()->numFields($this->ds); |
|
| 131 | + for($i = 0; $i < $cols; $i++) $this->columns .= ($i ? "," : "") . $modx->getDatabase()->fieldName($this->ds, $i); |
|
| 132 | + } |
|
| 133 | + |
|
| 134 | + // start grid |
|
| 135 | + $tblStart = "<table $cssClass $cssStyle cellpadding='" . (isset($this->cellPadding) ? (int) $this->cellPadding : 1) . "' cellspacing='" . (isset($this->cellSpacing) ? (int) $this->cellSpacing : 1) . "'>"; |
|
| 136 | + $tblEnd = "</table>"; |
|
| 137 | + |
|
| 138 | + // build column header |
|
| 139 | + $this->_colnames = explode((strstr($this->columns, "||") !== false ? "||" : ","), $this->columns); |
|
| 140 | + $this->_colwidths = explode((strstr($this->colWidths, "||") !== false ? "||" : ","), $this->colWidths); |
|
| 141 | + $this->_colaligns = explode((strstr($this->colAligns, "||") !== false ? "||" : ","), $this->colAligns); |
|
| 142 | + $this->_colwraps = explode((strstr($this->colWraps, "||") !== false ? "||" : ","), $this->colWraps); |
|
| 143 | + $this->_colcolors = explode((strstr($this->colColors, "||") !== false ? "||" : ","), $this->colColors); |
|
| 144 | + $this->_coltypes = explode((strstr($this->colTypes, "||") !== false ? "||" : ","), $this->colTypes); |
|
| 145 | + $this->_colcount = count($this->_colnames); |
|
| 146 | + if(!$this->_isDataset) { |
|
| 147 | + $this->ds = explode((strstr($this->ds, "||") !== false ? "||" : ","), $this->ds); |
|
| 148 | + $this->ds = array_chunk($this->ds, $this->_colcount); |
|
| 149 | + } |
|
| 150 | + $tblColHdr = "<thead><tr>"; |
|
| 151 | + for($c = 0; $c < $this->_colcount; $c++) { |
|
| 152 | + $name = $this->_colnames[$c]; |
|
| 153 | + $width = $this->_colwidths[$c]; |
|
| 154 | + $tblColHdr .= "<td $columnHeaderStyle $columnHeaderClass" . ($width ? " width='$width'" : "") . ">$name</td>"; |
|
| 155 | + } |
|
| 156 | + $tblColHdr .= "</tr></thead>\n"; |
|
| 157 | + |
|
| 158 | + // build rows |
|
| 159 | + $rowcount = $this->_isDataset ? $modx->getDatabase()->getRecordCount($this->ds) : count($this->ds); |
|
| 160 | + $this->_fieldnames = explode(",", $this->fields); |
|
| 161 | + if($rowcount == 0) { |
|
| 162 | + $tblRows .= "<tr><td " . $this->_itemStyle . " " . $this->_itemClass . " colspan='" . $this->_colcount . "'>" . $this->noRecordMsg . "</td></tr>\n"; |
|
| 163 | + } else { |
|
| 164 | + // render grid items |
|
| 165 | + if($this->pageSize <= 0) { |
|
| 166 | + for($r = 0; $r < $rowcount; $r++) { |
|
| 167 | + $row = $this->_isDataset ? $modx->getDatabase()->getRow($this->ds) : $this->ds[$r]; |
|
| 168 | + $tblRows .= $this->RenderRowFnc($r + 1, $row); |
|
| 169 | + } |
|
| 170 | + } else { |
|
| 171 | + if(!$this->pager) { |
|
| 172 | + $this->pager = new DataSetPager($this->id, $this->ds, $this->pageSize, $this->pageNumber); |
|
| 173 | + $this->pager->setRenderRowFnc($this); // pass this object |
|
| 174 | + $this->pager->cssStyle = $pagerStyle; |
|
| 175 | + $this->pager->cssClass = $pagerClass; |
|
| 176 | + } else { |
|
| 177 | + $this->pager->pageSize = $this->pageSize; |
|
| 178 | + $this->pager->pageNumber = $this->pageNumber; |
|
| 179 | + } |
|
| 180 | + |
|
| 181 | + $this->pager->render(); |
|
| 182 | + $tblRows = $this->pager->getRenderedRows(); |
|
| 183 | + $tblPager = $this->pager->getRenderedPager(); |
|
| 184 | + } |
|
| 185 | + } |
|
| 186 | + |
|
| 187 | + // setup header,pager and footer |
|
| 188 | + $o = $tblStart; |
|
| 189 | + $ptop = (substr($this->pagerLocation, 0, 3) == "top") || (substr($this->pagerLocation, 0, 4) == "both"); |
|
| 190 | + $pbot = (substr($this->pagerLocation, 0, 3) == "bot") || (substr($this->pagerLocation, 0, 4) == "both"); |
|
| 191 | + if($this->header) { |
|
| 192 | + $o .= "<tr><td bgcolor='#ffffff' colspan='" . $this->_colcount . "'>" . $this->header . "</td></tr>"; |
|
| 193 | + } |
|
| 194 | + if($tblPager && $ptop) { |
|
| 195 | + $o .= "<tr><td align='" . (substr($this->pagerLocation, -4) == "left" ? "left" : "right") . "' $pagerClass $pagerStyle colspan='" . $this->_colcount . "'>" . $tblPager . " </td></tr>"; |
|
| 196 | + } |
|
| 197 | + $o .= $tblColHdr . $tblRows; |
|
| 198 | + if($tblPager && $pbot) { |
|
| 199 | + $o .= "<tr><td align='" . (substr($this->pagerLocation, -4) == "left" ? "left" : "right") . "' $pagerClass $pagerStyle colspan='" . $this->_colcount . "'>" . $tblPager . " </td></tr>"; |
|
| 200 | + } |
|
| 201 | + if($this->footer) { |
|
| 202 | + $o .= "<tr><td bgcolor='#ffffff' colspan='" . $this->_colcount . "'>" . $this->footer . "</td></tr>"; |
|
| 203 | + } |
|
| 204 | + $o .= $tblEnd; |
|
| 205 | + return $o; |
|
| 206 | + } |
|
| 207 | + |
|
| 208 | + // format column values |
|
| 209 | 209 | |
| 210 | 210 | public function RenderRowFnc($n, $row) { |
| 211 | - if($this->_alt == 0) { |
|
| 212 | - $Style = $this->_itemStyle; |
|
| 213 | - $Class = $this->_itemClass; |
|
| 214 | - $this->_alt = 1; |
|
| 215 | - } else { |
|
| 216 | - $Style = $this->_altItemStyle; |
|
| 217 | - $Class = $this->_altItemClass; |
|
| 218 | - $this->_alt = 0; |
|
| 219 | - } |
|
| 220 | - $o = "<tr>"; |
|
| 221 | - for($c = 0; $c < $this->_colcount; $c++) { |
|
| 222 | - $colStyle = $Style; |
|
| 223 | - $fld = trim($this->_fieldnames[$c]); |
|
| 224 | - $width = isset($this->_colwidths[$c]) ? $this->_colwidths[$c] : null; |
|
| 225 | - $align = isset($this->_colaligns[$c]) ? $this->_colaligns[$c] : null; |
|
| 226 | - $color = isset($this->_colcolors[$c]) ? $this->_colcolors[$c] : null; |
|
| 227 | - $type = isset($this->_coltypes[$c]) ? $this->_coltypes[$c] : null; |
|
| 228 | - $nowrap = isset($this->_colwraps[$c]) ? $this->_colwraps[$c] : null; |
|
| 229 | - $value = $row[($this->_isDataset && $fld ? $fld : $c)]; |
|
| 230 | - if($color && $Style) { |
|
| 231 | - $colStyle = substr($colStyle, 0, -1) . ";background-color:$color;'"; |
|
| 232 | - } |
|
| 233 | - $value = $this->formatColumnValue($row, $value, $type, $align); |
|
| 234 | - $o .= "<td $colStyle $Class" . ($align ? " align='$align'" : "") . ($color ? " bgcolor='$color'" : "") . ($nowrap ? " nowrap='$nowrap'" : "") . ($width ? " width='$width'" : "") . ">$value</td>"; |
|
| 235 | - } |
|
| 236 | - $o .= "</tr>\n"; |
|
| 237 | - return $o; |
|
| 238 | - } |
|
| 211 | + if($this->_alt == 0) { |
|
| 212 | + $Style = $this->_itemStyle; |
|
| 213 | + $Class = $this->_itemClass; |
|
| 214 | + $this->_alt = 1; |
|
| 215 | + } else { |
|
| 216 | + $Style = $this->_altItemStyle; |
|
| 217 | + $Class = $this->_altItemClass; |
|
| 218 | + $this->_alt = 0; |
|
| 219 | + } |
|
| 220 | + $o = "<tr>"; |
|
| 221 | + for($c = 0; $c < $this->_colcount; $c++) { |
|
| 222 | + $colStyle = $Style; |
|
| 223 | + $fld = trim($this->_fieldnames[$c]); |
|
| 224 | + $width = isset($this->_colwidths[$c]) ? $this->_colwidths[$c] : null; |
|
| 225 | + $align = isset($this->_colaligns[$c]) ? $this->_colaligns[$c] : null; |
|
| 226 | + $color = isset($this->_colcolors[$c]) ? $this->_colcolors[$c] : null; |
|
| 227 | + $type = isset($this->_coltypes[$c]) ? $this->_coltypes[$c] : null; |
|
| 228 | + $nowrap = isset($this->_colwraps[$c]) ? $this->_colwraps[$c] : null; |
|
| 229 | + $value = $row[($this->_isDataset && $fld ? $fld : $c)]; |
|
| 230 | + if($color && $Style) { |
|
| 231 | + $colStyle = substr($colStyle, 0, -1) . ";background-color:$color;'"; |
|
| 232 | + } |
|
| 233 | + $value = $this->formatColumnValue($row, $value, $type, $align); |
|
| 234 | + $o .= "<td $colStyle $Class" . ($align ? " align='$align'" : "") . ($color ? " bgcolor='$color'" : "") . ($nowrap ? " nowrap='$nowrap'" : "") . ($width ? " width='$width'" : "") . ">$value</td>"; |
|
| 235 | + } |
|
| 236 | + $o .= "</tr>\n"; |
|
| 237 | + return $o; |
|
| 238 | + } |
|
| 239 | 239 | |
| 240 | 240 | public function formatColumnValue($row, $value, $type, &$align) { |
| 241 | - if(strpos($type, ":") !== false) { |
|
| 242 | - list($type, $type_format) = explode(":", $type, 2); |
|
| 243 | - } |
|
| 244 | - switch(strtolower($type)) { |
|
| 245 | - case "integer": |
|
| 246 | - if($align == "") { |
|
| 247 | - $align = "right"; |
|
| 248 | - } |
|
| 249 | - $value = number_format($value); |
|
| 250 | - break; |
|
| 251 | - |
|
| 252 | - case "float": |
|
| 253 | - if($align == "") { |
|
| 254 | - $align = "right"; |
|
| 255 | - } |
|
| 256 | - if(!$type_format) { |
|
| 257 | - $type_format = 2; |
|
| 258 | - } |
|
| 259 | - $value = number_format($value, $type_format); |
|
| 260 | - break; |
|
| 261 | - |
|
| 262 | - case "currency": |
|
| 263 | - if($align == "") { |
|
| 264 | - $align = "right"; |
|
| 265 | - } |
|
| 266 | - if(!$type_format) { |
|
| 267 | - $type_format = 2; |
|
| 268 | - } |
|
| 269 | - $value = "$" . number_format($value, $type_format); |
|
| 270 | - break; |
|
| 271 | - |
|
| 272 | - case "date": |
|
| 273 | - if($align == "") { |
|
| 274 | - $align = "right"; |
|
| 275 | - } |
|
| 276 | - if(!is_numeric($value)) { |
|
| 277 | - $value = strtotime($value); |
|
| 278 | - } |
|
| 279 | - if(!$type_format) { |
|
| 280 | - $type_format = "%A %d, %B %Y"; |
|
| 281 | - } |
|
| 282 | - $value = strftime($type_format, $value); |
|
| 283 | - break; |
|
| 284 | - |
|
| 285 | - case "boolean": |
|
| 286 | - if($align == '') { |
|
| 287 | - $align = "center"; |
|
| 288 | - } |
|
| 289 | - $value = number_format($value); |
|
| 290 | - if($value) { |
|
| 291 | - $value = '•'; |
|
| 292 | - } else { |
|
| 293 | - $value = ' '; |
|
| 294 | - } |
|
| 295 | - break; |
|
| 296 | - |
|
| 297 | - case "template": |
|
| 298 | - // replace [+value+] first |
|
| 299 | - $value = str_replace("[+value+]", $value, $type_format); |
|
| 300 | - // replace other [+fields+] |
|
| 301 | - if(strpos($value, "[+") !== false) { |
|
| 302 | - foreach($row as $k => $v) { |
|
| 303 | - $value = str_replace("[+$k+]", $v, $value); |
|
| 304 | - } |
|
| 305 | - } |
|
| 306 | - break; |
|
| 307 | - |
|
| 308 | - } |
|
| 309 | - return $value; |
|
| 310 | - } |
|
| 241 | + if(strpos($type, ":") !== false) { |
|
| 242 | + list($type, $type_format) = explode(":", $type, 2); |
|
| 243 | + } |
|
| 244 | + switch(strtolower($type)) { |
|
| 245 | + case "integer": |
|
| 246 | + if($align == "") { |
|
| 247 | + $align = "right"; |
|
| 248 | + } |
|
| 249 | + $value = number_format($value); |
|
| 250 | + break; |
|
| 251 | + |
|
| 252 | + case "float": |
|
| 253 | + if($align == "") { |
|
| 254 | + $align = "right"; |
|
| 255 | + } |
|
| 256 | + if(!$type_format) { |
|
| 257 | + $type_format = 2; |
|
| 258 | + } |
|
| 259 | + $value = number_format($value, $type_format); |
|
| 260 | + break; |
|
| 261 | + |
|
| 262 | + case "currency": |
|
| 263 | + if($align == "") { |
|
| 264 | + $align = "right"; |
|
| 265 | + } |
|
| 266 | + if(!$type_format) { |
|
| 267 | + $type_format = 2; |
|
| 268 | + } |
|
| 269 | + $value = "$" . number_format($value, $type_format); |
|
| 270 | + break; |
|
| 271 | + |
|
| 272 | + case "date": |
|
| 273 | + if($align == "") { |
|
| 274 | + $align = "right"; |
|
| 275 | + } |
|
| 276 | + if(!is_numeric($value)) { |
|
| 277 | + $value = strtotime($value); |
|
| 278 | + } |
|
| 279 | + if(!$type_format) { |
|
| 280 | + $type_format = "%A %d, %B %Y"; |
|
| 281 | + } |
|
| 282 | + $value = strftime($type_format, $value); |
|
| 283 | + break; |
|
| 284 | + |
|
| 285 | + case "boolean": |
|
| 286 | + if($align == '') { |
|
| 287 | + $align = "center"; |
|
| 288 | + } |
|
| 289 | + $value = number_format($value); |
|
| 290 | + if($value) { |
|
| 291 | + $value = '•'; |
|
| 292 | + } else { |
|
| 293 | + $value = ' '; |
|
| 294 | + } |
|
| 295 | + break; |
|
| 296 | + |
|
| 297 | + case "template": |
|
| 298 | + // replace [+value+] first |
|
| 299 | + $value = str_replace("[+value+]", $value, $type_format); |
|
| 300 | + // replace other [+fields+] |
|
| 301 | + if(strpos($value, "[+") !== false) { |
|
| 302 | + foreach($row as $k => $v) { |
|
| 303 | + $value = str_replace("[+$k+]", $v, $value); |
|
| 304 | + } |
|
| 305 | + } |
|
| 306 | + break; |
|
| 307 | + |
|
| 308 | + } |
|
| 309 | + return $value; |
|
| 310 | + } |
|
| 311 | 311 | } |
@@ -13,18 +13,18 @@ discard block |
||
| 13 | 13 | |
| 14 | 14 | class DataSetPager implements DataSetPagerInterface{ |
| 15 | 15 | |
| 16 | - public $ds; // datasource |
|
| 16 | + public $ds; // datasource |
|
| 17 | 17 | public $pageSize; |
| 18 | 18 | public $pageNumber; |
| 19 | 19 | public $rows; |
| 20 | 20 | public $pager; |
| 21 | 21 | public $id; |
| 22 | 22 | |
| 23 | - // normal page |
|
| 23 | + // normal page |
|
| 24 | 24 | public $pageStyle; |
| 25 | 25 | public $pageClass; |
| 26 | 26 | |
| 27 | - // selected page |
|
| 27 | + // selected page |
|
| 28 | 28 | public $selPageStyle; |
| 29 | 29 | public $selPageClass; |
| 30 | 30 | public $renderRowFnc; |
@@ -34,164 +34,164 @@ discard block |
||
| 34 | 34 | public static $dataSetPagerCnt; |
| 35 | 35 | |
| 36 | 36 | public function __construct($id, $ds, $pageSize = 10, $pageNumber = -1) { |
| 37 | - global $_PAGE; // use view state object |
|
| 38 | - |
|
| 39 | - // set id |
|
| 40 | - self::$dataSetPagerCnt++; |
|
| 41 | - $this->id = !empty($id) ? $id : "dsp" . self::$dataSetPagerCnt; |
|
| 42 | - |
|
| 43 | - // get pagenumber |
|
| 44 | - // by setting pager to -1 cause pager to load it's last page number |
|
| 45 | - if($pageNumber == -1) { |
|
| 46 | - $pageNumber = 1; |
|
| 47 | - if(isset($_GET["dpgn" . $this->id])) { |
|
| 48 | - $pageNumber = $_GET["dpgn" . $this->id]; |
|
| 49 | - } elseif(isset($_PAGE['vs'][$id . '_dpgn'])) { |
|
| 50 | - $pageNumber = $_PAGE['vs'][$id . '_dpgn']; |
|
| 51 | - } |
|
| 52 | - } |
|
| 53 | - if(!is_numeric($pageNumber)) { |
|
| 54 | - $pageNumber = 1; |
|
| 55 | - } |
|
| 56 | - |
|
| 57 | - $this->ds = $ds; // datasource |
|
| 58 | - $this->pageSize = $pageSize; |
|
| 59 | - $this->pageNumber = $pageNumber; |
|
| 60 | - $this->rows = ''; |
|
| 61 | - $this->pager = ''; |
|
| 62 | - } |
|
| 37 | + global $_PAGE; // use view state object |
|
| 38 | + |
|
| 39 | + // set id |
|
| 40 | + self::$dataSetPagerCnt++; |
|
| 41 | + $this->id = !empty($id) ? $id : "dsp" . self::$dataSetPagerCnt; |
|
| 42 | + |
|
| 43 | + // get pagenumber |
|
| 44 | + // by setting pager to -1 cause pager to load it's last page number |
|
| 45 | + if($pageNumber == -1) { |
|
| 46 | + $pageNumber = 1; |
|
| 47 | + if(isset($_GET["dpgn" . $this->id])) { |
|
| 48 | + $pageNumber = $_GET["dpgn" . $this->id]; |
|
| 49 | + } elseif(isset($_PAGE['vs'][$id . '_dpgn'])) { |
|
| 50 | + $pageNumber = $_PAGE['vs'][$id . '_dpgn']; |
|
| 51 | + } |
|
| 52 | + } |
|
| 53 | + if(!is_numeric($pageNumber)) { |
|
| 54 | + $pageNumber = 1; |
|
| 55 | + } |
|
| 56 | + |
|
| 57 | + $this->ds = $ds; // datasource |
|
| 58 | + $this->pageSize = $pageSize; |
|
| 59 | + $this->pageNumber = $pageNumber; |
|
| 60 | + $this->rows = ''; |
|
| 61 | + $this->pager = ''; |
|
| 62 | + } |
|
| 63 | 63 | |
| 64 | 64 | public function getRenderedPager() { |
| 65 | - return $this->pager; |
|
| 66 | - } |
|
| 65 | + return $this->pager; |
|
| 66 | + } |
|
| 67 | 67 | |
| 68 | 68 | public function getRenderedRows() { |
| 69 | - return $this->rows; |
|
| 70 | - } |
|
| 69 | + return $this->rows; |
|
| 70 | + } |
|
| 71 | 71 | |
| 72 | 72 | public function setDataSource($ds) { |
| 73 | - $this->ds = $ds; |
|
| 74 | - } |
|
| 73 | + $this->ds = $ds; |
|
| 74 | + } |
|
| 75 | 75 | |
| 76 | 76 | public function setPageSize($ps) { |
| 77 | - $this->pageSize = $ps; |
|
| 78 | - } |
|
| 77 | + $this->pageSize = $ps; |
|
| 78 | + } |
|
| 79 | 79 | |
| 80 | 80 | public function setRenderRowFnc($fncName, $args = "") { |
| 81 | - $this->renderRowFnc = &$fncName; |
|
| 82 | - $this->renderRowFncArgs = $args; // extra agruments |
|
| 81 | + $this->renderRowFnc = &$fncName; |
|
| 82 | + $this->renderRowFncArgs = $args; // extra agruments |
|
| 83 | 83 | |
| 84 | 84 | |
| 85 | - } |
|
| 85 | + } |
|
| 86 | 86 | |
| 87 | 87 | public function setRenderPagerFnc($fncName, $args = "") { |
| 88 | - $this->renderPagerFnc = $fncName; |
|
| 89 | - $this->renderPagerFncArgs = $args; // extra agruments |
|
| 90 | - } |
|
| 88 | + $this->renderPagerFnc = $fncName; |
|
| 89 | + $this->renderPagerFncArgs = $args; // extra agruments |
|
| 90 | + } |
|
| 91 | 91 | |
| 92 | 92 | public function render() { |
| 93 | - $modx = evolutionCMS(); global $_PAGE; |
|
| 94 | - |
|
| 95 | - $isDataset = $modx->getDatabase()->isResult($this->ds); |
|
| 96 | - |
|
| 97 | - if(!$this->selPageStyle) { |
|
| 98 | - $this->selPageStyle = "font-weight:bold"; |
|
| 99 | - } |
|
| 100 | - |
|
| 101 | - // get total number of rows |
|
| 102 | - $tnr = ($isDataset) ? $modx->getDatabase()->getRecordCount($this->ds) : count($this->ds); |
|
| 103 | - |
|
| 104 | - // render: no records found |
|
| 105 | - if($tnr <= 0) { |
|
| 106 | - $fnc = $this->renderRowFnc; |
|
| 107 | - $args = $this->renderRowFncArgs; |
|
| 108 | - if(isset($fnc)) { |
|
| 109 | - if($args != "") { |
|
| 110 | - $this->rows .= $fnc(0, null, $args); |
|
| 111 | - } // if agrs was specified then we will pass three params |
|
| 112 | - else { |
|
| 113 | - $this->rows .= $fnc(0, null); |
|
| 114 | - } // otherwise two will be passed |
|
| 115 | - } |
|
| 116 | - return; |
|
| 117 | - } |
|
| 118 | - |
|
| 119 | - // get total pages |
|
| 120 | - $tp = ceil($tnr / $this->pageSize); |
|
| 121 | - if($this->pageNumber > $tp) { |
|
| 122 | - $this->pageNumber = 1; |
|
| 123 | - } |
|
| 124 | - |
|
| 125 | - // get page number |
|
| 126 | - $p = $this->pageNumber; |
|
| 127 | - |
|
| 128 | - // save page number to view state if available |
|
| 129 | - if(isset($_PAGE['vs'])) { |
|
| 130 | - $_PAGE['vs'][$this->id . '_dpgn'] = $p; |
|
| 131 | - } |
|
| 132 | - |
|
| 133 | - // render pager : renderPagerFnc($cuurentPage,$pagerNumber,$arguments=""); |
|
| 134 | - if($tp > 1) { |
|
| 135 | - $url = ''; |
|
| 136 | - $fnc = $this->renderPagerFnc; |
|
| 137 | - $args = $this->renderPagerFncArgs; |
|
| 138 | - if(!isset($fnc)) { |
|
| 139 | - if($modx->isFrontend()) { |
|
| 140 | - $url = $modx->makeUrl($modx->documentIdentifier, '', '', 'full') . '?'; |
|
| 141 | - } else { |
|
| 142 | - $url = $_SERVER['PHP_SELF'] . '?'; |
|
| 143 | - } |
|
| 144 | - $i = 0; |
|
| 145 | - foreach($_GET as $n => $v) if($n != 'dpgn' . $this->id) { |
|
| 146 | - $i++; |
|
| 147 | - $url .= (($i > 1) ? "&" : "") . "$n=$v"; |
|
| 148 | - } |
|
| 149 | - if($i >= 1) { |
|
| 150 | - $url .= "&"; |
|
| 151 | - } |
|
| 152 | - } |
|
| 153 | - for($i = 1; $i <= $tp; $i++) { |
|
| 154 | - if(isset($fnc)) { |
|
| 155 | - if($args != "") { |
|
| 156 | - $this->pager .= $fnc($p, $i, $args); |
|
| 157 | - } else { |
|
| 158 | - $this->pager .= $fnc($p, $i); |
|
| 159 | - } |
|
| 160 | - } else { |
|
| 161 | - $this->pager .= ($p == $i) ? " <span class='" . $this->selPageClass . "' style='" . $this->selPageStyle . "'>$i</span> " : " <a href='" . $url . "dpgn" . $this->id . "=$i' class='" . $this->pageClass . "' style='" . $this->pageStyle . "'>$i</a> "; |
|
| 162 | - } |
|
| 163 | - } |
|
| 164 | - } |
|
| 165 | - |
|
| 166 | - // render row : renderRowFnc($rowNumber,$row,$arguments="") |
|
| 167 | - $fnc = $this->renderRowFnc; |
|
| 168 | - $args = $this->renderRowFncArgs; |
|
| 169 | - |
|
| 170 | - if(isset($fnc)) { |
|
| 171 | - $i = 1; |
|
| 172 | - $fncObject = is_object($fnc); |
|
| 173 | - $minitems = (($p - 1) * $this->pageSize) + 1; |
|
| 174 | - $maxitems = (($p - 1) * $this->pageSize) + $this->pageSize; |
|
| 175 | - while($i <= $maxitems && ($row = ($isDataset) ? $modx->getDatabase()->getRow($this->ds) : $this->ds[$i - 1])) { |
|
| 176 | - if($i >= $minitems && $i <= $maxitems) { |
|
| 177 | - if($fncObject) { |
|
| 178 | - if($args != "") { |
|
| 179 | - $this->rows .= $fnc->RenderRowFnc($i, $row, $args); |
|
| 180 | - } else { |
|
| 181 | - $this->rows .= $fnc->RenderRowFnc($i, $row); |
|
| 182 | - } |
|
| 183 | - } else { |
|
| 184 | - if($args != "") { |
|
| 185 | - $this->rows .= $fnc($i, $row, $args); |
|
| 186 | - } // if agrs was specified then we wil pass three params |
|
| 187 | - else { |
|
| 188 | - $this->rows .= $fnc($i, $row); |
|
| 189 | - } // otherwise two will be passed |
|
| 190 | - } |
|
| 191 | - |
|
| 192 | - } |
|
| 193 | - $i++; |
|
| 194 | - } |
|
| 195 | - } |
|
| 196 | - } |
|
| 93 | + $modx = evolutionCMS(); global $_PAGE; |
|
| 94 | + |
|
| 95 | + $isDataset = $modx->getDatabase()->isResult($this->ds); |
|
| 96 | + |
|
| 97 | + if(!$this->selPageStyle) { |
|
| 98 | + $this->selPageStyle = "font-weight:bold"; |
|
| 99 | + } |
|
| 100 | + |
|
| 101 | + // get total number of rows |
|
| 102 | + $tnr = ($isDataset) ? $modx->getDatabase()->getRecordCount($this->ds) : count($this->ds); |
|
| 103 | + |
|
| 104 | + // render: no records found |
|
| 105 | + if($tnr <= 0) { |
|
| 106 | + $fnc = $this->renderRowFnc; |
|
| 107 | + $args = $this->renderRowFncArgs; |
|
| 108 | + if(isset($fnc)) { |
|
| 109 | + if($args != "") { |
|
| 110 | + $this->rows .= $fnc(0, null, $args); |
|
| 111 | + } // if agrs was specified then we will pass three params |
|
| 112 | + else { |
|
| 113 | + $this->rows .= $fnc(0, null); |
|
| 114 | + } // otherwise two will be passed |
|
| 115 | + } |
|
| 116 | + return; |
|
| 117 | + } |
|
| 118 | + |
|
| 119 | + // get total pages |
|
| 120 | + $tp = ceil($tnr / $this->pageSize); |
|
| 121 | + if($this->pageNumber > $tp) { |
|
| 122 | + $this->pageNumber = 1; |
|
| 123 | + } |
|
| 124 | + |
|
| 125 | + // get page number |
|
| 126 | + $p = $this->pageNumber; |
|
| 127 | + |
|
| 128 | + // save page number to view state if available |
|
| 129 | + if(isset($_PAGE['vs'])) { |
|
| 130 | + $_PAGE['vs'][$this->id . '_dpgn'] = $p; |
|
| 131 | + } |
|
| 132 | + |
|
| 133 | + // render pager : renderPagerFnc($cuurentPage,$pagerNumber,$arguments=""); |
|
| 134 | + if($tp > 1) { |
|
| 135 | + $url = ''; |
|
| 136 | + $fnc = $this->renderPagerFnc; |
|
| 137 | + $args = $this->renderPagerFncArgs; |
|
| 138 | + if(!isset($fnc)) { |
|
| 139 | + if($modx->isFrontend()) { |
|
| 140 | + $url = $modx->makeUrl($modx->documentIdentifier, '', '', 'full') . '?'; |
|
| 141 | + } else { |
|
| 142 | + $url = $_SERVER['PHP_SELF'] . '?'; |
|
| 143 | + } |
|
| 144 | + $i = 0; |
|
| 145 | + foreach($_GET as $n => $v) if($n != 'dpgn' . $this->id) { |
|
| 146 | + $i++; |
|
| 147 | + $url .= (($i > 1) ? "&" : "") . "$n=$v"; |
|
| 148 | + } |
|
| 149 | + if($i >= 1) { |
|
| 150 | + $url .= "&"; |
|
| 151 | + } |
|
| 152 | + } |
|
| 153 | + for($i = 1; $i <= $tp; $i++) { |
|
| 154 | + if(isset($fnc)) { |
|
| 155 | + if($args != "") { |
|
| 156 | + $this->pager .= $fnc($p, $i, $args); |
|
| 157 | + } else { |
|
| 158 | + $this->pager .= $fnc($p, $i); |
|
| 159 | + } |
|
| 160 | + } else { |
|
| 161 | + $this->pager .= ($p == $i) ? " <span class='" . $this->selPageClass . "' style='" . $this->selPageStyle . "'>$i</span> " : " <a href='" . $url . "dpgn" . $this->id . "=$i' class='" . $this->pageClass . "' style='" . $this->pageStyle . "'>$i</a> "; |
|
| 162 | + } |
|
| 163 | + } |
|
| 164 | + } |
|
| 165 | + |
|
| 166 | + // render row : renderRowFnc($rowNumber,$row,$arguments="") |
|
| 167 | + $fnc = $this->renderRowFnc; |
|
| 168 | + $args = $this->renderRowFncArgs; |
|
| 169 | + |
|
| 170 | + if(isset($fnc)) { |
|
| 171 | + $i = 1; |
|
| 172 | + $fncObject = is_object($fnc); |
|
| 173 | + $minitems = (($p - 1) * $this->pageSize) + 1; |
|
| 174 | + $maxitems = (($p - 1) * $this->pageSize) + $this->pageSize; |
|
| 175 | + while($i <= $maxitems && ($row = ($isDataset) ? $modx->getDatabase()->getRow($this->ds) : $this->ds[$i - 1])) { |
|
| 176 | + if($i >= $minitems && $i <= $maxitems) { |
|
| 177 | + if($fncObject) { |
|
| 178 | + if($args != "") { |
|
| 179 | + $this->rows .= $fnc->RenderRowFnc($i, $row, $args); |
|
| 180 | + } else { |
|
| 181 | + $this->rows .= $fnc->RenderRowFnc($i, $row); |
|
| 182 | + } |
|
| 183 | + } else { |
|
| 184 | + if($args != "") { |
|
| 185 | + $this->rows .= $fnc($i, $row, $args); |
|
| 186 | + } // if agrs was specified then we wil pass three params |
|
| 187 | + else { |
|
| 188 | + $this->rows .= $fnc($i, $row); |
|
| 189 | + } // otherwise two will be passed |
|
| 190 | + } |
|
| 191 | + |
|
| 192 | + } |
|
| 193 | + $i++; |
|
| 194 | + } |
|
| 195 | + } |
|
| 196 | + } |
|
| 197 | 197 | } |
@@ -1,16 +1,16 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | /** This file is part of KCFinder project |
| 4 | - * |
|
| 5 | - * @desc Uploader class |
|
| 6 | - * @package KCFinder |
|
| 7 | - * @version 2.54 |
|
| 8 | - * @author Pavel Tzonkov <[email protected]> |
|
| 9 | - * @copyright 2010-2014 KCFinder Project |
|
| 10 | - * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2 |
|
| 11 | - * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2 |
|
| 12 | - * @link http://kcfinder.sunhater.com |
|
| 13 | - */ |
|
| 4 | + * |
|
| 5 | + * @desc Uploader class |
|
| 6 | + * @package KCFinder |
|
| 7 | + * @version 2.54 |
|
| 8 | + * @author Pavel Tzonkov <[email protected]> |
|
| 9 | + * @copyright 2010-2014 KCFinder Project |
|
| 10 | + * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2 |
|
| 11 | + * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2 |
|
| 12 | + * @link http://kcfinder.sunhater.com |
|
| 13 | + */ |
|
| 14 | 14 | |
| 15 | 15 | class uploader { |
| 16 | 16 | |
@@ -18,92 +18,92 @@ discard block |
||
| 18 | 18 | const VERSION = "2.54"; |
| 19 | 19 | |
| 20 | 20 | /** Config session-overrided settings |
| 21 | - * @var array */ |
|
| 21 | + * @var array */ |
|
| 22 | 22 | protected $config = array(); |
| 23 | 23 | |
| 24 | 24 | /** Default image driver |
| 25 | - * @var string */ |
|
| 25 | + * @var string */ |
|
| 26 | 26 | protected $imageDriver = "gd"; |
| 27 | 27 | |
| 28 | 28 | /** Opener applocation properties |
| 29 | - * $opener['name'] Got from $_GET['opener']; |
|
| 30 | - * $opener['CKEditor']['funcNum'] CKEditor function number (got from $_GET) |
|
| 31 | - * $opener['TinyMCE'] Boolean |
|
| 32 | - * @var array */ |
|
| 29 | + * $opener['name'] Got from $_GET['opener']; |
|
| 30 | + * $opener['CKEditor']['funcNum'] CKEditor function number (got from $_GET) |
|
| 31 | + * $opener['TinyMCE'] Boolean |
|
| 32 | + * @var array */ |
|
| 33 | 33 | protected $opener = array(); |
| 34 | 34 | |
| 35 | 35 | /** Got from $_GET['type'] or first one $config['types'] array key, if inexistant |
| 36 | - * @var string */ |
|
| 36 | + * @var string */ |
|
| 37 | 37 | protected $type; |
| 38 | 38 | |
| 39 | 39 | /** Helper property. Local filesystem path to the Type Directory |
| 40 | - * Equivalent: $config['uploadDir'] . "/" . $type |
|
| 41 | - * @var string */ |
|
| 40 | + * Equivalent: $config['uploadDir'] . "/" . $type |
|
| 41 | + * @var string */ |
|
| 42 | 42 | protected $typeDir; |
| 43 | 43 | |
| 44 | 44 | /** Helper property. Web URL to the Type Directory |
| 45 | - * Equivalent: $config['uploadURL'] . "/" . $type |
|
| 46 | - * @var string */ |
|
| 45 | + * Equivalent: $config['uploadURL'] . "/" . $type |
|
| 46 | + * @var string */ |
|
| 47 | 47 | protected $typeURL; |
| 48 | 48 | |
| 49 | 49 | /** Linked to $config['types'] |
| 50 | - * @var array */ |
|
| 50 | + * @var array */ |
|
| 51 | 51 | protected $types = array(); |
| 52 | 52 | |
| 53 | 53 | /** Settings which can override default settings if exists as keys in $config['types'][$type] array |
| 54 | - * @var array */ |
|
| 54 | + * @var array */ |
|
| 55 | 55 | protected $typeSettings = array('disabled', 'theme', 'dirPerms', 'filePerms', 'denyZipDownload', 'maxImageWidth', 'maxImageHeight', 'thumbWidth', 'thumbHeight', 'jpegQuality', 'access', 'filenameChangeChars', 'dirnameChangeChars', 'denyExtensionRename', 'deniedExts', 'watermark'); |
| 56 | 56 | |
| 57 | 57 | /** Got from language file |
| 58 | - * @var string */ |
|
| 58 | + * @var string */ |
|
| 59 | 59 | protected $charset; |
| 60 | 60 | |
| 61 | 61 | /** The language got from $_GET['lng'] or $_GET['lang'] or... Please see next property |
| 62 | - * @var string */ |
|
| 62 | + * @var string */ |
|
| 63 | 63 | protected $lang = 'en'; |
| 64 | 64 | |
| 65 | 65 | /** Possible language $_GET keys |
| 66 | - * @var array */ |
|
| 66 | + * @var array */ |
|
| 67 | 67 | protected $langInputNames = array('lang', 'langCode', 'lng', 'language', 'lang_code'); |
| 68 | 68 | |
| 69 | 69 | /** Uploaded file(s) info. Linked to first $_FILES element |
| 70 | - * @var array */ |
|
| 70 | + * @var array */ |
|
| 71 | 71 | protected $file; |
| 72 | 72 | |
| 73 | 73 | /** Next three properties are got from the current language file |
| 74 | - * @var string */ |
|
| 74 | + * @var string */ |
|
| 75 | 75 | protected $dateTimeFull; // Currently not used |
| 76 | 76 | protected $dateTimeMid; // Currently not used |
| 77 | 77 | protected $dateTimeSmall; |
| 78 | 78 | |
| 79 | 79 | /** Contain Specified language labels |
| 80 | - * @var array */ |
|
| 80 | + * @var array */ |
|
| 81 | 81 | protected $labels = array(); |
| 82 | 82 | |
| 83 | 83 | /** Contain unprocessed $_GET array. Please use this instead of $_GET |
| 84 | - * @var array */ |
|
| 84 | + * @var array */ |
|
| 85 | 85 | protected $get; |
| 86 | 86 | |
| 87 | 87 | /** Contain unprocessed $_POST array. Please use this instead of $_POST |
| 88 | - * @var array */ |
|
| 88 | + * @var array */ |
|
| 89 | 89 | protected $post; |
| 90 | 90 | |
| 91 | 91 | /** Contain unprocessed $_COOKIE array. Please use this instead of $_COOKIE |
| 92 | - * @var array */ |
|
| 92 | + * @var array */ |
|
| 93 | 93 | protected $cookie; |
| 94 | 94 | |
| 95 | 95 | /** Session array. Please use this property instead of $_SESSION |
| 96 | - * @var array */ |
|
| 96 | + * @var array */ |
|
| 97 | 97 | protected $session; |
| 98 | 98 | |
| 99 | 99 | /** CMS integration attribute (got from $_GET['cms']) |
| 100 | - * @var string */ |
|
| 100 | + * @var string */ |
|
| 101 | 101 | protected $cms = ""; |
| 102 | 102 | |
| 103 | 103 | protected $modx = null; |
| 104 | 104 | /** Magic method which allows read-only access to protected or private class properties |
| 105 | - * @param string $property |
|
| 106 | - * @return mixed */ |
|
| 105 | + * @param string $property |
|
| 106 | + * @return mixed */ |
|
| 107 | 107 | public function __get($property) { |
| 108 | 108 | return property_exists($this, $property) ? $this->$property : null; |
| 109 | 109 | } |
@@ -132,7 +132,7 @@ discard block |
||
| 132 | 132 | ) |
| 133 | 133 | $this->cms = $this->get['cms']; |
| 134 | 134 | |
| 135 | - // LINKING UPLOADED FILE |
|
| 135 | + // LINKING UPLOADED FILE |
|
| 136 | 136 | if (count($_FILES)) |
| 137 | 137 | $this->file = &$_FILES[key($_FILES)]; |
| 138 | 138 | |
@@ -228,8 +228,8 @@ discard block |
||
| 228 | 228 | $this->config['uploadDir'] = strlen($this->config['uploadDir']) |
| 229 | 229 | ? path::normalize($this->config['uploadDir']) |
| 230 | 230 | : path::url2fullPath("/$path"); |
| 231 | - $this->typeDir = "{$this->config['uploadDir']}/{$this->type}"; |
|
| 232 | - $this->typeURL = "{$this->config['siteURL']}/{$this->config['uploadURL']}/{$this->type}"; |
|
| 231 | + $this->typeDir = "{$this->config['uploadDir']}/{$this->type}"; |
|
| 232 | + $this->typeURL = "{$this->config['siteURL']}/{$this->config['uploadURL']}/{$this->type}"; |
|
| 233 | 233 | |
| 234 | 234 | // SITE ROOT |
| 235 | 235 | } elseif ($this->config['uploadURL'] == "/") { |
@@ -365,36 +365,36 @@ discard block |
||
| 365 | 365 | } |
| 366 | 366 | |
| 367 | 367 | |
| 368 | - protected function getTransaliasSettings() { |
|
| 369 | - $modx = evolutionCMS(); |
|
| 370 | - |
|
| 371 | - // Cleaning uploaded filename? |
|
| 372 | - $setting = $modx->getDatabase()->select('count(*)', $modx->getFullTableName('system_settings'), 'setting_name="clean_uploaded_filename" AND setting_value=1'); |
|
| 373 | - if ($modx->getDatabase()->getValue($setting)>0) { |
|
| 374 | - // Transalias plugin active? |
|
| 375 | - $res = $modx->getDatabase()->select('properties', $modx->getFullTableName('site_plugins'), 'name="TransAlias" AND disabled=0'); |
|
| 376 | - if ($properties = $modx->getDatabase()->getValue($res)) { |
|
| 377 | - $properties = $modx->parseProperties($properties, 'TransAlias', 'plugin'); |
|
| 378 | - } else { |
|
| 379 | - $properties = NULL; |
|
| 380 | - } |
|
| 381 | - } else { |
|
| 382 | - $properties = NULL; |
|
| 383 | - } |
|
| 384 | - return $properties; |
|
| 385 | - } |
|
| 386 | - |
|
| 387 | - |
|
| 388 | - protected function normalizeFilename($filename) { |
|
| 389 | - if ($this->getTransaliasSettings()) { |
|
| 390 | - $format = strrchr($filename, "."); |
|
| 391 | - $filename = str_replace($format, "", $filename); |
|
| 392 | - $filename = $this->modx->stripAlias($filename).$format; |
|
| 393 | - } |
|
| 394 | - return $filename; |
|
| 395 | - } |
|
| 396 | - |
|
| 397 | - protected function normalizeDirname($dirname) { |
|
| 368 | + protected function getTransaliasSettings() { |
|
| 369 | + $modx = evolutionCMS(); |
|
| 370 | + |
|
| 371 | + // Cleaning uploaded filename? |
|
| 372 | + $setting = $modx->getDatabase()->select('count(*)', $modx->getFullTableName('system_settings'), 'setting_name="clean_uploaded_filename" AND setting_value=1'); |
|
| 373 | + if ($modx->getDatabase()->getValue($setting)>0) { |
|
| 374 | + // Transalias plugin active? |
|
| 375 | + $res = $modx->getDatabase()->select('properties', $modx->getFullTableName('site_plugins'), 'name="TransAlias" AND disabled=0'); |
|
| 376 | + if ($properties = $modx->getDatabase()->getValue($res)) { |
|
| 377 | + $properties = $modx->parseProperties($properties, 'TransAlias', 'plugin'); |
|
| 378 | + } else { |
|
| 379 | + $properties = NULL; |
|
| 380 | + } |
|
| 381 | + } else { |
|
| 382 | + $properties = NULL; |
|
| 383 | + } |
|
| 384 | + return $properties; |
|
| 385 | + } |
|
| 386 | + |
|
| 387 | + |
|
| 388 | + protected function normalizeFilename($filename) { |
|
| 389 | + if ($this->getTransaliasSettings()) { |
|
| 390 | + $format = strrchr($filename, "."); |
|
| 391 | + $filename = str_replace($format, "", $filename); |
|
| 392 | + $filename = $this->modx->stripAlias($filename).$format; |
|
| 393 | + } |
|
| 394 | + return $filename; |
|
| 395 | + } |
|
| 396 | + |
|
| 397 | + protected function normalizeDirname($dirname) { |
|
| 398 | 398 | return $this->modx->stripAlias($dirname); |
| 399 | 399 | } |
| 400 | 400 | |
@@ -472,10 +472,10 @@ discard block |
||
| 472 | 472 | return $this->label("The image is too big and/or cannot be resized."); |
| 473 | 473 | |
| 474 | 474 | |
| 475 | - // CHECK FOR MODX MAX FILE SIZE |
|
| 476 | - $actualfilesize=filesize($file['tmp_name']); |
|
| 477 | - if (isset($this->config['maxfilesize']) && $actualfilesize > $this->config['maxfilesize']) |
|
| 478 | - return $this->label("File is too big: ".$actualfilesize." Bytes. (max ".$this->config['maxfilesize']." Bytes)"); |
|
| 475 | + // CHECK FOR MODX MAX FILE SIZE |
|
| 476 | + $actualfilesize=filesize($file['tmp_name']); |
|
| 477 | + if (isset($this->config['maxfilesize']) && $actualfilesize > $this->config['maxfilesize']) |
|
| 478 | + return $this->label("File is too big: ".$actualfilesize." Bytes. (max ".$this->config['maxfilesize']." Bytes)"); |
|
| 479 | 479 | |
| 480 | 480 | return true; |
| 481 | 481 | } |
@@ -627,7 +627,7 @@ discard block |
||
| 627 | 627 | $top = isset($this->config['watermark']['top']) |
| 628 | 628 | ? $this->config['watermark']['top'] : false; |
| 629 | 629 | $img->watermark($this->config['watermark']['file'], $left, $top); |
| 630 | - } |
|
| 630 | + } |
|
| 631 | 631 | |
| 632 | 632 | $options = array( 'file' => $file ); |
| 633 | 633 | |