/** * Function to build the form * * @return void * @access public */ public function buildQuickForm() { CRM_Core_Resources::singleton()->addScriptFile('civicrm', 'packages/jquery/plugins/jstree/jquery.jstree.js', 0, 'html-header', FALSE)->addStyleFile('civicrm', 'packages/jquery/plugins/jstree/themes/default/style.css', 0, 'html-header'); // get categories for the contact id $entityTag = CRM_Core_BAO_EntityTag::getTag($this->_entityID, $this->_entityTable); $this->assign('tagged', $entityTag); // get the list of all the categories $allTag = CRM_Core_BAO_Tag::getTagsUsedFor($this->_entityTable); // need to append the array with the " checked " if contact is tagged with the tag foreach ($allTag as $tagID => $varValue) { if (in_array($tagID, $entityTag)) { $tagAttribute = array('checked' => 'checked', 'id' => "tag_{$tagID}"); } else { $tagAttribute = array('id' => "tag_{$tagID}"); } $tagChk[$tagID] = $this->createElement('checkbox', $tagID, '', '', $tagAttribute); } $this->addGroup($tagChk, 'tagList', NULL, NULL, TRUE); $tags = new CRM_Core_BAO_Tag(); $tree = $tags->getTree($this->_entityTable, TRUE); $this->assign('tree', $tree); $this->assign('tag', $allTag); //build tag widget $parentNames = CRM_Core_BAO_Tag::getTagSet('civicrm_contact'); CRM_Core_Form_Tag::buildQuickForm($this, $parentNames, $this->_entityTable, $this->_entityID); if ($this->_action & CRM_Core_Action::BROWSE) { $this->freeze(); } else { $this->addButtons(array(array('type' => 'next', 'name' => ts('Update Tags'), 'isDefault' => TRUE), array('type' => 'cancel', 'name' => ts('Cancel')))); } }
/** * Get resources for one or more modules. * * @param string|array $moduleNames * List of module names. * @param string $resType * Type of resource ('js', 'css', 'settings'). * @param string $refType * Type of reference to the resource ('cacheUrl', 'rawUrl', 'path', 'settings'). * @return array * List of URLs or paths. * @throws \CRM_Core_Exception */ public function getResources($moduleNames, $resType, $refType) { $result = array(); $moduleNames = (array) $moduleNames; foreach ($moduleNames as $moduleName) { $module = $this->getModule($moduleName); if (isset($module[$resType])) { foreach ($module[$resType] as $file) { switch ($refType) { case 'path': $result[] = $this->res->getPath($module['ext'], $file); break; case 'rawUrl': $result[] = $this->res->getUrl($module['ext'], $file); break; case 'cacheUrl': $result[] = $this->res->getUrl($module['ext'], $file, TRUE); break; case 'settings': if (!empty($module[$resType])) { $result[$moduleName] = $module[$resType]; } break; default: throw new \CRM_Core_Exception("Unrecognized resource format"); } } } } return $result; }
/** * Function to actually build the form * * @return None * @access public */ public function buildQuickForm() { $this->addFormRule(array('CRM_Mailchimp_Form_Setting', 'formRule'), $this); CRM_Core_Resources::singleton()->addStyleFile('uk.co.vedaconsulting.mailchimp', 'css/mailchimp.css'); $webhook_url = CRM_Utils_System::url('civicrm/mailchimp/webhook', 'reset=1', TRUE, NULL, FALSE, TRUE); $this->assign('webhook_url', 'Webhook URL - ' . $webhook_url); // Add the API Key Element $this->addElement('text', 'api_key', ts('API Key'), array('size' => 48)); // Add the User Security Key Element $this->addElement('text', 'security_key', ts('Security Key'), array('size' => 24)); // Add Enable or Disable Debugging $enableOptions = array(1 => ts('Yes'), 0 => ts('No')); $this->addRadio('enable_debugging', ts('Enable Debugging'), $enableOptions, NULL); // Create the Submit Button. $buttons = array(array('type' => 'submit', 'name' => ts('Save & Test'))); $groups = CRM_Mailchimp_Utils::getGroupsToSync(array(), null, $membership_only = TRUE); foreach ($groups as $group_id => $details) { $list = new Mailchimp_Lists(CRM_Mailchimp_Utils::mailchimp()); $webhookoutput = $list->webhooks($details['list_id']); if ($webhookoutput[0]['sources']['api'] == 1) { CRM_Mailchimp_Utils::checkDebug('CRM_Mailchimp_Form_Setting - API is set in Webhook setting for listID', $details['list_id']); $listID = $details['list_id']; CRM_Core_Session::setStatus(ts('API is set in Webhook setting for listID %1', array(1 => $listID)), ts('Error'), 'error'); break; } } // Add the Buttons. $this->addButtons($buttons); }
/** * @inheritDoc */ public function getAngularModules() { $result = array(); $result['crmCaseType'] = array('ext' => 'civicrm', 'js' => array('ang/crmCaseType.js'), 'css' => array('ang/crmCaseType.css'), 'partials' => array('ang/crmCaseType')); CRM_Core_Resources::singleton()->addSetting(array('crmCaseType' => array('REL_TYPE_CNAME' => CRM_Case_XMLProcessor::REL_TYPE_CNAME))); return $result; }
function testGetURL() { $this->assertEquals('http://core-app/dir/file%20name.txt', $this->res->getURL('civicrm', 'dir/file%20name.txt')); $this->assertEquals('http://ext-dir/com.example.ext/dir/file%20name.txt', $this->res->getURL('com.example.ext', 'dir/file%20name.txt')); $this->assertEquals('http://core-app/', $this->res->getURL('civicrm')); $this->assertEquals('http://ext-dir/com.example.ext/', $this->res->getURL('com.example.ext')); }
function normalise_civicrm_buildForm($formName, &$form) { $names = array("CRM_Profile_Form_Edit", "CRM_Contact_Form_Contact", "CRM_Event_Form_Registration_Register", "CRM_Contribute_Form_Contribution_Main"); if (in_array($formName, $names)) { CRM_Core_Resources::singleton()->addScript(file_get_contents(dirname(__FILE__) . "/js/normalise.js")); } }
function browse() { CRM_Core_Resources::singleton()->addScriptFile('civicrm', 'js/crm.livePage.js'); $campaigns = CRM_Campaign_BAO_Campaign::getCampaignSummary(); if (!empty($campaigns)) { $campaignType = CRM_Core_PseudoConstant::campaignType(); $campaignStatus = CRM_Core_PseudoConstant::campaignStatus(); foreach ($campaigns as $cmpid => $campaign) { $campaigns[$cmpid]['campaign_id'] = $campaign['id']; $campaigns[$cmpid]['title'] = $campaign['title']; $campaigns[$cmpid]['name'] = $campaign['name']; $campaigns[$cmpid]['description'] = $campaign['description']; $campaigns[$cmpid]['campaign_type_id'] = $campaignType[$campaign['campaign_type_id']]; $campaigns[$cmpid]['status_id'] = $campaignStatus[$campaign['status_id']]; $action = array_sum(array_keys($this->actionLinks())); if ($campaign['is_active']) { $action -= CRM_Core_Action::ENABLE; } else { $action -= CRM_Core_Action::DISABLE; } $campaigns[$cmpid]['action'] = CRM_Core_Action::formLink(self::actionLinks(), $action, array('id' => $campaign['id']), ts('more'), FALSE, 'campaign.selector.row', 'Campaign', $campaign['id']); } } $this->assign('campaigns', $campaigns); $this->assign('addCampaignUrl', CRM_Utils_System::url('civicrm/campaign/add', 'reset=1&action=add')); }
/** * Set default values for the form * * @return void */ public function setDefaultValues() { $defaults = array(); $defaults['web_tracking_report_id'] = civicrm_api3('setting', 'getValue', array('group' => 'Web Tracking', 'name' => 'web_tracking_report_id')); CRM_Core_Resources::singleton()->addVars('WebTracking', array('web_tracking_report_id' => $defaults['web_tracking_report_id'])); return $defaults; }
function run() { $rows = self::getAllRows(); $this->assign('rows', $rows); CRM_Core_Resources::singleton()->addScriptFile('com.giantrabbit.civimailchimp', 'js/sync_log.js'); parent::run(); }
/** * @return string */ function run() { CRM_Utils_System::setTitle(ts('API explorer and generator')); CRM_Core_Resources::singleton()->addScriptFile('civicrm', 'templates/CRM/Admin/Page/APIExplorer.js')->addScriptUrl('//cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js', 99)->addStyleUrl('//cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.css', 99); $this->assign('operators', CRM_Core_DAO::acceptedSQLOperators()); return parent::run(); }
function buildForm(&$form) { // Change the label on the "name" fields, and make mandatory // (they are mandatory for CC transactions, but not shown as such in the form by default // because of the 'pay later' option) $fields = array('billing_first_name' => ts('First Name'), 'billing_last_name' => ts('Last Name'), 'billing_individual_prefix' => ts('Title')); foreach ($fields as $field => $title) { if ($form->elementExists($field)) { $e =& $form->getElement($field); $e->setLabel($title); $form->addRule($field, ts('%1 is a required field.', array(1 => $title)), 'required'); } } $fields = array('billing_street_address-5', 'billing_city-5', 'billing_country_id-5', 'billing_state_province_id-5', 'billing_postal_code-5'); foreach ($fields as $field) { if ($form->elementExists($field)) { $e =& $form->getElement($field); $title = $e->getLabel(); $form->addRule($field, ts('%1 is a required field.', array(1 => $title)), 'required'); } } CRM_Core_Region::instance('page-body')->add(array('template' => 'CRM/Symbioticux/Contribute/Form/Contribution/Main.validate.tpl')); // Preview & demo sites should encourage to use a test CC number // otherwise users do not know what CC to use, and sometimes use their own. if (CRM_Utils_Array::value('action', $_REQUEST) == 'preview' || !empty($GLOBALS['symbioticux_demo']) || CRM_Utils_Array::value('name', $form->_paymentProcessors[1]) == 'Dummy') { CRM_Core_Region::instance('page-body')->add(array('template' => 'CRM/Symbioticux/Contribute/Form/Contribution/Main.billing-explain.tpl')); $js = "cj('#credit_card_number').click(function(event) {\n if (! cj(this).val()) {\n cj(this).val('4111111111111111').trigger('change');\n cj('#cvv2').val('123').trigger('change');\n cj('#credit_card_exp_date_m').val('5').trigger('change');\n cj('#credit_card_exp_date_Y').val('2018').trigger('change');\n\n cj('.symbioticux-billing-explain-cc').prependTo('.credit_card_info-section').slideDown();\n }\n });"; CRM_Core_Resources::singleton()->addScript($js); } CRM_Core_Region::instance('page-body')->add(array('template' => 'CRM/Symbioticux/Contribute/Form/Contribution/Main.hide-other-amount.tpl')); // Remove some CSS classes on the 'submit' button. $js = "cj('.crm-submit-buttons .crm-form-submit').addClass('btn btn-primary').removeClass('crm-form-submit').parent().removeClass('crm-button');"; CRM_Core_Resources::singleton()->addScript($js); }
public function run() { /** * @var \Civi\Angular\Manager $angular */ //Use our manager instead of the one provided by core $angular = new Civi\Angular\VolunteerManager(\CRM_Core_Resources::singleton()); $moduleNames = $this->parseModuleNames(\CRM_Utils_Request::retrieve('modules', 'String'), $angular); switch (\CRM_Utils_Request::retrieve('format', 'String')) { case 'json': case '': $this->send('application/javascript', json_encode($this->getMetadata($moduleNames, $angular))); break; case 'js': $digest = $this->digestJs($angular->getResources($moduleNames, 'js', 'path')); //Tell crmResource to use our ajax end-point $digest = str_replace("ajax/angular-modules", "ajax/volunteer-angular-modules", $digest); $this->send('application/javascript', $digest); break; case 'css': $this->send('text/css', \CRM_Utils_File::concat($angular->getResources($moduleNames, 'css', 'path'), "\n")); break; default: \CRM_Core_Error::fatal("Unrecognized format"); } \CRM_Utils_System::civiExit(); }
/** * Browse all CiviCRM Profile group fields. * * @return void * @access public * @static */ function browse() { CRM_Core_Resources::singleton()->addScriptFile('civicrm', 'js/crm.livePage.js'); $ufField = array(); $ufFieldBAO = new CRM_Core_BAO_UFField(); // fkey is gid $ufFieldBAO->uf_group_id = $this->_gid; $ufFieldBAO->orderBy('weight', 'field_name'); $ufFieldBAO->find(); $otherModules = CRM_Core_BAO_UFGroup::getUFJoinRecord($this->_gid); $this->assign('otherModules', $otherModules); $isGroupReserved = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $this->_gid, 'is_reserved'); $this->assign('isGroupReserved', $isGroupReserved); $profileType = CRM_Core_BAO_UFField::getProfileType($this->_gid); if ($profileType == 'Contribution' || $profileType == 'Membership' || $profileType == 'Activity' || $profileType == 'Participant') { $this->assign('skipCreate', TRUE); } $locationType = array(); $locationType = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id'); $fields = CRM_Contact_BAO_Contact::exportableFields('All', FALSE, TRUE); $fields = array_merge(CRM_Contribute_BAO_Contribution::getContributionFields(), $fields); $select = array(); foreach ($fields as $name => $field) { if ($name) { $select[$name] = $field['title']; } } $select['group'] = ts('Group(s)'); $select['tag'] = ts('Tag(s)'); $visibility = CRM_Core_SelectValues::ufVisibility(); while ($ufFieldBAO->fetch()) { $ufField[$ufFieldBAO->id] = array(); $phoneType = $locType = ''; CRM_Core_DAO::storeValues($ufFieldBAO, $ufField[$ufFieldBAO->id]); $ufField[$ufFieldBAO->id]['visibility_display'] = $visibility[$ufFieldBAO->visibility]; $ufField[$ufFieldBAO->id]['label'] = $ufFieldBAO->label; $action = array_sum(array_keys($this->actionLinks())); if ($ufFieldBAO->is_active) { $action -= CRM_Core_Action::ENABLE; } else { $action -= CRM_Core_Action::DISABLE; } if ($ufFieldBAO->is_reserved) { $action -= CRM_Core_Action::UPDATE; $action -= CRM_Core_Action::DISABLE; $action -= CRM_Core_Action::DELETE; } $ufField[$ufFieldBAO->id]['order'] = $ufField[$ufFieldBAO->id]['weight']; $ufField[$ufFieldBAO->id]['action'] = CRM_Core_Action::formLink(self::actionLinks(), $action, array('id' => $ufFieldBAO->id, 'gid' => $this->_gid), ts('more'), FALSE, 'ufField.row.actions', 'UFField', $ufFieldBAO->id); } $returnURL = CRM_Utils_System::url('civicrm/admin/uf/group/field', "reset=1&action=browse&gid={$this->_gid}"); $filter = "uf_group_id = {$this->_gid}"; CRM_Utils_Weight::addOrder($ufField, 'CRM_Core_DAO_UFField', 'id', $returnURL, $filter); $this->assign('ufField', $ufField); // retrieve showBestResult from session $session = CRM_Core_Session::singleton(); $showBestResult = $session->get('showBestResult'); $this->assign('showBestResult', $showBestResult); $session->set('showBestResult', 0); }
function bootstrapvisualize_civicrm_pageRun(&$page) { $pageName = $page->getVar('_name'); if ($pageName == 'CRM_Civisualize_Page_Main') { CRM_Core_Resources::singleton()->addStyleFile('eu.tttp.bootstrapvisualize', 'css/bootstrap.min.css'); } }
/** * Load needed JS, CSS and settings for the backend Volunteer Management UI */ public static function addResources($entity_id, $entity_table) { static $loaded = FALSE; if ($loaded) { return; } $loaded = TRUE; $config = CRM_Core_Config::singleton(); $ccr = CRM_Core_Resources::singleton(); // Vendor libraries $ccr->addScriptFile('civicrm', 'packages/backbone/json2.js', 100, 'html-header', FALSE); $ccr->addScriptFile('civicrm', 'packages/backbone/backbone-min.js', 120, 'html-header'); $ccr->addScriptFile('civicrm', 'packages/backbone/backbone.marionette.min.js', 125, 'html-header', FALSE); // Our stylesheet $ccr->addStyleFile('org.civicrm.volunteer', 'css/volunteer_app.css'); // Add all scripts for our js app $weight = 0; $baseDir = CRM_Extension_System::singleton()->getMapper()->keyToBasePath('org.civicrm.volunteer') . '/'; // This glob pattern will recurse the js directory up to 4 levels deep foreach (glob($baseDir . 'js/{*,*/*,*/*/*,*/*/*/*}.js', GLOB_BRACE) as $file) { $fileName = substr($file, strlen($baseDir)); $ccr->addScriptFile('org.civicrm.volunteer', $fileName, $weight++); } // Add our template CRM_Core_Smarty::singleton()->assign('isModulePermissionSupported', CRM_Core_Config::singleton()->userPermissionClass->isModulePermissionSupported()); CRM_Core_Region::instance('page-header')->add(array('template' => 'CRM/Volunteer/Form/Manage.tpl')); // Fetch event so we can set the default start time for needs // FIXME: Not the greatest for supporting non-events $entity = civicrm_api3(str_replace('civicrm_', '', $entity_table), 'getsingle', array('id' => $entity_id)); // Static variables $ccr->addSetting(array('pseudoConstant' => array('volunteer_need_visibility' => array_flip(CRM_Volunteer_BAO_Need::buildOptions('visibility_id', 'validate')), 'volunteer_role' => CRM_Volunteer_BAO_Need::buildOptions('role_id', 'get'), 'volunteer_status' => CRM_Activity_BAO_Activity::buildOptions('status_id', 'validate')), 'volunteer' => array('default_date' => CRM_Utils_Array::value('start_date', $entity)), 'config' => array('timeInputFormat' => $config->timeInputFormat))); // Check for problems _volunteer_civicrm_check_resource_url(); }
function browse() { CRM_Core_Resources::singleton()->addScriptFile('civicrm', 'js/crm.livePage.js'); $statusTypes = array(); $dao = new CRM_Event_DAO_ParticipantStatusType(); $dao->orderBy('weight'); $dao->find(); $visibilities = CRM_Core_PseudoConstant::visibility(); // these statuses are reserved, but disabled by default - so should be disablable after being enabled $disablable = array('On waitlist', 'Awaiting approval', 'Pending from waitlist', 'Pending from approval', 'Rejected'); while ($dao->fetch()) { CRM_Core_DAO::storeValues($dao, $statusTypes[$dao->id]); $action = array_sum(array_keys($this->links())); if ($dao->is_reserved) { $action -= CRM_Core_Action::DELETE; if (!in_array($dao->name, $disablable)) { $action -= CRM_Core_Action::DISABLE; } } $action -= $dao->is_active ? CRM_Core_Action::ENABLE : CRM_Core_Action::DISABLE; $statusTypes[$dao->id]['action'] = CRM_Core_Action::formLink(self::links(), $action, array('id' => $dao->id), ts('more'), FALSE, 'participantStatusType.manage.action', 'ParticipantStatusType', $dao->id); $statusTypes[$dao->id]['visibility'] = $visibilities[$dao->visibility_id]; } $this->assign('rows', $statusTypes); }
/** * build all the data structures needed to build the form * * @return void * @access public */ function preProcess() { $this->_vid = CRM_Utils_Request::retrieve('vid', 'Positive', $this, TRUE); if (!CRM_Volunteer_Permission::checkProjectPerms(CRM_Core_Action::UPDATE, $this->_vid)) { CRM_Utils_System::permissionDenied(); } $this->_batchInfo['item_count'] = 50; $params = array('project_id' => $this->_vid); $this->_volunteerData = CRM_Volunteer_BAO_Assignment::retrieve($params); $projects = CRM_Volunteer_BAO_Project::retrieve(array('id' => $this->_vid)); $project = $projects[$this->_vid]; $this->_entityID = $project->entity_id; $this->_entityTable = $project->entity_table; $this->_title = $project->title; $this->_title .= ' ( ' . CRM_Utils_Date::customFormat($project->start_date); $this->_start_date = $project->start_date; if ($project->end_date) { $this->_title .= ' - ' . CRM_Utils_Date::customFormat($project->end_date) . ' )'; } else { $this->_title .= ' )'; } /* * Because CiviCRM's asset management framework isn't mature yet (e.g., adding * assets to forms rendered in pop-ups using CRM_Core_Resources doesn't work), * we pass a URL fragment to the template and include them via HTML. */ $this->assign('extResourceURL', CRM_Core_Resources::singleton()->getUrl('org.civicrm.volunteer')); $this->assign('vid', $this->_vid); }
/** * Function to set variables up before form is built * * @return void * @access public */ function preProcess() { $this->_isTemplate = (bool) CRM_Utils_Request::retrieve('template', 'Integer', $this); $this->_id = CRM_Utils_Request::retrieve('id', 'Integer', $this); if ($this->_isTemplate) { CRM_Utils_System::setTitle(ts('New Vacancy Template')); } if ($this->_id) { if ($this->_isTemplate = CRM_Core_DAO::getFieldValue('CRM_HRRecruitment_DAO_HRVacancy', $this->_id, 'is_template')) { CRM_Utils_System::setTitle(ts('Edit Vacancy Template')); } else { CRM_Utils_System::setTitle(ts('Edit Vacancy')); } } $this->assign('isTemplate', $this->_isTemplate); $session = CRM_Core_Session::singleton(); if ($this->_id) { $permission = CRM_HRRecruitment_BAO_HRVacancyPermission::checkVacancyPermission($this->_id, array("administer Vacancy", "administer CiviCRM")); } else { $permission = CRM_Core_Permission::checkAnyPerm(array("administer Vacancy", "administer CiviCRM")); } if (!$permission) { $session->pushUserContext(CRM_Utils_System::url('civicrm')); CRM_Core_Error::statusBounce(ts('You do not have the necessary permission to perform this action.')); } CRM_Core_Resources::singleton()->addScriptFile('org.civicrm.hrrecruitment', 'templates/CRM/HRRecruitment/Form/HRVacancy.js'); }
/** * Load needed JS, CSS and settings for the backend Volunteer Management UI */ public static function addResources($entity_id, $entity_table) { static $loaded = FALSE; $ccr = CRM_Core_Resources::singleton(); if ($loaded || $ccr->isAjaxMode()) { return; } $loaded = TRUE; $config = CRM_Core_Config::singleton(); // Vendor libraries $ccr->addScriptFile('civicrm', 'packages/backbone/json2.js', 100, 'html-header', FALSE); $ccr->addScriptFile('civicrm', 'packages/backbone/backbone-min.js', 120, 'html-header', FALSE); $ccr->addScriptFile('civicrm', 'packages/backbone/backbone.marionette.min.js', 125, 'html-header', FALSE); // Our stylesheet $ccr->addStyleFile('org.civicrm.volunteer', 'css/volunteer_app.css'); // Add all scripts for our js app $weight = 0; $baseDir = CRM_Extension_System::singleton()->getMapper()->keyToBasePath('org.civicrm.volunteer') . '/'; // This glob pattern will recurse the js directory up to 4 levels deep foreach (glob($baseDir . 'js/backbone/{*,*/*,*/*/*,*/*/*/*}.js', GLOB_BRACE) as $file) { $fileName = substr($file, strlen($baseDir)); $ccr->addScriptFile('org.civicrm.volunteer', $fileName, $weight++); } // Add our template CRM_Core_Smarty::singleton()->assign('isModulePermissionSupported', CRM_Core_Config::singleton()->userPermissionClass->isModulePermissionSupported()); CRM_Core_Region::instance('page-header')->add(array('template' => 'CRM/Volunteer/Form/Manage.tpl')); // Fetch event so we can set the default start time for needs // FIXME: Not the greatest for supporting non-events $entity = civicrm_api3(str_replace('civicrm_', '', $entity_table), 'getsingle', array('id' => $entity_id)); // Static variables $ccr->addSetting(array('pseudoConstant' => array('volunteer_need_visibility' => array_flip(CRM_Volunteer_BAO_Need::buildOptions('visibility_id', 'validate')), 'volunteer_role' => CRM_Volunteer_BAO_Need::buildOptions('role_id', 'get'), 'volunteer_status' => CRM_Activity_BAO_Activity::buildOptions('status_id', 'validate')), 'volunteer' => array('default_date' => CRM_Utils_Array::value('start_date', $entity)), 'config' => array('timeInputFormat' => $config->timeInputFormat), 'constants' => array('CRM_Core_Action' => array('NONE' => 0, 'ADD' => 1, 'UPDATE' => 2, 'VIEW' => 4, 'DELETE' => 8, 'BROWSE' => 16, 'ENABLE' => 32, 'DISABLE' => 64, 'EXPORT' => 128, 'BASIC' => 256, 'ADVANCED' => 512, 'PREVIEW' => 1024, 'FOLLOWUP' => 2048, 'MAP' => 4096, 'PROFILE' => 8192, 'COPY' => 16384, 'RENEW' => 32768, 'DETACH' => 65536, 'REVERT' => 131072, 'CLOSE' => 262144, 'REOPEN' => 524288, 'MAX_ACTION' => 1048575)))); // Check for problems _volunteer_checkResourceUrl(); }
/** * Implements hook_civicrm_config(). * * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_config */ function alvcustom_civicrm_config(&$config) { _alvcustom_civix_civicrm_config($config); // Neither _pageRun, _postProcess nor _alterContent delivers this // JS to the confirm or transact pages, so _config() it is. CRM_Core_Resources::singleton()->addScriptFile('au.org.alv.alvcustom', 'js/alvcustom.js', TRUE); }
function run() { list($ext, $suite) = $this->getRequestExtAndSuite(); if (empty($ext) || empty($suite)) { throw new CRM_Core_Exception("FIXME: Not implemented: QUnit browser"); } if (!preg_match('/^[a-zA-Z0-9_\\-\\.]+$/', $suite) || strpos($suite, '..') !== FALSE) { throw new CRM_Core_Exception("Malformed suite name"); } $path = CRM_Extension_System::singleton()->getMapper()->keyToBasePath($ext); if (!is_dir("{$path}/tests/qunit/{$suite}")) { throw new CRM_Core_Exception("Failed to locate test suite"); } // Load the test suite -- including any PHP, TPL, or JS content if (file_exists("{$path}/tests/qunit/{$suite}/test.php")) { // e.g. load resources require_once "{$path}/tests/qunit/{$suite}/test.php"; } if (file_exists("{$path}/tests/qunit/{$suite}/test.tpl")) { // e.g. setup markup and/or load resources CRM_Core_Smarty::singleton()->addTemplateDir("{$path}/tests"); $this->assign('qunitTpl', "qunit/{$suite}/test.tpl"); } if (file_exists("{$path}/tests/qunit/{$suite}/test.js")) { CRM_Core_Resources::singleton()->addScriptFile($ext, "tests/qunit/{$suite}/test.js", 1000); } CRM_Utils_System::setTitle(ts('QUnit: %2 (%1)', array(1 => $ext, 2 => $suite))); CRM_Core_Resources::singleton()->addScriptFile('civicrm', 'packages/qunit/qunit.js')->addStyleFile('civicrm', 'packages/qunit/qunit.css'); parent::run(); }
/** * Function to actually build the form * * @return None * @access public */ public function buildQuickForm() { $this->addFormRule(array('CRM_Mailchimp_Form_Setting', 'formRule'), $this); CRM_Core_Resources::singleton()->addStyleFile('uk.co.vedaconsulting.mailchimp', 'css/mailchimp.css'); $webhook_url = CRM_Utils_System::url('civicrm/mailchimp/webhook', 'reset=1', TRUE, NULL, FALSE, TRUE); $this->assign('webhook_url', 'Webhook URL - ' . $webhook_url); // Add the API Key Element $this->addElement('text', 'api_key', ts('API Key'), array('size' => 48)); // Add the User Security Key Element $this->addElement('text', 'security_key', ts('Security Key'), array('size' => 24)); // Add Enable or Disable Debugging $enableOptions = array(1 => ts('Yes'), 0 => ts('No')); $this->addRadio('enable_debugging', ts('Enable Debugging'), $enableOptions, NULL); // Create the Submit Button. $buttons = array(array('type' => 'submit', 'name' => ts('Save & Test'))); // Add the Buttons. $this->addButtons($buttons); try { // Initially we won't be able to do this as we don't have an API key. $api = CRM_Mailchimp_Utils::getMailchimpApi(); // Check for warnings and output them as status messages. $warnings = CRM_Mailchimp_Utils::checkGroupsConfig(); foreach ($warnings as $message) { CRM_Core_Session::setStatus($message); } } catch (Exception $e) { CRM_Core_Session::setStatus('Could not use the Mailchimp API - ' . $e->getMessage() . ' You will see this message If you have not yet configured your Mailchimp acccount.'); } }
/** * Implements hook_civicrm_buildForm(). */ function statelegemail_civicrm_buildForm($formName, &$form) { switch ($formName) { case 'CRM_Campaign_Form_Petition': CRM_Core_Resources::singleton()->addScriptFile('com.aghstrategies.statelegemail', 'js/addressField.js'); } }
/** * Display an introductory screen with any pre-upgrade messages */ public function runIntro() { $upgrade = new CRM_Upgrade_Form(); $template = CRM_Core_Smarty::singleton(); list($currentVer, $latestVer) = $upgrade->getUpgradeVersions(); if ($error = $upgrade->checkUpgradeableVersion($currentVer, $latestVer)) { CRM_Core_Error::fatal($error); } $config = CRM_Core_Config::singleton(); // All cached content needs to be cleared because the civi codebase was just replaced CRM_Core_Resources::singleton()->flushStrings()->resetCacheCode(); CRM_Core_Menu::store(); // cleanup only the templates_c directory $config->cleanup(1, FALSE); $preUpgradeMessage = NULL; $upgrade->setPreUpgradeMessage($preUpgradeMessage, $currentVer, $latestVer); $template->assign('currentVersion', $currentVer); $template->assign('newVersion', $latestVer); $template->assign('upgradeTitle', ts('Upgrade CiviCRM from v %1 To v %2', array(1 => $currentVer, 2 => $latestVer))); $template->assign('upgraded', FALSE); // Render page header if (!defined('CIVICRM_UF_HEAD') && ($region = CRM_Core_Region::instance('html-header', FALSE))) { CRM_Utils_System::addHTMLHead($region->render('')); } $template->assign('preUpgradeMessage', $preUpgradeMessage); $content = $template->fetch('CRM/common/success.tpl'); echo CRM_Utils_System::theme($content, $this->_print, TRUE); }
/** * Check to see if we have any enabled fields on this * form, and if so, set the required class, add them * to the list, notify the backend service, and add * the required JS and CSS to the page. * * @param CRM_Core_Form $form */ function _securefiles_addWidgetToForm(&$form) { $includeWidget = false; $enabled_fields = _securefiles_get_secure_enabled_fields(); $secureFields = array(); foreach ($form->_elements as $index => &$field) { if ($field->_type == "file") { $fieldId = str_replace("custom_", "", $field->_attributes['name']); $fieldId = preg_replace('/_.*/', "", $fieldId); if (in_array($fieldId, $enabled_fields)) { $secureFields[$index] = $fieldId; $css_classes = CRM_Utils_Array::value('class', $field->_attributes); $field->_attributes['class'] = trim($css_classes . ' securefiles_upload'); $includeWidget = true; } } } if ($includeWidget) { $ccr = CRM_Core_Resources::singleton(); $ccr->addScriptFile('com.ginkgostreet.securefiles', 'js/securefiles_widget.js'); $ccr->addStyleFile('com.ginkgostreet.securefiles', 'css/securefiles_widget.css'); $clientSideVars = array(); $clientSideVars['currentContactId'] = CRM_Core_Session::singleton()->getLoggedInContactID(); //Give the Backend Service a chance to add additional resources to the form. $backendService = CRM_Securefiles_Backend::getBackendService(); if ($backendService) { $backendService->runForm($form, $clientSideVars, $secureFields); } $ccr->addScript("CRM.\$(function (\$) { CRM.SecureFilesWidget = " . json_encode($clientSideVars) . "; });", 1, 'page-body'); } }
function run() { $smarty= CRM_Core_Smarty::singleton( ); $dummy = NULL; if (array_key_exists('id',$_GET)) {// special treatmenent, because it's often used $smarty->assign ('id',(int)$_GET['id']);// an id is always positive } $pos = strpos (implode (array_keys ($_GET)),'<') ; if ($pos !== false) { die ("SECURITY FATAL: one of the param names contains <"); } $param = array_map( 'htmlentities' , $_GET); //TODO: sql escape the params too unset($param['q']); $smarty->assign_by_ref("request", $param); CRM_Core_Resources::singleton() ->addScriptFile('eu.tttp.civisualize', 'js/d3.v3.js', 110, 'html-header', FALSE) ->addScriptFile('eu.tttp.civisualize', 'js/dc/dc.js', 110, 'html-header', FALSE) ->addScriptFile('eu.tttp.civisualize', 'js/dc/crossfilter.js', 110, 'html-header', FALSE) ->addStyleFile('eu.tttp.civisualize', 'js/dc/dc.css') ->addStyleFile('eu.tttp.civisualize', 'css/style.css'); require_once 'CRM/Core/Smarty/plugins/function.crmSQL.php'; $smarty->register_function("crmSQL", "smarty_function_crmSQL"); require_once 'CRM/Core/Smarty/plugins/function.crmRetrieve.php'; $smarty->register_function("crmRetrieve", "smarty_function_crmRetrieve"); require_once 'CRM/Core/Smarty/plugins/function.crmTitle.php'; $smarty->register_function("crmTitle", "smarty_function_crmTitle"); return parent::run(); }
/** * Register entity schemas for use in the editor's palette * * @param array $entityTypes * Strings, e.g. "IndividualModel", "ActivityModel". */ public static function registerSchemas($entityTypes) { // TODO in cases where registerSchemas is called multiple times for same entity, be more efficient CRM_Core_Resources::singleton()->addSettingsFactory(function () use($entityTypes) { return array('civiSchema' => CRM_UF_Page_ProfileEditor::getSchema($entityTypes)); }); }
/** * Get AngularJS modules and their dependencies * * @return array * list of modules; same format as CRM_Utils_Hook::angularModules(&$angularModules) * @see CRM_Utils_Hook::angularModules */ public function getAngularModules() { // load angular files only if valid permissions are granted to the user if (!CRM_Core_Permission::check('access CiviMail') && !CRM_Core_Permission::check('create mailings') && !CRM_Core_Permission::check('schedule mailings') && !CRM_Core_Permission::check('approve mailings')) { return array(); } $result = array(); $result['crmMailing'] = array('ext' => 'civicrm', 'js' => array('ang/crmMailing.js', 'ang/crmMailing/*.js'), 'css' => array('ang/crmMailing.css'), 'partials' => array('ang/crmMailing')); $result['crmMailingAB'] = array('ext' => 'civicrm', 'js' => array('ang/crmMailingAB.js', 'ang/crmMailingAB/*.js', 'ang/crmMailingAB/*/*.js'), 'css' => array('ang/crmMailingAB.css'), 'partials' => array('ang/crmMailingAB')); $result['crmD3'] = array('ext' => 'civicrm', 'js' => array('ang/crmD3.js', 'bower_components/d3/d3.min.js')); $config = CRM_Core_Config::singleton(); $session = CRM_Core_Session::singleton(); $contactID = $session->get('userID'); // Get past mailings // CRM-16155 - Limit to a reasonable number $civiMails = civicrm_api3('Mailing', 'get', array('is_completed' => 1, 'mailing_type' => array('IN' => array('standalone', 'winner')), 'return' => array('id', 'name', 'scheduled_date'), 'sequential' => 1, 'options' => array('limit' => 500, 'sort' => 'is_archived asc, scheduled_date desc'))); // Generic params $params = array('options' => array('limit' => 0), 'sequential' => 1); $groupNames = civicrm_api3('Group', 'get', $params + array('is_active' => 1, 'check_permissions' => TRUE, 'return' => array('title', 'visibility', 'group_type', 'is_hidden'))); $headerfooterList = civicrm_api3('MailingComponent', 'get', $params + array('is_active' => 1, 'return' => array('name', 'component_type', 'is_default', 'body_html', 'body_text'))); $emailAdd = civicrm_api3('Email', 'get', array('sequential' => 1, 'return' => "email", 'contact_id' => $contactID)); $mesTemplate = civicrm_api3('MessageTemplate', 'get', $params + array('sequential' => 1, 'is_active' => 1, 'return' => array("id", "msg_title"), 'workflow_id' => array('IS NULL' => ""))); $mailTokens = civicrm_api3('Mailing', 'gettokens', array('entity' => array('contact', 'mailing'), 'sequential' => 1)); $fromAddress = civicrm_api3('OptionValue', 'get', $params + array('option_group_id' => "from_email_address", 'domain_id' => CRM_Core_Config::domainID())); CRM_Core_Resources::singleton()->addSetting(array('crmMailing' => array('civiMails' => $civiMails['values'], 'campaignEnabled' => in_array('CiviCampaign', $config->enableComponents), 'groupNames' => $groupNames['values'], 'headerfooterList' => $headerfooterList['values'], 'mesTemplate' => $mesTemplate['values'], 'emailAdd' => $emailAdd['values'], 'mailTokens' => $mailTokens['values'], 'contactid' => $contactID, 'requiredTokens' => CRM_Utils_Token::getRequiredTokens(), 'enableReplyTo' => (int) CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'replyTo'), 'disableMandatoryTokensCheck' => (int) CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::MAILING_PREFERENCES_NAME, 'disable_mandatory_tokens_check'), 'fromAddress' => $fromAddress['values'], 'defaultTestEmail' => civicrm_api3('Contact', 'getvalue', array('id' => 'user_contact_id', 'return' => 'email')), 'visibility' => CRM_Utils_Array::makeNonAssociative(CRM_Core_SelectValues::groupVisibility()), 'workflowEnabled' => CRM_Mailing_Info::workflowEnabled())))->addPermissions(array('view all contacts', 'access CiviMail', 'create mailings', 'schedule mailings', 'approve mailings', 'delete in CiviMail', 'edit message templates')); return $result; }
/** * Run dashboard. * * @return void */ public function run() { // Add dashboard js and css $resources = CRM_Core_Resources::singleton(); $resources->addScriptFile('civicrm', 'js/jquery/jquery.dashboard.js', 0, 'html-header', FALSE); $resources->addStyleFile('civicrm', 'css/dashboard.css'); $resetCache = CRM_Utils_Request::retrieve('resetCache', 'Positive', CRM_Core_DAO::$_nullObject); CRM_Utils_System::setTitle(ts('CiviCRM Home')); $session = CRM_Core_Session::singleton(); $contactID = $session->get('userID'); if ($resetCache) { CRM_Core_BAO_Dashboard::resetDashletCache($contactID); } // call hook to get html from other modules // ignored but needed to prevent warnings $contentPlacement = CRM_Utils_Hook::DASHBOARD_BELOW; $html = CRM_Utils_Hook::dashboard($contactID, $contentPlacement); if (is_array($html)) { $this->assign_by_ref('hookContent', $html); $this->assign('hookContentPlacement', $contentPlacement); } $communityMessages = CRM_Core_CommunityMessages::create(); if ($communityMessages->isEnabled()) { $message = $communityMessages->pick(); if ($message) { $this->assign('communityMessages', $communityMessages->evalMarkup($message['markup'])); } } return parent::run(); }
/** * Determine the URL of a resource file * * @param array $params * Array with keys: * - ext: string, extension name. see CRM_Core_Resources::getUrl * - file: string, relative file path. see CRM_Core_Resources::getUrl * @param CRM_Core_Smarty $smarty * * @return string */ function smarty_function_crmResURL($params, &$smarty) { $res = CRM_Core_Resources::singleton(); if (!array_key_exists('file', $params)) { $params['file'] = NULL; } return $res->getUrl($params['ext'], $params['file'], $params['addCacheCode']); }