mambax7 /
mastopgo2
This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include, or for example
via PHP's auto-loading mechanism.
| 1 | <?php |
||||
| 2 | |||||
| 3 | namespace XoopsModules\Mastopgo2; |
||||
| 4 | |||||
| 5 | ### ============================================================= |
||||
| 6 | ### Mastop InfoDigital - Paixão por Internet |
||||
| 7 | ### ============================================================= |
||||
| 8 | ### Classe MÃE |
||||
| 9 | ### ============================================================= |
||||
| 10 | ### Developer: Fernando Santos (topet05), [email protected] |
||||
| 11 | ### Copyright: Mastop InfoDigital © 2003-2007 |
||||
| 12 | ### ------------------------------------------------------------- |
||||
| 13 | ### www.mastop.com.br |
||||
| 14 | ### ============================================================= |
||||
| 15 | ### |
||||
| 16 | ### ============================================================= |
||||
| 17 | use Xmf\Request; |
||||
| 18 | |||||
| 19 | require_once XOOPS_ROOT_PATH . '/kernel/object.php'; |
||||
| 20 | |||||
| 21 | if (!class_exists('Mastop')) { |
||||
| 22 | /** |
||||
| 23 | * Class Mastop |
||||
| 24 | */ |
||||
| 25 | class Mastop extends \XoopsObject |
||||
| 26 | { |
||||
| 27 | public $db; |
||||
| 28 | public $tabela; |
||||
| 29 | public $id; |
||||
| 30 | public $total = 0; |
||||
| 31 | public $afetadas = 0; |
||||
| 32 | |||||
| 33 | // construtor da classe |
||||
| 34 | |||||
| 35 | /** |
||||
| 36 | * Mastop constructor. |
||||
| 37 | */ |
||||
| 38 | public function __construct() |
||||
| 39 | { |
||||
| 40 | // Não usado diretamente |
||||
| 41 | } |
||||
| 42 | |||||
| 43 | /** |
||||
| 44 | * @return bool|mixed |
||||
| 45 | */ |
||||
| 46 | public function store() |
||||
| 47 | { |
||||
| 48 | if (!$this->cleanVars()) { |
||||
| 49 | return false; |
||||
| 50 | } |
||||
| 51 | $myts = \MyTextSanitizer::getInstance(); |
||||
|
0 ignored issues
–
show
Unused Code
introduced
by
Loading history...
|
|||||
| 52 | foreach ($this->cleanVars as $k => $v) { |
||||
| 53 | $indices[] = $k; |
||||
| 54 | $valores[] = $v; |
||||
| 55 | //${$k} =$v; |
||||
| 56 | } |
||||
| 57 | |||||
| 58 | if (null === $this->getVar($this->id) || 0 == $this->getVar($this->id)) { |
||||
| 59 | $sql = 'INSERT INTO ' . $this->tabela . ' ( '; |
||||
| 60 | |||||
| 61 | |||||
| 62 | if (0 == $valores[0]){ |
||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||
| 63 | // $sql .= $indices[1]; |
||||
| 64 | for ($i = 1, $iMax = count($indices); $i < $iMax; ++$i) { |
||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||
| 65 | $sql .= $indices[$i]; |
||||
| 66 | if ($i != (count($indices) - 1)) { |
||||
| 67 | $sql .= ','; |
||||
| 68 | } |
||||
| 69 | } |
||||
| 70 | } else { |
||||
| 71 | $sql .= implode(', ', $indices); |
||||
| 72 | } |
||||
| 73 | |||||
| 74 | $sql .= ') VALUES ('; |
||||
| 75 | |||||
| 76 | if (0 == $valores[0]){ |
||||
| 77 | for ($i = 1, $iMax = count($valores); $i < $iMax; ++$i) { |
||||
| 78 | if (!is_int($valores[$i])) { |
||||
| 79 | $sql .= $this->db->quoteString($valores[$i]); |
||||
| 80 | } else { |
||||
| 81 | $sql .= $valores[$i]; |
||||
| 82 | } |
||||
| 83 | if ($i != (count($valores) - 1)) { |
||||
| 84 | $sql .= ','; |
||||
| 85 | } |
||||
| 86 | } |
||||
| 87 | } else { |
||||
| 88 | for ($i = 0, $iMax = count($valores); $i < $iMax; ++$i) { |
||||
| 89 | if (!is_int($valores[$i])) { |
||||
| 90 | $sql .= $this->db->quoteString($valores[$i]); |
||||
| 91 | } else { |
||||
| 92 | $sql .= $valores[$i]; |
||||
| 93 | } |
||||
| 94 | if ($i != (count($valores) - 1)) { |
||||
| 95 | $sql .= ','; |
||||
| 96 | } |
||||
| 97 | } |
||||
| 98 | } |
||||
| 99 | |||||
| 100 | |||||
| 101 | $sql .= ')'; |
||||
| 102 | } else { |
||||
| 103 | $sql = 'UPDATE ' . $this->tabela . ' SET '; |
||||
| 104 | for ($i = 1, $iMax = count($valores); $i < $iMax; ++$i) { |
||||
| 105 | $sql .= $indices[$i] . '='; |
||||
| 106 | if (!is_int($valores[$i])) { |
||||
| 107 | $sql .= $this->db->quoteString($valores[$i]); |
||||
| 108 | } else { |
||||
| 109 | $sql .= $valores[$i]; |
||||
| 110 | } |
||||
| 111 | if ($i != (count($valores) - 1)) { |
||||
| 112 | $sql .= ','; |
||||
| 113 | } |
||||
| 114 | } |
||||
| 115 | $sql .= ' WHERE ' . $this->id . ' = ' . $this->getVar($this->id); |
||||
| 116 | } |
||||
| 117 | //echo $sql; |
||||
| 118 | $result = $this->db->query($sql); |
||||
| 119 | $this->afetadas = $this->db->getAffectedRows(); |
||||
| 120 | if (!$result) { |
||||
| 121 | $this->setErrors('Erro ao gravar dados na Base de Dados. <br>' . $this->db->error()); |
||||
| 122 | |||||
| 123 | return false; |
||||
| 124 | } |
||||
| 125 | if (null === $this->getVar($this->id) || 0 == $this->getVar($this->id)) { |
||||
| 126 | $this->setVar($this->id, $this->db->getInsertId()); |
||||
| 127 | |||||
| 128 | return $this->db->getInsertId(); |
||||
| 129 | } |
||||
| 130 | |||||
| 131 | return $this->getVar($this->id); |
||||
| 132 | } |
||||
| 133 | |||||
| 134 | /** |
||||
| 135 | * @param $campo |
||||
| 136 | * @param $valor |
||||
| 137 | * @param null $criterio |
||||
|
0 ignored issues
–
show
|
|||||
| 138 | * |
||||
| 139 | * @return bool |
||||
| 140 | */ |
||||
| 141 | public function atualizaTodos($campo, $valor, $criterio = null) |
||||
| 142 | { |
||||
| 143 | $set_clause = is_numeric($valor) ? $campo . ' = ' . $valor : $campo . ' = ' . $this->db->quoteString($valor); |
||||
| 144 | $sql = 'UPDATE ' . $this->tabela . ' SET ' . $set_clause; |
||||
| 145 | if (isset($criterio) && $criterio instanceof \CriteriaElement) { |
||||
| 146 | $sql .= ' ' . $criterio->renderWhere(); |
||||
|
0 ignored issues
–
show
The method
renderWhere() does not exist on CriteriaElement. Did you maybe mean render()?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
|
|||||
| 147 | } |
||||
| 148 | if (!$result = $this->db->query($sql)) { |
||||
|
0 ignored issues
–
show
|
|||||
| 149 | return false; |
||||
| 150 | } |
||||
| 151 | |||||
| 152 | return true; |
||||
| 153 | } |
||||
| 154 | |||||
| 155 | /** |
||||
| 156 | * @return bool |
||||
| 157 | */ |
||||
| 158 | public function delete() |
||||
| 159 | { |
||||
| 160 | $sql = sprintf('DELETE FROM `%s` WHERE ' . $this->id . ' = %u', $this->tabela, $this->getVar($this->id)); |
||||
|
0 ignored issues
–
show
It seems like
$this->getVar($this->id) can also be of type array and array; however, parameter $args of sprintf() does only seem to accept string, maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 161 | if (!$this->db->query($sql)) { |
||||
| 162 | return false; |
||||
| 163 | } |
||||
| 164 | $this->afetadas = $this->db->getAffectedRows(); |
||||
| 165 | |||||
| 166 | return true; |
||||
| 167 | } |
||||
| 168 | |||||
| 169 | /** |
||||
| 170 | * @param null $criterio |
||||
|
0 ignored issues
–
show
|
|||||
| 171 | * |
||||
| 172 | * @return bool |
||||
| 173 | */ |
||||
| 174 | public function deletaTodos($criterio = null) |
||||
| 175 | { |
||||
| 176 | $sql = 'DELETE FROM ' . $this->tabela; |
||||
| 177 | if (isset($criterio) && $criterio instanceof \CriteriaElement) { |
||||
| 178 | $sql .= ' ' . $criterio->renderWhere(); |
||||
| 179 | } |
||||
| 180 | if (!$result = $this->db->query($sql)) { |
||||
|
0 ignored issues
–
show
|
|||||
| 181 | return false; |
||||
| 182 | } |
||||
| 183 | $this->afetadas = $this->db->getAffectedRows(); |
||||
| 184 | |||||
| 185 | return true; |
||||
| 186 | } |
||||
| 187 | |||||
| 188 | /** |
||||
| 189 | * @param $id |
||||
| 190 | * |
||||
| 191 | * @return bool |
||||
| 192 | */ |
||||
| 193 | public function load($id) |
||||
| 194 | { |
||||
| 195 | $sql = 'SELECT * FROM ' . $this->tabela . ' WHERE ' . $this->id . '=' . $id . ' LIMIT 1'; |
||||
| 196 | $myrow = $this->db->fetchArray($this->db->query($sql)); |
||||
| 197 | if ($myrow && is_array($myrow)) { |
||||
| 198 | $this->assignVars($myrow); |
||||
| 199 | |||||
| 200 | return true; |
||||
| 201 | } |
||||
| 202 | |||||
| 203 | return false; |
||||
| 204 | } |
||||
| 205 | |||||
| 206 | /** |
||||
| 207 | * @param null $criterio |
||||
|
0 ignored issues
–
show
|
|||||
| 208 | * @param bool $objeto |
||||
| 209 | * @param null $join |
||||
|
0 ignored issues
–
show
|
|||||
| 210 | * |
||||
| 211 | * @return array|bool |
||||
| 212 | */ |
||||
| 213 | public function pegaTudo($criterio = null, $objeto = true, $join = null) |
||||
| 214 | { |
||||
| 215 | $ret = []; |
||||
| 216 | $limit = $start = 0; |
||||
| 217 | $classe = get_class($this); |
||||
| 218 | if (!$objeto) { |
||||
| 219 | $sql = 'SELECT ' . $this->id . ' FROM ' . $this->tabela; |
||||
| 220 | if (isset($criterio) && $criterio instanceof \CriteriaElement) { |
||||
| 221 | $sql .= ' ' . $criterio->renderWhere(); |
||||
| 222 | if ('' !== $criterio->getSort()) { |
||||
| 223 | $sql .= ' ORDER BY ' . $criterio->getSort() . ' ' . $criterio->getOrder(); |
||||
| 224 | } |
||||
| 225 | $limit = $criterio->getLimit(); |
||||
| 226 | $start = $criterio->getStart(); |
||||
| 227 | } |
||||
| 228 | $result = $this->db->query($sql, $limit, $start); |
||||
| 229 | $this->total = $this->db->getRowsNum($result); |
||||
| 230 | if ($this->total > 0) { |
||||
| 231 | while (false !== ($myrow = $this->db->fetchArray($result))) { |
||||
| 232 | $ret[] = $myrow[$this->id]; |
||||
| 233 | } |
||||
| 234 | |||||
| 235 | return $ret; |
||||
| 236 | } |
||||
| 237 | |||||
| 238 | return false; |
||||
| 239 | } |
||||
| 240 | $sql = 'SELECT ' . $this->tabela . '.* FROM ' . $this->tabela . (!empty($join) ? ' ' . $join : ''); |
||||
| 241 | if (isset($criterio) && $criterio instanceof \CriteriaElement) { |
||||
| 242 | $sql .= ' ' . $criterio->renderWhere(); |
||||
| 243 | if ('' !== $criterio->getSort()) { |
||||
| 244 | $sql .= ' ORDER BY ' . $criterio->getSort() . ' ' . $criterio->getOrder(); |
||||
| 245 | } |
||||
| 246 | $limit = $criterio->getLimit(); |
||||
| 247 | $start = $criterio->getStart(); |
||||
| 248 | } |
||||
| 249 | $result = $this->db->query($sql, $limit, $start); |
||||
| 250 | $this->total = $this->db->getRowsNum($result); |
||||
| 251 | if ($this->total > 0) { |
||||
| 252 | while (false !== ($myrow = $this->db->fetchArray($result))) { |
||||
| 253 | $ret[] = new $classe($myrow); |
||||
| 254 | } |
||||
| 255 | |||||
| 256 | return $ret; |
||||
| 257 | } |
||||
| 258 | |||||
| 259 | return false; |
||||
| 260 | } |
||||
| 261 | |||||
| 262 | /** |
||||
| 263 | * @param $url |
||||
| 264 | * @param $campos |
||||
| 265 | * |
||||
| 266 | * @return string |
||||
| 267 | */ |
||||
| 268 | public function administracao($url, $campos) |
||||
| 269 | { |
||||
| 270 | $criterio = new \CriteriaCompo(); |
||||
| 271 | if (!empty($campos['precrit']['campo']) && !empty($campos['precrit']['valor'])) { |
||||
| 272 | $precrit_hidden = ''; |
||||
| 273 | $precrit_url = ''; |
||||
| 274 | foreach ($campos['precrit']['campo'] as $k => $v) { |
||||
| 275 | $hiddens[$v] = $campos['precrit']['valor'][$k]; |
||||
| 276 | $criterio->add(new \Criteria($v, $campos['precrit']['valor'][$k], '=', $this->tabela)); |
||||
| 277 | $precrit_hidden .= "<input type='hidden' name='" . $v . "' value='" . $campos['precrit']['valor'][$k] . "'>"; |
||||
| 278 | $precrit_url .= '&' . $v . '=' . $campos['precrit']['valor'][$k]; |
||||
| 279 | } |
||||
| 280 | } else { |
||||
| 281 | $precrit_hidden = ''; |
||||
| 282 | $precrit_url = ''; |
||||
| 283 | } |
||||
| 284 | if (!empty($campos['checks']) && Request::hasVar('group_action', 'POST') && is_array(Request::getArray('checks', '', 'POST')) |
||||
| 285 | && 'group_del_ok' === Request::getString('group_action', '', 'POST')) { |
||||
| 286 | $chks = Request::getArray('checks', [], 'POST'); |
||||
| 287 | $classe = get_class($this); |
||||
| 288 | foreach ($chks as $k => $v) { |
||||
| 289 | $nova = new $classe($k); |
||||
| 290 | if (!empty($campos['group_del_function']) && is_array($campos['group_del_function'])) { |
||||
| 291 | foreach ($campos['group_del_function'] as $k => $v) { |
||||
|
0 ignored issues
–
show
|
|||||
| 292 | $nova->$v(); |
||||
| 293 | } |
||||
| 294 | } |
||||
| 295 | $nova->delete(); |
||||
| 296 | } |
||||
| 297 | } |
||||
| 298 | if (!empty($campos['checks']) && Request::hasVar('group_action', 'POST') |
||||
| 299 | && 'group_del' === Request::getString('group_action', '', 'POST') |
||||
| 300 | && is_array(Request::getArray('checks', '', 'POST'))) { |
||||
| 301 | $chks = Request::getArray('checks', [], 'POST'); |
||||
| 302 | foreach ($chks as $k => $v) { |
||||
| 303 | $hiddens['checks[' . $k . ']'] = 1; |
||||
| 304 | } |
||||
| 305 | $hiddens['op'] = $campos['op']; |
||||
| 306 | $hiddens['group_action'] = 'group_del_ok'; |
||||
| 307 | |||||
| 308 | return xoops_confirm($hiddens, $url, $campos['lang']['group_del_sure'], _SUBMIT) . '<br>'; |
||||
|
0 ignored issues
–
show
Are you sure
xoops_confirm($hiddens, ...ules\Mastopgo2\_SUBMIT) of type void can be used in concatenation?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
Are you sure the usage of
xoops_confirm($hiddens, ...ules\Mastopgo2\_SUBMIT) is correct as it seems to always return null.
This check looks for function or method calls that always return null and whose return value is used. class A
{
function getObject()
{
return null;
}
}
$a = new A();
if ($a->getObject()) {
The method The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes. Loading history...
|
|||||
| 309 | } |
||||
| 310 | $busca_url = ''; |
||||
| 311 | if (Request::hasVar('busca', 'GET')) { |
||||
| 312 | foreach (Request::getArray('busca', [], 'GET') as $k => $v) { |
||||
| 313 | if ('' !== $v && '-1' != $v && in_array($k, $campos['nome'])) { |
||||
| 314 | if (is_numeric($v)) { |
||||
| 315 | $criterio->add(new \Criteria($k, $v, '=', $this->tabela)); |
||||
| 316 | } elseif (is_array($v)) { |
||||
| 317 | if (!empty($v['dday']) || !empty($v['dmonth']) || !empty($v['dyear']) || !empty($v['aday']) |
||||
| 318 | || !empty($v['amonth']) |
||||
| 319 | || !empty($v['ayear'])) { |
||||
| 320 | $dday = !empty($v['dday']) ? $v['dday'] : 1; |
||||
|
0 ignored issues
–
show
|
|||||
| 321 | $dmonth = !empty($v['dmonth']) ? $v['dmonth'] : 1; |
||||
|
0 ignored issues
–
show
|
|||||
| 322 | $dyear = !empty($v['dyear']) ? $v['dyear'] : 1; |
||||
|
0 ignored issues
–
show
|
|||||
| 323 | $aday = !empty($v['aday']) ? $v['aday'] : 1; |
||||
|
0 ignored issues
–
show
|
|||||
| 324 | $amonth = !empty($v['amonth']) ? $v['dmonth'] : 1; |
||||
|
0 ignored issues
–
show
|
|||||
| 325 | $ayear = !empty($v['ayear']) ? $v['ayear'] : date('Y'); |
||||
|
0 ignored issues
–
show
|
|||||
| 326 | $ddate = mktime(0, 0, 0, $v['dmonth'], $v['dday'], $v['dyear']); |
||||
| 327 | $adate = mktime(0, 0, 0, $v['amonth'], $v['aday'], $v['ayear']); |
||||
| 328 | $criterio->add(new \Criteria($k, $ddate, '>=', $this->tabela)); |
||||
| 329 | $criterio->add(new \Criteria($k, $adate, '<=', $this->tabela)); |
||||
| 330 | } |
||||
| 331 | } else { |
||||
| 332 | $criterio->add(new \Criteria($k, "%$v%", 'LIKE', $this->tabela)); |
||||
| 333 | } |
||||
| 334 | $busca_url .= (!is_array($v)) ? '&busca[' . $k . ']=' . $v : '&busca[' |
||||
| 335 | . $k |
||||
| 336 | . '][dday]=' |
||||
| 337 | . $v['dday'] |
||||
| 338 | . '&busca[' |
||||
| 339 | . $k |
||||
| 340 | . '][dmonth]=' |
||||
| 341 | . $v['dmonth'] |
||||
| 342 | . '&busca[' |
||||
| 343 | . $k |
||||
| 344 | . '][dyear]=' |
||||
| 345 | . $v['dyear'] |
||||
| 346 | . '&busca[' |
||||
| 347 | . $k |
||||
| 348 | . '][aday]=' |
||||
| 349 | . $v['aday'] |
||||
| 350 | . '&busca[' |
||||
| 351 | . $k |
||||
| 352 | . '][amonth]=' |
||||
| 353 | . $v['amonth'] |
||||
| 354 | . '&busca[' |
||||
| 355 | . $k |
||||
| 356 | . '][ayear]=' |
||||
| 357 | . $v['ayear']; |
||||
| 358 | } |
||||
| 359 | } |
||||
| 360 | } |
||||
| 361 | $limit = (Request::hasVar('limit', 'GET') && Request::getInt('limit', 0, 'GET') <= 100) ? Request::getInt('limit', 0, 'GET') : 15; |
||||
| 362 | $criterio->setLimit($limit); |
||||
| 363 | $start = Request::getInt('start', 0, 'GET'); |
||||
| 364 | $criterio->setStart($start); |
||||
| 365 | $order = Request::getInt('order', 'DESC', 'GET'); |
||||
|
0 ignored issues
–
show
'DESC' of type string is incompatible with the type integer expected by parameter $default of Xmf\Request::getInt().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 366 | $criterio->setOrder($order); |
||||
| 367 | $sort = (Request::hasVar('sort', 'GET') |
||||
| 368 | && in_array(Request::getString('sort', '', 'GET'), $campos['nome'])) ? $_GET['sort'] : (empty($campos['sort']) ? $campos['nome'][1] : $campos['sort']); |
||||
| 369 | $criterio->setSort($sort); |
||||
| 370 | $form = !empty($campos['form']) ? 1 : 0; |
||||
| 371 | $checks = !empty($campos['checks']) ? 1 : 0; |
||||
| 372 | $op = !empty($campos['op']) ? $campos['op'] : ''; |
||||
| 373 | $norder = ('ASC' === $order) ? 'DESC' : 'ASC'; |
||||
|
0 ignored issues
–
show
|
|||||
| 374 | $colunas = count($campos['rotulo']); |
||||
| 375 | $colunas = !empty($campos['checks']) ? $colunas + 1 : $colunas; |
||||
| 376 | $colunas = !empty($campos['botoes']) ? $colunas + 1 : $colunas; |
||||
| 377 | $url_colunas = $url . '?op=' . $op . '&limit=' . $limit . '&start=' . $start . $busca_url . $precrit_url; |
||||
| 378 | $url_full_pg = $url . '?op=' . $op . '&limit=' . $limit . '&sort=' . $sort . '&order=' . $order . $busca_url . $precrit_url; |
||||
| 379 | $contar = $this->contar($criterio); |
||||
| 380 | $ret = '<style type="text/css"> |
||||
| 381 | .hd {background-color: #c2cdd6; padding: 5px; font-weight: bold;} |
||||
| 382 | tr.bx td {background-color: #DFDFDF; padding: 5px; font-weight: bold; color: #000000;} |
||||
| 383 | tr.hd td {background-image:url("../assets/images/bg.gif"); padding: 5px; font-weight: bold; border:1px solid #C0C0C0; color: #000000;} |
||||
| 384 | tr.hd td.hds {background-image:url("../assets/images/bgs.gif"); padding: 5px; font-weight: bolder; border:1px solid #C0C0C0; border-top: 1px solid #000000; color: #000000;} |
||||
| 385 | tr.hd td a{color: #1D5F9F;} |
||||
| 386 | .fundo1 {background-color: #DFDFDF; padding: 4px;} |
||||
| 387 | tr.fundo1 td {background-color: #DFDFDF; padding: 4px; border:1px solid #C0C0C0;} |
||||
| 388 | .fundo2 {background-color: #E0E8EF; padding: 4px;} |
||||
| 389 | tr.fundo2 td {background-color: #E0E8EF; padding: 4px; border:1px solid #C0C0C0;} |
||||
| 390 | .neutro {background-color: #FFFFFF; padding: 4px;} |
||||
| 391 | tr.neutro td {background-color: #FFFFFF; padding: 4px; border:1px solid #9FD4FF;} |
||||
| 392 | </style> |
||||
| 393 | <script language="javascript" type="text/javascript"> |
||||
| 394 | function exibe_esconde(tipo) { |
||||
| 395 | var coisinha = document.getElementById(tipo); |
||||
| 396 | if (coisinha.style.display == "") { |
||||
| 397 | coisinha.style.display = "none"; |
||||
| 398 | } else { |
||||
| 399 | coisinha.style.display = ""; |
||||
| 400 | } |
||||
| 401 | } |
||||
| 402 | |||||
| 403 | function esconde_menus() { |
||||
| 404 | var els = document.getElementsByTagName("TD"); |
||||
| 405 | var elsLen = els.length; |
||||
| 406 | var pattern = new RegExp("(^|\\s)bg5(\\s|$)"); |
||||
| 407 | for (i = 0, j = 0; i < elsLen; i++) { |
||||
| 408 | if (pattern.test(els[i].className) && els[i].colSpan != 3 && els[i].colSpan != 4) { |
||||
| 409 | if (els[i].style.display=="") { |
||||
| 410 | els[i].style.display="none"; |
||||
| 411 | } else { |
||||
| 412 | els[i].style.display=""; |
||||
| 413 | } |
||||
| 414 | } |
||||
| 415 | } |
||||
| 416 | } |
||||
| 417 | |||||
| 418 | function changecheck() { |
||||
| 419 | var f = document.getElementById("update_form"); |
||||
| 420 | var inputs = document.getElementsByTagName("input"); |
||||
| 421 | for (var t = 0;t < inputs.length;t++) { |
||||
| 422 | if (inputs[t].type == "checkbox" && inputs[t].id != "checkAll") { |
||||
| 423 | inputs[t].checked = !inputs[t].checked; |
||||
| 424 | inputs[t].onclick(); |
||||
| 425 | } |
||||
| 426 | } |
||||
| 427 | |||||
| 428 | return true; |
||||
| 429 | }' . ($checks ? ' |
||||
| 430 | |||||
| 431 | function verificaChecks() { |
||||
| 432 | var grp_sel = document.getElementById("group_action"); |
||||
| 433 | if(grp_sel.options[grp_sel.selectedIndex].value == 0) return true; |
||||
| 434 | var inputs = document.getElementsByTagName("input"); |
||||
| 435 | for (var t = 0;t < inputs.length;t++) { |
||||
| 436 | if(inputs[t].type == "checkbox" && inputs[t].checked === true) return true; |
||||
| 437 | } |
||||
| 438 | alert("' . $campos['lang']['group_erro_sel'] . '"); |
||||
| 439 | |||||
| 440 | return false; |
||||
| 441 | } |
||||
| 442 | |||||
| 443 | function marcaCheck(linha, ckbx, classe) { |
||||
| 444 | var tr = document.getElementById(linha); |
||||
| 445 | var valor = document.getElementById(ckbx).checked; |
||||
| 446 | //alert(tr.onmouseout); |
||||
| 447 | if (valor === true) { |
||||
| 448 | tr.className = "neutro"; |
||||
| 449 | tr.onmouseout = function(){}; |
||||
| 450 | |||||
| 451 | return true; |
||||
| 452 | } else { |
||||
| 453 | tr.className = classe; |
||||
| 454 | tr.onmouseout = function(){this.className=classe}; |
||||
| 455 | |||||
| 456 | return true; |
||||
| 457 | } |
||||
| 458 | } |
||||
| 459 | </script>' : '</script>'); |
||||
| 460 | |||||
| 461 | $ret .= !empty($campos['noadminmenu']) ? ' |
||||
| 462 | <script language="javascript" type="text/javascript"> |
||||
| 463 | if (window.addEventListener) window.addEventListener("load", esconde_menus, false) else if (window.attachEvent) window.attachEvent("onload", esconde_menus) |
||||
| 464 | </script>' : ''; |
||||
| 465 | |||||
| 466 | global $pathIcon16; |
||||
| 467 | |||||
| 468 | $ret .= ' |
||||
| 469 | <table width="100%" border="0" cellspacing="0" class="outer"> |
||||
| 470 | <tr><td style="padding:5px; font-size:16px; border: 1px solid #C0C0C0; border-bottom:0px;"><div style="font-size:12px; text-align:right; float:right;">' . (empty($campos['nofilters']) ? '<a href="javascript:void(0);" onclick="exibe_esconde(\'busca\');">' |
||||
| 471 | . $campos['lang']['filtros'] |
||||
| 472 | . '</a>' |
||||
| 473 | // .' - <a href="javascript:void(0);" onclick="esconde_menus();">' |
||||
| 474 | // . $campos['lang']['showhidemenu'] |
||||
| 475 | // . '</a>' |
||||
| 476 | . '' : '') . '</div><b>' . $campos['lang']['titulo'] . '</b></td></tr> |
||||
| 477 | <tr><td class="outer" style="background-color: #F3F2F2;"><div style="text-align: center;">'; |
||||
| 478 | $ret .= "<form action='" |
||||
| 479 | . $url |
||||
| 480 | . "' method='GET' name='form_npag'>" |
||||
| 481 | . $precrit_hidden |
||||
| 482 | . '<b>' |
||||
| 483 | . $campos['lang']['exibir'] |
||||
| 484 | . " <input type='text' name='limit' value='" |
||||
| 485 | . $limit |
||||
| 486 | . "' size='4' maxlength='3' style='text-align:center'> " |
||||
| 487 | . $campos['lang']['por_pagina'] |
||||
| 488 | . '</b>'; |
||||
| 489 | if (Request::hasVar('busca', 'GET')) { |
||||
| 490 | foreach (Request::getArray('busca', [], 'GET') as $k => $v) { |
||||
| 491 | if ('' !== $v && '-1' != $v && !is_array($v)) { |
||||
| 492 | $ret .= "<input type='hidden' name='busca[" . $k . "]' value='" . $v . "'>"; |
||||
| 493 | } elseif (is_array($v)) { |
||||
| 494 | $ret .= "<input type='hidden' name='busca[" . $k . "][dday]' value='" . $v['dday'] . "'>"; |
||||
| 495 | $ret .= "<input type='hidden' name='busca[" . $k . "][dmonth]' value='" . $v['dmonth'] . "'>"; |
||||
| 496 | $ret .= "<input type='hidden' name='busca[" . $k . "][dyear]' value='" . $v['dyear'] . "'>"; |
||||
| 497 | $ret .= "<input type='hidden' name='busca[" . $k . "][aday]' value='" . $v['aday'] . "'>"; |
||||
| 498 | $ret .= "<input type='hidden' name='busca[" . $k . "][amonth]' value='" . $v['amonth'] . "'>"; |
||||
| 499 | $ret .= "<input type='hidden' name='busca[" . $k . "][ayear]' value='" . $v['ayear'] . "'>"; |
||||
| 500 | } |
||||
| 501 | } |
||||
| 502 | } |
||||
| 503 | $ret .= "<input type='hidden' name='op' value='" . $op . "'><input type='hidden' name='sort' value='" . $sort . "'><input type='hidden' name='order' value='" . $order . "'>"; |
||||
| 504 | $ret .= " <input type='image' src='../assets/images/envia.gif' style='border:0; background-color:transparent' align='absmiddle'></form>"; |
||||
| 505 | $ret .= "<table width='100%' border='0' cellspacing='0'>"; |
||||
| 506 | $ret .= "<tbody><tr><td colspan='" . $colunas . "' align='right'>" . sprintf($campos['lang']['exibindo'], $start + 1, ((($start + $limit) < $contar) ? $start + $limit : $contar), $contar) . '</td></tr></tbody>'; |
||||
| 507 | $ret .= "<tbody><tr class='hd'>"; |
||||
| 508 | $ret .= $checks ? "<td align='center'><input type='checkbox' name='checkAll' id='checkAll' onclick='changecheck();'></td>" : ''; |
||||
| 509 | foreach ($campos['rotulo'] as $k => $v) { |
||||
| 510 | $ret .= "<td nowrap='nowrap' align='center' " . (($sort == $campos['nome'][$k] |
||||
| 511 | && empty($campos['nosort'][$k])) ? "class='hds'" : '') . '>' . (empty($campos['nosort'][$k]) ? "<A HREF='" |
||||
| 512 | . $url_colunas |
||||
| 513 | . '&sort=' |
||||
| 514 | . $campos['nome'][$k] |
||||
| 515 | . '&order=' |
||||
| 516 | . $norder |
||||
| 517 | . "'>" |
||||
| 518 | . $v |
||||
| 519 | . ' ' |
||||
| 520 | . (($sort |
||||
| 521 | == $campos['nome'][$k]) ? '<img src=' |
||||
| 522 | . $pathIcon16 |
||||
| 523 | . '/' |
||||
| 524 | . $order |
||||
| 525 | . ".png align='absmiddle'>" : '') |
||||
| 526 | . '</a></td>' : $v . '</td>'); |
||||
| 527 | } |
||||
| 528 | $ret .= !empty($campos['botoes']) ? "<td align='center'>" . $campos['lang']['acao'] . '</td>' : ''; |
||||
| 529 | $ret .= '</tr></tbody>'; |
||||
| 530 | if (empty($campos['nofilters'])) { |
||||
| 531 | $ret .= "<form action='" . $url . "' method='GET' name='form_busca'><tbody><tr id='busca' " . (Request::hasVar('busca', 'GET') ? '' : "style='display:none'") . " class='neutro'>"; |
||||
| 532 | $ret .= $checks ? '<td> </td>' : ''; |
||||
| 533 | foreach ($campos['rotulo'] as $k => $v) { |
||||
| 534 | $ret .= "<td align='center' nowrap='nowrap'>"; |
||||
| 535 | switch ($campos['tipo'][$k]) { |
||||
| 536 | case 'none': |
||||
| 537 | break; |
||||
| 538 | case 'date': |
||||
| 539 | $ret .= "<input type='text' name='busca[" |
||||
| 540 | . $campos['nome'][$k] |
||||
| 541 | . "][dday]' size='2' maxlength='2' value=" |
||||
| 542 | . (Request::hasVar('busca', 'GET')[$campos['nome'][$k]]['dday'] ? Request::getArray('busca', [], 'GET')[$campos['nome'][$k]]['dday'] : '') |
||||
| 543 | . "> <input type='text' name='busca[" |
||||
| 544 | . $campos['nome'][$k] |
||||
| 545 | . "][dmonth]' size='2' maxlength='2' value=" |
||||
| 546 | . (Request::hasVar('busca', 'GET')[$campos['nome'][$k]]['dmonth'] ? Request::getArray('busca', [], 'GET')[$campos['nome'][$k]]['dmonth'] : '') |
||||
| 547 | . "> <input type='text' name='busca[" |
||||
| 548 | . $campos['nome'][$k] |
||||
| 549 | . "][dyear]' size='2' maxlength='4' value=" |
||||
| 550 | . (Request::hasVar('busca', 'GET')[$campos['nome'][$k]]['dyear'] ? Request::getArray('busca', [], 'GET')[$campos['nome'][$k]]['dyear'] : '') |
||||
| 551 | . '><br>'; |
||||
| 552 | $ret .= "<input type='text' name='busca[" |
||||
| 553 | . $campos['nome'][$k] |
||||
| 554 | . "][aday]' size='2' maxlength='2' value=" |
||||
| 555 | . (Request::hasVar('busca', 'GET')[$campos['nome'][$k]]['aday'] ? Request::getArray('busca', [], 'GET')[$campos['nome'][$k]]['aday'] : '') |
||||
| 556 | . "> <input type='text' name='busca[" |
||||
| 557 | . $campos['nome'][$k] |
||||
| 558 | . "][amonth]' size='2' maxlength='2' value=" |
||||
| 559 | . (Request::hasVar('busca', 'GET')[$campos['nome'][$k]]['amonth'] ? Request::getArray('busca', [], 'GET')[$campos['nome'][$k]]['amonth'] : '') |
||||
| 560 | . "> <input type='text' name='busca[" |
||||
| 561 | . $campos['nome'][$k] |
||||
| 562 | . "][ayear]' size='2' maxlength='4' value=" |
||||
| 563 | . (Request::hasVar('busca', 'GET')[$campos['nome'][$k]]['ayear'] ? Request::getArray('busca', [], 'GET')[$campos['nome'][$k]]['ayear'] : '') |
||||
| 564 | . '>'; |
||||
| 565 | break; |
||||
| 566 | case 'select': |
||||
| 567 | $ret .= "<select name='busca[" . $campos['nome'][$k] . "]'><option value='-1'>" . _SELECT . '</option>'; |
||||
| 568 | foreach ($campos['options'][$k] as $x => $y) { |
||||
| 569 | $ret .= "<option value='" . $x . "'"; |
||||
| 570 | $ret .= (isset(Request::getArray('busca', [], 'GET') [$campos['nome'][$k]]) |
||||
| 571 | && Request::getArray('busca', [], 'GET') [$campos['nome'][$k]] == $x) ? ' selected' : ''; |
||||
| 572 | $ret .= '>' . $y . '</option>'; |
||||
| 573 | } |
||||
| 574 | $ret .= '</select>'; |
||||
| 575 | break; |
||||
| 576 | case 'simnao': |
||||
| 577 | $ret .= "<select name='busca[" . $campos['nome'][$k] . "]'><option value='-1'>" . _SELECT . '</option>'; |
||||
| 578 | $ret .= "<option value='1'"; |
||||
| 579 | $ret .= (isset(Request::getArray('busca', [], 'GET') [$campos['nome'][$k]]) |
||||
| 580 | && 1 == Request::getArray('busca', [], 'GET') [$campos['nome'][$k]]) ? ' selected' : ''; |
||||
| 581 | $ret .= '>' . _YES . '</option>'; |
||||
| 582 | $ret .= "<option value='0'"; |
||||
| 583 | $ret .= (isset(Request::getArray('busca', [], 'GET') [$campos['nome'][$k]]) |
||||
| 584 | && 0 == Request::getArray('busca', [], 'GET') [$campos['nome'][$k]]) ? ' selected' : ''; |
||||
| 585 | $ret .= '>' . _NO . '</option>'; |
||||
| 586 | $ret .= '</select>'; |
||||
| 587 | break; |
||||
| 588 | case 'text': |
||||
| 589 | default: |
||||
| 590 | $ret .= "<input type='text' name='busca[" |
||||
| 591 | . $campos['nome'][$k] |
||||
| 592 | . "]' value='" |
||||
| 593 | . (isset(Request::getArray('busca', [], 'GET') [$campos['nome'][$k]]) ? Request::getArray('busca', [], 'GET') [$campos['nome'][$k]] : '') |
||||
| 594 | . "' size='" |
||||
| 595 | . (isset($campos['tamanho'][$k]) ? $campos['tamanho'][$k] : 20) |
||||
| 596 | . "'>"; |
||||
| 597 | } |
||||
| 598 | if (empty($campos['botoes']) && $k == count($campos['rotulo'])) { |
||||
| 599 | $ret .= " <input type='image' src='../assets/images/envia.gif' style='border:0; background-color:transparent' align='absmiddle'>"; |
||||
| 600 | } |
||||
| 601 | $ret .= '</td>'; |
||||
| 602 | } |
||||
| 603 | $ret .= !empty($campos['botoes']) ? "<td align='center'><input type='image' src='../assets/images/envia.gif' style='border:0; background-color:transparent'></td>" : ''; |
||||
| 604 | $ret .= '</tr></tbody>'; |
||||
| 605 | $ret .= $precrit_hidden . "<input type='hidden' name='op' value='" . $op . "'><input type='hidden' name='sort' value='" . $sort . "'><input type='hidden' name='order' value='" . $order . "'><input type='hidden' name='limit' value='" . $limit . "'></form>"; |
||||
| 606 | } |
||||
| 607 | $registros = empty($campos['join']) ? $this->pegaTudo($criterio) : $this->pegaTudo($criterio, true, $campos['join']); |
||||
| 608 | if (!$registros || 0 == count($registros)) { |
||||
| 609 | $ret .= "<tbody><tr><td colspan='" . $colunas . "'><h2>" . $campos['lang']['semresult'] . '</h2></td></tr></tbody>'; |
||||
| 610 | $ret .= "<tbody><tr class='bx'><td colspan='" . $colunas . "' align='left'>" . $this->paginar($url_full_pg, $criterio, $precrit_url) . '</td></tr></tbody>'; |
||||
| 611 | } else { |
||||
| 612 | $ret .= ($form || $checks) ? "<form action='" . $url . "' method='POST' name='update_form' id='update_form' " . ($checks ? "onsubmit='return verificaChecks()'" : '') . '>' : ''; |
||||
| 613 | foreach ($registros as $reg) { |
||||
| 614 | $eod = (!isset($eod) || 'fundo1' === $eod) ? 'fundo2' : 'fundo1'; |
||||
| 615 | $ret .= "<tbody><tr id='tr_reg_" . $reg->getVar($reg->id) . "' class='" . $eod . "' onmouseover='this.className=\"neutro\";' onmouseout='this.className=\"" . $eod . "\"'>"; |
||||
| 616 | $ret .= $checks ? "<td align='center'><input type='checkbox' name='checks[" |
||||
| 617 | . $reg->getVar($reg->id) |
||||
| 618 | . "]' id='checks[" |
||||
| 619 | . $reg->getVar($reg->id) |
||||
| 620 | . "]' value='1' onclick='marcaCheck(\"tr_reg_" |
||||
| 621 | . $reg->getVar($reg->id) |
||||
| 622 | . '", "checks[' |
||||
| 623 | . $reg->getVar($reg->id) |
||||
| 624 | . ']", "' |
||||
| 625 | . $eod |
||||
| 626 | . "\");'></td>" : ''; |
||||
| 627 | foreach ($campos['rotulo'] as $l => $f) { |
||||
| 628 | $ret .= '<td>'; |
||||
| 629 | switch ($campos['tipo'][$l]) { |
||||
| 630 | case 'none': |
||||
| 631 | $ret .= empty($campos['show'][$l]) ? $reg->getVar($campos['nome'][$l]) : eval('return ' . $campos['show'][$l] . ';'); |
||||
|
0 ignored issues
–
show
|
|||||
| 632 | break; |
||||
| 633 | case 'date': |
||||
| 634 | $ret .= (!empty($campos['show'][$l]) ? eval('return ' . $campos['show'][$l] . ';') : ((0 != $reg->getVar($campos['nome'][$l]) |
||||
|
0 ignored issues
–
show
|
|||||
| 635 | && '' !== $reg->getVar($campos['nome'][$l])) ? date(_SHORTDATESTRING, $reg->getVar($campos['nome'][$l])) : '')); |
||||
| 636 | break; |
||||
| 637 | case 'select': |
||||
| 638 | if ($form && empty($campos['show'][$l])) { |
||||
| 639 | $ret .= "<select name='campos[" . $reg->getVar($reg->id) . '][' . $campos['nome'][$l] . "]'>"; |
||||
| 640 | foreach ($campos['options'][$l] as $x => $y) { |
||||
| 641 | $ret .= "<option value='" . $x . "'"; |
||||
| 642 | $ret .= ($reg->getVar($campos['nome'][$l]) == $x) ? ' selected' : ''; |
||||
| 643 | $ret .= '>' . $y . '</option>'; |
||||
| 644 | } |
||||
| 645 | $ret .= '</select>'; |
||||
| 646 | } elseif (!empty($campos['show'][$l])) { |
||||
| 647 | $ret .= eval('return ' . $campos['show'][$l] . ';'); |
||||
|
0 ignored issues
–
show
|
|||||
| 648 | } else { |
||||
| 649 | $ret .= isset($campos['options'][$l][$reg->getVar($campos['nome'][$l])]) ? $campos['options'][$l][$reg->getVar($campos['nome'][$l])] : $reg->getVar($campos['nome'][$l]); |
||||
| 650 | } |
||||
| 651 | break; |
||||
| 652 | case 'simnao': |
||||
| 653 | if ($form && empty($campos['show'][$l])) { |
||||
| 654 | $ret .= "<select name='campos[" . $reg->getVar($reg->id) . '][' . $campos['nome'][$l] . "]'>"; |
||||
| 655 | $ret .= "<option value='1'"; |
||||
| 656 | $ret .= (1 == $reg->getVar($campos['nome'][$l])) ? ' selected' : ''; |
||||
| 657 | $ret .= '>' . _YES . '</option>'; |
||||
| 658 | $ret .= "<option value='0'"; |
||||
| 659 | $ret .= (0 == $reg->getVar($campos['nome'][$l])) ? ' selected' : ''; |
||||
| 660 | $ret .= '>' . _NO . '</option>'; |
||||
| 661 | $ret .= '</select>'; |
||||
| 662 | } elseif (!empty($campos['show'][$l])) { |
||||
| 663 | $ret .= eval('return ' . $campos['show'][$l] . ';'); |
||||
|
0 ignored issues
–
show
|
|||||
| 664 | } else { |
||||
| 665 | $ret .= (1 == $reg->getVar($campos['nome'][$l])) ? _YES : ((0 == $reg->getVar($campos['nome'][$l])) ? _NO : $reg->getVar($campos['nome'][$l])); |
||||
| 666 | } |
||||
| 667 | break; |
||||
| 668 | case 'text': |
||||
| 669 | default: |
||||
| 670 | |||||
| 671 | // $bong = $campos['nome'][$l]; |
||||
| 672 | // $bong2 = $reg->getVar($campos['nome'][$l]); |
||||
| 673 | // echo $bong . '---- 1 <br><br>'; |
||||
| 674 | // echo $bong2 .'---- 2<br><br>'; |
||||
| 675 | // echo 'show: ' . $campos['show'][$l] . '---- 3<br><br><br>'; |
||||
| 676 | |||||
| 677 | $ret .= ($form && empty($campos['show'][$l])) ? ("<input type='text' name='campos[" |
||||
| 678 | . $reg->getVar($reg->id) |
||||
| 679 | . '][' |
||||
| 680 | . $campos['nome'][$l] |
||||
| 681 | . "]' value='" |
||||
| 682 | . $reg->getVar($campos['nome'][$l]) |
||||
| 683 | . "' size='" |
||||
| 684 | . (isset($campos['tamanho'][$l]) ? $campos['tamanho'][$l] : 20) |
||||
| 685 | . "'>") |
||||
| 686 | |||||
| 687 | : (!empty($campos['show'][$l]) ? eval('return ' . $campos['show'][$l] . ';') : $reg->getVar($campos['nome'][$l])); |
||||
|
0 ignored issues
–
show
|
|||||
| 688 | } |
||||
| 689 | |||||
| 690 | $ret .= '</td>'; |
||||
| 691 | } |
||||
| 692 | //$ret.= "<td nowrap='nowrap'><a href='".$url."?op=".$op."_editar&".$reg->id."=".$reg->getVar($reg->id)."'><img src='../assets/images/editar.gif'></a> <a href='".$url."?op=".$op."_deletar&".$reg->id."=".$reg->getVar($reg->id)."'><img src='../assets/images/deletar.gif'></a> ".((!empty($campos['print'])) ? "<a href='".$url."?op=".$op."_imprime&".$reg->id."=".$reg->getVar($reg->id)."' target='_blank'><img src='../assets/images/imprime.gif'></a>" : ''); |
||||
| 693 | if (!empty($campos['botoes'])) { |
||||
| 694 | $ret .= "<td nowrap='nowrap'>"; |
||||
| 695 | if (is_array($campos['botoes'])) { |
||||
| 696 | foreach ($campos['botoes'] as $b) { |
||||
| 697 | $ret .= "<a href='" . $b['link'] . '&' . $reg->id . '=' . $reg->getVar($reg->id) . "' title='" . $b['texto'] . "'><img src='" . $b['imagem'] . "' alt='" . $b['texto'] . "'></a> "; |
||||
| 698 | } |
||||
| 699 | } |
||||
| 700 | $ret .= '</td>'; |
||||
| 701 | } |
||||
| 702 | $ret .= '</tr></tbody>'; |
||||
| 703 | } |
||||
| 704 | if ($form || $checks) { |
||||
| 705 | $ret .= "<tbody><tr><td colspan='" . $colunas . "'>"; |
||||
| 706 | $ret .= $precrit_hidden . "<input type='hidden' name='sort' value='" . $sort . "'><input type='hidden' name='order' value='" . $order . "'><input type='hidden' name='limit' value='" . $limit . "'><input type='hidden' name='start' value='" . $start . "'>"; |
||||
| 707 | if (Request::hasVar('busca', 'GET')) { |
||||
| 708 | foreach (Request::getArray('busca', [], 'GET') as $k => $v) { |
||||
| 709 | if ('' !== $v && '-1' != $v && !is_array($v)) { |
||||
| 710 | $ret .= "<input type='hidden' name='busca[" . $k . "]' value='" . $v . "'>"; |
||||
| 711 | } elseif (is_array($v)) { |
||||
| 712 | $ret .= "<input type='hidden' name='busca[" . $k . "][dday]' value='" . $v['dday'] . "'>"; |
||||
| 713 | $ret .= "<input type='hidden' name='busca[" . $k . "][dmonth]' value='" . $v['dmonth'] . "'>"; |
||||
| 714 | $ret .= "<input type='hidden' name='busca[" . $k . "][dyear]' value='" . $v['dyear'] . "'>"; |
||||
| 715 | $ret .= "<input type='hidden' name='busca[" . $k . "][aday]' value='" . $v['aday'] . "'>"; |
||||
| 716 | $ret .= "<input type='hidden' name='busca[" . $k . "][amonth]' value='" . $v['amonth'] . "'>"; |
||||
| 717 | $ret .= "<input type='hidden' name='busca[" . $k . "][ayear]' value='" . $v['ayear'] . "'>"; |
||||
| 718 | } |
||||
| 719 | } |
||||
| 720 | } |
||||
| 721 | $ret .= "<input type='hidden' name='op' value='" . $op . "'> <br>"; |
||||
| 722 | if ($checks) { |
||||
| 723 | $ret .= $campos['lang']['group_action'] . " <select name='group_action' id='group_action'><option value='0'>" . _SELECT . '</option>'; |
||||
| 724 | $ret .= !empty($campos['group_del']) ? "<option value='group_del'>" . $campos['lang']['group_del'] . '</option>' : ''; |
||||
| 725 | if (!empty($campos['group_action'])) { |
||||
| 726 | foreach ($campos['group_action'] as $grp) { |
||||
| 727 | $ret .= "<option value='" . $grp['valor'] . "'>" . $grp['texto'] . '</option>'; |
||||
| 728 | } |
||||
| 729 | } |
||||
| 730 | $ret .= '</select> '; |
||||
| 731 | } |
||||
| 732 | $ret .= "<input type='submit' value='" . _SUBMIT . "'><br> </td></tr></tbody></form>"; |
||||
| 733 | } |
||||
| 734 | $ret .= !empty($campos['soma']) ? "<tbody><tr class='bx'><td colspan='" . $colunas . "' align='right'>Total: R$ " . number_format($this->soma($criterio, $campos['soma']), 2, ',', '.') . '</td></tr></tbody>' : ''; |
||||
| 735 | $ret .= "<tbody><tr class='bx'><td colspan='" . $colunas . "' align='left'>" . $this->paginar($url_full_pg, $criterio, $precrit_url) . '</td></tr></tbody>'; |
||||
| 736 | } |
||||
| 737 | $ret .= '</table></div></td></tr></table><br>'; |
||||
| 738 | |||||
| 739 | return $ret; |
||||
| 740 | } |
||||
| 741 | |||||
| 742 | /** |
||||
| 743 | * @param null $criterio |
||||
|
0 ignored issues
–
show
|
|||||
| 744 | * |
||||
| 745 | * @return int |
||||
| 746 | */ |
||||
| 747 | public function contar($criterio = null) |
||||
| 748 | { |
||||
| 749 | $sql = 'SELECT COUNT(*) FROM ' . $this->tabela; |
||||
| 750 | if (isset($criterio) && $criterio instanceof \CriteriaElement) { |
||||
| 751 | $sql .= ' ' . $criterio->renderWhere(); |
||||
| 752 | } |
||||
| 753 | $result = $this->db->query($sql); |
||||
| 754 | if (!$result) { |
||||
| 755 | return 0; |
||||
| 756 | } |
||||
| 757 | list($count) = $this->db->fetchRow($result); |
||||
| 758 | |||||
| 759 | return $count; |
||||
| 760 | } |
||||
| 761 | |||||
| 762 | /** |
||||
| 763 | * @param null $criterio |
||||
|
0 ignored issues
–
show
|
|||||
| 764 | * @param $campo |
||||
| 765 | * |
||||
| 766 | * @return int |
||||
| 767 | */ |
||||
| 768 | public function soma($criterio, $campo) |
||||
| 769 | { |
||||
| 770 | $sql = 'SELECT SUM(' . $campo . ') FROM ' . $this->tabela; |
||||
| 771 | if (isset($criterio) && $criterio instanceof \CriteriaElement) { |
||||
| 772 | $sql .= ' ' . $criterio->renderWhere(); |
||||
| 773 | } |
||||
| 774 | $result = $this->db->query($sql); |
||||
| 775 | if (!$result) { |
||||
| 776 | return 0; |
||||
| 777 | } |
||||
| 778 | list($soma) = $this->db->fetchRow($result); |
||||
| 779 | |||||
| 780 | return $soma; |
||||
| 781 | } |
||||
| 782 | |||||
| 783 | // Retorna a paginação pronta |
||||
| 784 | |||||
| 785 | /** |
||||
| 786 | * @param $link |
||||
| 787 | * @param null $criterio |
||||
|
0 ignored issues
–
show
|
|||||
| 788 | * @param null $precrit_url |
||||
|
0 ignored issues
–
show
|
|||||
| 789 | * |
||||
| 790 | * @return string |
||||
| 791 | */ |
||||
| 792 | public function paginar($link, $criterio = null, $precrit_url = null) |
||||
| 793 | { |
||||
| 794 | $ret = ''; |
||||
| 795 | $order = 'up'; |
||||
| 796 | $sort = $this->id; |
||||
| 797 | if (isset($criterio) && $criterio instanceof \CriteriaElement) { |
||||
| 798 | $limit = $criterio->getLimit(); |
||||
| 799 | $start = $criterio->getStart(); |
||||
| 800 | if ('' !== $criterio->getSort()) { |
||||
| 801 | $order = $criterio->getOrder(); |
||||
| 802 | $sort = $criterio->getSort(); |
||||
| 803 | } |
||||
| 804 | } else { |
||||
| 805 | $limit = 15; |
||||
| 806 | $start = 0; |
||||
| 807 | } |
||||
| 808 | $todos = $this->contar($criterio); |
||||
| 809 | $total = (0 == $todos % $limit) ? ($todos / $limit) : (int)($todos / $limit) + 1; |
||||
| 810 | $pg = $start ? (int)($start / $limit) + 1 : 1; |
||||
| 811 | $ret .= Request::hasVar('busca', 'GET') ? "<input type=button value='" |
||||
| 812 | . _ALL |
||||
| 813 | . "' onclick=\"document.location= '" |
||||
| 814 | . Request::getString('PHP_SELF', '', 'SERVER') |
||||
| 815 | . '?limit=' |
||||
| 816 | . $limit |
||||
| 817 | . '&order=' |
||||
| 818 | . $order |
||||
| 819 | . '&sort=' |
||||
| 820 | . $sort |
||||
| 821 | . '&op=' |
||||
| 822 | . $GLOBALS['op'] |
||||
| 823 | . $precrit_url |
||||
| 824 | . "'\"> " : ' '; |
||||
| 825 | for ($i = 1; $i <= $total; ++$i) { |
||||
| 826 | $start = $limit * ($i - 1); |
||||
| 827 | if ($i == $pg) { |
||||
| 828 | $ret .= "<span style='font-weight: bold; color: #CF0000; font-size: 15px;'> $i </span>"; |
||||
| 829 | } elseif (($pg - 10) > $i) { |
||||
| 830 | if (!isset($pg1)) { |
||||
| 831 | $ret .= ("<A HREF='" . $link . '&start=' . $start . "'>1</a>. . ."); |
||||
| 832 | $pg1 = true; |
||||
| 833 | } |
||||
| 834 | continue; |
||||
| 835 | } elseif ($i < ($pg + 10)) { |
||||
| 836 | $ret .= (" <A HREF='" . $link . '&start=' . $start . "'>" . $i . '</a> '); |
||||
| 837 | } else { |
||||
| 838 | $ret .= (". . . <A HREF='" . $link . '&start=' . ((0 == $todos % $limit) ? $todos - $limit : $todos - ($todos % $limit)) . "'>" . $total . '</a>'); |
||||
| 839 | break; |
||||
| 840 | } |
||||
| 841 | if ($i != $total) { |
||||
| 842 | $ret .= '|'; |
||||
| 843 | } |
||||
| 844 | } |
||||
| 845 | |||||
| 846 | return $ret; |
||||
| 847 | } |
||||
| 848 | } |
||||
| 849 | } |
||||
| 850 |