*/
class CRM_Event_Form_ManageEvent_TabHeader {
+ /**
+ * @param $form
+ *
+ * @return array
+ */
static function build(&$form) {
$tabs = $form->get('tabHeader');
if (!$tabs || empty($_GET['reset'])) {
->addSetting(array('tabSettings' => array(
'active' => self::getCurrentTab($tabs),
)));
-
- // Preload libraries required by Online Registration Include Profiles
- $schemas = array('IndividualModel', 'ParticipantModel');
- if (in_array('CiviMember', CRM_Core_Config::singleton()->enableComponents)) {
- $schemas[] = 'MembershipModel';
- }
- CRM_UF_Page_ProfileEditor::registerProfileScripts();
- CRM_UF_Page_ProfileEditor::registerSchemas($schemas);
-
+ CRM_Event_Form_ManageEvent::addProfileEditScripts();
return $tabs;
}
+ /**
+ * @param $form
+ *
+ * @return array
+ * @throws Exception
+ */
static function process(&$form) {
if ($form->getVar('_id') <= 0) {
return NULL;
$tabs['conference'] = array('title' => ts('Conference Slots')) + $default;
$tabs['friend'] = array('title' => ts('Tell a Friend')) + $default;
$tabs['pcp'] = array('title' => ts('Personal Campaigns')) + $default;
+ $tabs['repeat'] = array('title' => ts('Repeat')) + $default;
// check if we're in shopping cart mode for events
$eventID = $form->getVar('_id');
if ($eventID) {
- // disable tabs based on their configuration status
+ // disable tabs based on their configuration status
$sql = "
-SELECT e.loc_block_id as is_location, e.is_online_registration, e.is_monetary, taf.is_active, pcp.is_active as is_pcp, sch.id as is_reminder
+SELECT e.loc_block_id as is_location, e.is_online_registration, e.is_monetary, taf.is_active, pcp.is_active as is_pcp, sch.id as is_reminder, re.id as is_repeating_event
FROM civicrm_event e
LEFT JOIN civicrm_tell_friend taf ON ( taf.entity_table = 'civicrm_event' AND taf.entity_id = e.id )
LEFT JOIN civicrm_pcp_block pcp ON ( pcp.entity_table = 'civicrm_event' AND pcp.entity_id = e.id )
LEFT JOIN civicrm_action_mapping map ON ( map.entity_value = 'civicrm_event' )
LEFT JOIN civicrm_action_schedule sch ON ( sch.mapping_id = map.id AND sch.entity_value = %1 )
+LEFT JOIN civicrm_recurring_entity re ON ( e.id = re.entity_id AND re.entity_table = 'civicrm_event' )
WHERE e.id = %1
";
+ //Check if repeat is configured
+ $eventHasParent = CRM_Core_BAO_RecurringEntity::getParentFor($eventID, 'civicrm_event');
$params = array(1 => array($eventID, 'Integer'));
$dao = CRM_Core_DAO::executeQuery($sql, $params);
if (!$dao->fetch()) {
if (!$dao->is_reminder) {
$tabs['reminder']['valid'] = FALSE;
}
+ if (!$dao->is_repeating_event) {
+ $tabs['repeat']['valid'] = FALSE;
+ }
}
// see if any other modules want to add any tabs
return $tabs;
}
+ /**
+ * @param $form
+ */
static function reset(&$form) {
$tabs = self::process($form);
$form->set('tabHeader', $tabs);
}
+ /**
+ * @param $tabs
+ *
+ * @return int|string
+ */
static function getCurrentTab($tabs) {
static $current = FALSE;