Skip to content
Snippets Groups Projects
civicrm.shortcodes.php 29.9 KiB
Newer Older
  • Learn to ignore specific revisions
  • Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Add Contribution Page ID.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $params['id'] = $args['id'];
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Call API.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $civi_entity = civicrm_api3('ContributionPage', 'getsingle', $params);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Set title.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $data['title'] = $civi_entity['title'];
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Set text, if present.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $data['text'] = '';
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            if (isset($civi_entity['intro_text'])) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
              $data['text'] = $civi_entity['intro_text'];
            }
    
            break;
    
          case 'event':
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Add Event ID.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $params['id'] = $args['id'];
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Call API.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $civi_entity = civicrm_api3('Event', 'getsingle', $params);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Set title.
            switch ($atts['action']) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
              case 'register':
                $data['title'] = sprintf(
    
                  /* translators: %s: The event title. */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
                  __('Register for %s', 'civicrm'),
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
                  $civi_entity['title']
                );
                break;
    
              case 'info':
              default:
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
                $data['title'] = '';
                if (!empty($civi_entity['title'])) {
                  $data['title'] = $civi_entity['title'];
                }
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
                break;
            }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Set text, if present.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $data['text'] = '';
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            if (!empty($civi_entity['summary'])) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
              $data['text'] = $civi_entity['summary'];
            }
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Override with "description" if "summary" is empty.
            if (empty($civi_entity['summary']) && !empty($civi_entity['description'])) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
              $data['text'] = $civi_entity['description'];
            }
    
            break;
    
          case 'user-dashboard':
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Set title.
            $data['title'] = __('Dashboard', 'civicrm');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            break;
    
          case 'profile':
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Add Profile ID.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $params['id'] = $args['gid'];
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Call API.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $civi_entity = civicrm_api3('UFGroup', 'getsingle', $params);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Set title.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $data['title'] = $civi_entity['title'];
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Set text to empty.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $data['text'] = '';
            break;
    
          case 'petition':
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Add Petition ID.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $params['id'] = $atts['id'];
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Call API.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $civi_entity = civicrm_api3('Survey', 'getsingle', $params);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Set title.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $data['title'] = $civi_entity['title'];
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Set text, if present.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            $data['text'] = '';
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            if (isset($civi_entity['instructions'])) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
              $data['text'] = $civi_entity['instructions'];
            }
    
            break;
    
          default:
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Do we need to protect against malformed Shortcodes?
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
         * Filter the CiviCRM Shortcode data array.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
         * This filter allows plugins or CiviCRM Extensions to modify the data used
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
         * to display the Shortcode when there are multiple Shortcodes being rendered.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
         * @since 4.7.28
         *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
         * @param array $data The existing Shortcode data.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
         * @param array $atts Shortcode attributes array.
         * @param array $args Shortcode arguments array.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        return apply_filters('civicrm_shortcode_get_data', $data, $atts, $args);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    }