Merge pull request #18231 from civicrm/5.29
[civicrm-core.git] / CRM / Case / Form / Task.php
CommitLineData
6a488035
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
bc77d7c0 4 | Copyright CiviCRM LLC. All rights reserved. |
6a488035 5 | |
bc77d7c0
TO
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
6a488035 9 +--------------------------------------------------------------------+
d25dd0ee 10 */
6a488035
TO
11
12/**
6a488035 13 * @package CRM
ca5cec67 14 * @copyright CiviCRM LLC https://civicrm.org/licensing
6a488035
TO
15 */
16
17/**
888da08c 18 * This class generates form task actions for CiviCase.
6a488035 19 */
888da08c 20class CRM_Case_Form_Task extends CRM_Core_Form_Task {
6a488035 21
f157740d
SL
22 /**
23 * Must be set to entity table name (eg. civicrm_participant) by child class
24 * @var string
25 */
26 public static $tableName = 'civicrm_case';
27 /**
28 * Must be set to entity shortname (eg. event)
29 * @var string
30 */
31 public static $entityShortname = 'case';
96025800 32
d94a02b4
CW
33 /**
34 * @inheritDoc
35 */
36 public function setContactIDs() {
2e9051c7
D
37 // @todo Parameters shouldn't be needed and should be class member
38 // variables instead, set appropriately by each subclass.
39 $this->_contactIds = $this->getContactIDsFromComponent($this->_entityIds,
d94a02b4
CW
40 'civicrm_case_contact', 'case_id'
41 );
42 }
43
a0174743
MW
44 /**
45 * Get the query mode (eg. CRM_Core_BAO_Query::MODE_CASE)
46 *
47 * @return int
48 */
49 public function getQueryMode() {
50 return CRM_Contact_BAO_Query::MODE_CASE;
51 }
52
2e9051c7
D
53 /**
54 * Override of CRM_Core_Form_Task::orderBy()
55 *
56 * @return string
57 */
58 public function orderBy() {
59 if (empty($this->_entityIds)) {
60 return '';
61 }
62 $order_array = [];
63 foreach ($this->_entityIds as $item) {
64 // Ordering by conditional in mysql. This evaluates to 0 or 1, so we
65 // need to order DESC to get the '1'.
66 $order_array[] = 'case_id = ' . CRM_Core_DAO::escapeString($item) . ' DESC';
67 }
68 return 'ORDER BY ' . implode(',', $order_array);
69 }
70
6a488035 71}