XOOPS  2.6.0
tplfile.php
Go to the documentation of this file.
1 <?php
26 
35 {
41  public function __construct()
42  {
43  $this->initVar('tpl_id', XOBJ_DTYPE_INT, null, false);
44  $this->initVar('tpl_refid', XOBJ_DTYPE_INT, 0, false);
45  $this->initVar('tpl_tplset', XOBJ_DTYPE_OTHER, null, false);
46  $this->initVar('tpl_file', XOBJ_DTYPE_TXTBOX, null, true, 100);
47  $this->initVar('tpl_desc', XOBJ_DTYPE_TXTBOX, null, false, 100);
48  $this->initVar('tpl_lastmodified', XOBJ_DTYPE_INT, 0, false);
49  $this->initVar('tpl_lastimported', XOBJ_DTYPE_INT, 0, false);
50  $this->initVar('tpl_module', XOBJ_DTYPE_OTHER, null, false);
51  $this->initVar('tpl_type', XOBJ_DTYPE_OTHER, null, false);
52  $this->initVar('tpl_source', XOBJ_DTYPE_SOURCE, null, false);
53  }
54 
62  public function id($format = 'n')
63  {
64  return $this->getVar('tpl_id', $format);
65  }
66 
74  public function tpl_id($format = '')
75  {
76  return $this->getVar('tpl_id', $format);
77  }
78 
86  public function tpl_refid($format = '')
87  {
88  return $this->getVar('tpl_refid', $format);
89  }
90 
98  public function tpl_tplset($format = '')
99  {
100  return $this->getVar('tpl_tplset', $format);
101  }
102 
110  public function tpl_file($format = '')
111  {
112  return $this->getVar('tpl_file', $format);
113  }
114 
122  public function tpl_desc($format = '')
123  {
124  return $this->getVar('tpl_desc', $format);
125  }
126 
134  public function tpl_lastmodified($format = '')
135  {
136  return $this->getVar('tpl_lastmodified', $format);
137  }
138 
146  public function tpl_lastimported($format = '')
147  {
148  return $this->getVar('tpl_lastimported', $format);
149  }
150 
158  public function tpl_module($format = '')
159  {
160  return $this->getVar('tpl_module', $format);
161  }
162 
170  public function tpl_type($format = '')
171  {
172  return $this->getVar('tpl_type', $format);
173  }
174 
182  public function tpl_source($format = '')
183  {
184  return $this->getVar('tpl_source', $format);
185  }
186 
187 
193  public function getSource()
194  {
195  return $this->getVar('tpl_source');
196  }
197 
203  public function getLastModified()
204  {
205  return $this->getVar('tpl_lastmodified');
206  }
207 }
208 
218 {
219 
225  public function __construct(Connection $db = null)
226  {
227  parent::__construct($db, 'tplfile', 'XoopsTplfile', 'tpl_id', 'tpl_refid');
228  }
229 
238  public function getById($id, $getsource = false)
239  {
240  $qb = $this->db2->createXoopsQueryBuilder();
241  $eb = $qb->expr();
242  $tplfile = false;
243  $id = intval($id);
244  if ($id > 0) {
245  if (!$getsource) {
246  $qb->select('*')
247  ->fromPrefix('tplfile', 'f')
248  ->where($eb->eq('f.tpl_id', ':tplid'))
249  ->setParameter(':tplid', $id, \PDO::PARAM_INT);
250  } else {
251  $qb->select('f.*')
252  ->addSelect('s.tpl_source')
253  ->fromPrefix('tplfile', 'f')
254  ->leftJoinPrefix('f', 'tplsource', 's', $eb->eq('s.tpl_id', 'f.tpl_id'))
255  ->where($eb->eq('f.tpl_id', ':tplid'))
256  ->setParameter(':tplid', $id, \PDO::PARAM_INT);
257  }
258  $result = $qb->execute();
259  if (!$result) {
260  return $tplfile;
261  }
262  $allrows = $result->fetchAll();
263  if (count($allrows) == 1) {
264  $tplfile = new XoopsTplfile();
265  $tplfile->assignVars(reset($allrows));
266  }
267  }
268  return $tplfile;
269  }
270 
278  public function loadSource(XoopsTplFile &$tplfile)
279  {
280  if (!$tplfile->getVar('tpl_source')) {
281  $qb = $this->db2->createXoopsQueryBuilder();
282  $eb = $qb->expr();
283  $qb->select('tpl_source')
284  ->fromPrefix('tplsource', null)
285  ->where($eb->eq('tpl_id', ':tplid'))
286  ->setParameter(':tplid', $tplfile->getVar('tpl_id'), \PDO::PARAM_INT);
287  if (!$result = $qb->execute()) {
288  return false;
289  }
290  $myrow = $result->fetch(\PDO::FETCH_ASSOC);
291  $tplfile->assignVar('tpl_source', $myrow['tpl_source']);
292  }
293  return true;
294  }
295 
303  public function insertTpl(XoopsTplfile &$tplfile)
304  {
305  if (!$tplfile->isDirty()) {
306  return true;
307  }
308  if (!$tplfile->cleanVars(false)) {
309  return false;
310  }
311  foreach ($tplfile->cleanVars as $k => $v) {
312  ${$k} = $v;
313  }
314  if ($tplfile->isNew()) {
315  $tpl_id = 0;
316  $values = array(
317  // 'tpl_id' => $tpl_id,
318  'tpl_module' => $tpl_module,
319  'tpl_refid' => $tpl_refid,
320  'tpl_tplset' => $tpl_tplset,
321  'tpl_file' => $tpl_file,
322  'tpl_desc' => $tpl_desc,
323  'tpl_lastmodified' => $tpl_lastmodified,
324  'tpl_lastimported' => $tpl_lastimported,
325  'tpl_type' => $tpl_type,
326  );
327  if (!$this->db2->insertPrefix('tplfile', $values)) {
328  return false;
329  }
330  if (empty($tpl_id)) {
331  $tpl_id = $this->db2->lastInsertId();
332  }
333  if (isset($tpl_source) && $tpl_source != '') {
334  $values = array(
335  'tpl_id' => $tpl_id,
336  'tpl_source' => $tpl_source,
337  );
338  if (!$this->db2->insertPrefix('tplsource', $values)) {
339  $this->db2->deletePrefix('tplfile', array('tpl_id' => $tpl_id));
340  return false;
341  }
342  }
343  $tplfile->assignVar('tpl_id', $tpl_id);
344  } else {
345  $values = array(
346  // 'tpl_id' => $tpl_id,
347  'tpl_module' => $tpl_module,
348  'tpl_refid' => $tpl_refid,
349  'tpl_tplset' => $tpl_tplset,
350  'tpl_file' => $tpl_file,
351  'tpl_desc' => $tpl_desc,
352  'tpl_lastmodified' => $tpl_lastmodified,
353  'tpl_lastimported' => $tpl_lastimported,
354  'tpl_type' => $tpl_type,
355  );
356  if (!$this->db2->updatePrefix('tplfile', $values, array('tpl_id' => $tpl_id))) {
357  return false;
358  }
359 
360  if (isset($tpl_source) && $tpl_source != '') {
361  $values = array(
362  // 'tpl_id' => $tpl_id,
363  'tpl_source' => $tpl_source,
364  );
365  if ($this->db2->updatePrefix('tplsource', $values, array('tpl_id' => $tpl_id))) {
366  return false;
367  }
368  }
369  }
370 
371  return true;
372  }
373 
381  public function forceUpdate(XoopsTplfile &$tplfile)
382  {
383  if (!$tplfile->isDirty()) {
384  return true;
385  }
386  if (!$tplfile->cleanVars(false)) {
387  return false;
388  }
389  foreach ($tplfile->cleanVars as $k => $v) {
390  ${$k} = $v;
391  }
392  if (!$tplfile->isNew()) {
393  $tpl_id = 0;
394  $values = array(
395  // 'tpl_id' => $tpl_id,
396  'tpl_module' => $tpl_module,
397  'tpl_refid' => $tpl_refid,
398  'tpl_tplset' => $tpl_tplset,
399  'tpl_file' => $tpl_file,
400  'tpl_desc' => $tpl_desc,
401  'tpl_lastmodified' => $tpl_lastmodified,
402  'tpl_lastimported' => $tpl_lastimported,
403  'tpl_type' => $tpl_type,
404  );
405  if (!$this->db2->updatePrefix('tplfile', $values, array('tpl_id' => $tpl_id))) {
406  return false;
407  }
408 
409  if (isset($tpl_source) && $tpl_source != '') {
410  $tpl_id = 0;
411  $values = array(
412  // 'tpl_id' => $tpl_id,
413  'tpl_source' => $tpl_source,
414  );
415  if ($this->db2->updatePrefix('tplsource', $values, array('tpl_id' => $tpl_id))) {
416  return false;
417  }
418  }
419 
420  return true;
421  } else {
422  return false;
423  }
424  }
425 
433  public function deleteTpl(XoopsTplfile &$tplfile)
434  {
435  $tpl_id = $tplfile->getVar('tpl_id');
436  if (!$this->db2->deletePrefix('tplfile', array('tpl_id' => $tpl_id))) {
437  return false;
438  }
439  $this->db2->deletePrefix('tplsource', array('tpl_id' => $tpl_id));
440  return true;
441  }
442 
452  public function getTplObjects(CriteriaElement $criteria = null, $getsource = false, $id_as_key = false)
453  {
454  $qb = $this->db2->createXoopsQueryBuilder();
455  $eb = $qb->expr();
456 
457  $ret = array();
458 
459  if (!$getsource) {
460  $qb->select('*')
461  ->fromPrefix('tplfile', 'f');
462  } else {
463  $qb->select('f.*')
464  ->addSelect('s.tpl_source')
465  ->fromPrefix('tplfile', 'f')
466  ->leftJoinPrefix('f', 'tplsource', 's', $eb->eq('s.tpl_id', 'f.tpl_id'));
467  }
468  if (isset($criteria) && ($criteria instanceof CriteriaElement)) {
469  $criteria->renderQb($qb);
470  }
471  $result = $qb->execute();
472  if (!$result) {
473  return $ret;
474  }
475  while ($myrow = $result->fetch(\PDO::FETCH_ASSOC)) {
476  $tplfile = new XoopsTplfile();
477  $tplfile->assignVars($myrow);
478  if (!$id_as_key) {
479  $ret[] = $tplfile;
480  } else {
481  $ret[$myrow['tpl_id']] = $tplfile;
482  }
483  unset($tplfile);
484  }
485  return $ret;
486  }
487 
495  public function getModuleTplCount($tplset)
496  {
497  $qb = $this->db2->createXoopsQueryBuilder();
498  $eb = $qb->expr();
499 
500  $qb->select('tpl_module')
501  ->addSelect('COUNT(tpl_id) AS count')
502  ->fromPrefix('tplfile', null)
503  ->where($eb->eq('tpl_tplset', ':tpset'))
504  ->groupBy('tpl_module')
505  ->setParameter(':tpset', $tplset, \PDO::PARAM_STR);
506 
507  $ret = array();
508  $result = $qb->execute();
509  if (!$result) {
510  return $ret;
511  }
512  while ($myrow = $result->fetch(\PDO::FETCH_ASSOC)) {
513  if ($myrow['tpl_module'] != '') {
514  $ret[$myrow['tpl_module']] = $myrow['count'];
515  }
516  }
517  return $ret;
518  }
519 
532  public function find($tplset = null, $type = null, $refid = null, $module = null, $file = null, $getsource = false)
533  {
534  $criteria = new CriteriaCompo();
535  if (isset($tplset)) {
536  $criteria->add(new Criteria('tpl_tplset', $tplset));
537  }
538  if (isset($module)) {
539  $criteria->add(new Criteria('tpl_module', $module));
540  }
541  if (isset($refid)) {
542  $criteria->add(new Criteria('tpl_refid', $refid));
543  }
544  if (isset($file)) {
545  $criteria->add(new Criteria('tpl_file', $file));
546  }
547  if (isset($type)) {
548  if (is_array($type)) {
549  $criteria2 = new CriteriaCompo();
550  foreach ($type as $t) {
551  $criteria2->add(new Criteria('tpl_type', $t), 'OR');
552  }
553  $criteria->add($criteria2);
554  } else {
555  $criteria->add(new Criteria('tpl_type', $type));
556  }
557  }
558  return $this->getTplObjects($criteria, $getsource, false);
559  }
560 
569  public function templateExists($tplname, $tplset_name)
570  {
571  $criteria = new CriteriaCompo(new Criteria('tpl_file', trim($tplname)));
572  $criteria->add(new Criteria('tpl_tplset', trim($tplset_name)));
573  if ($this->getCount($criteria) > 0) {
574  return true;
575  }
576  return false;
577  }
578 }
forceUpdate(XoopsTplfile &$tplfile)
Definition: tplfile.php:381
deleteTpl(XoopsTplfile &$tplfile)
Definition: tplfile.php:433
getLastModified()
Definition: tplfile.php:203
id($format= 'n')
Definition: tplfile.php:62
if(!isset($xoops->paths[$path_type])) if($path_type== 'var') $file
Definition: browse.php:55
tpl_tplset($format= '')
Definition: tplfile.php:98
find($tplset=null, $type=null, $refid=null, $module=null, $file=null, $getsource=false)
Definition: tplfile.php:532
$result
Definition: pda.php:33
tpl_source($format= '')
Definition: tplfile.php:182
tpl_type($format= '')
Definition: tplfile.php:170
tpl_lastimported($format= '')
Definition: tplfile.php:146
getVar($key, $format= 's')
getTplObjects(CriteriaElement $criteria=null, $getsource=false, $id_as_key=false)
Definition: tplfile.php:452
tpl_desc($format= '')
Definition: tplfile.php:122
$id
Definition: admin_menu.php:36
getModuleTplCount($tplset)
Definition: tplfile.php:495
tpl_file($format= '')
Definition: tplfile.php:110
tpl_refid($format= '')
Definition: tplfile.php:86
tpl_module($format= '')
Definition: tplfile.php:158
$module
Definition: main.php:52
tpl_lastmodified($format= '')
Definition: tplfile.php:134
$criteria2
$type
Definition: misc.php:33
tpl_id($format= '')
Definition: tplfile.php:74
$criteria
__construct(Connection $db=null)
Definition: tplfile.php:225
getById($id, $getsource=false)
Definition: tplfile.php:238
templateExists($tplname, $tplset_name)
Definition: tplfile.php:569
initVar($key, $data_type, $value=null, $required=false, $maxlength=null, $options= '')
insertTpl(XoopsTplfile &$tplfile)
Definition: tplfile.php:303
loadSource(XoopsTplFile &$tplfile)
Definition: tplfile.php:278