/** * View/Edit Form * */ public function actionEditForm(array $variables = array()) { $variables['brandNewForm'] = false; $variables['navigation'] = $this->navigation(); if (!empty($variables['formId'])) { if (empty($variables['form'])) { $variables['form'] = craft()->formBuilder2_form->getFormById($variables['formId']); $variables['crumbs'] = array(array('label' => Craft::t('FormBuilder 2'), 'url' => UrlHelper::getUrl('formbuilder2')), array('label' => Craft::t('Forms'), 'url' => UrlHelper::getUrl('formbuilder2/forms')), array('label' => $variables['formId'], 'url' => UrlHelper::getUrl('formbuilder2/forms/' . $variables['formId'] . '/edit'))); if (!$variables['form']) { throw new HttpException(404); } // Get Logo Asset $customEmailLogo = $variables['form']->notificationSettings['templateSettings']['emailCustomLogo']; if ($customEmailLogo) { $criteria = craft()->elements->getCriteria(ElementType::Asset); $criteria->id = $customEmailLogo[0]; $criteria->limit = 1; $elements = $criteria->find(); } else { $elements = []; } $variables['elements'] = $elements; } $variables['title'] = $variables['form']->name; } else { if (empty($variables['form'])) { $variables['form'] = new FormBuilder2_FormModel(); $variables['brandNewForm'] = true; $variables['crumbs'] = array(array('label' => Craft::t('FormBuilder 2'), 'url' => UrlHelper::getUrl('formbuilder2')), array('label' => Craft::t('Forms'), 'url' => UrlHelper::getUrl('formbuilder2/forms')), array('label' => Craft::t('New Form'), 'url' => UrlHelper::getUrl('formbuilder2/forms/new'))); } $variables['title'] = Craft::t('Create a new form'); } $this->renderTemplate('formbuilder2/forms/_edit', $variables); }
/** * Edit a Redirect. * * @param array $variables * @throws HttpException */ public function actionEditRedirect(array $variables = array()) { //Get method options $variables['methodOptions'] = sproutSeo()->redirects->getMethods(); //Set title $variables['subTitle'] = Craft::t('Create a new redirect'); // Now let's set up the actual redirect if (empty($variables['redirect'])) { if (!empty($variables['redirectId'])) { //Set title $variables['subTitle'] = Craft::t('Edit redirect'); $variables['redirect'] = sproutSeo()->redirects->getRedirectById($variables['redirectId']); if (!$variables['redirect']) { throw new HttpException(404); } } else { $variables['redirect'] = new SproutSeo_RedirectModel(); } } // Set the "Continue Editing" URL $variables['continueEditingUrl'] = 'sproutseo/redirects/{id}'; // Breadcrumbs $variables['crumbs'] = array(array('label' => Craft::t('Redirects'), 'url' => UrlHelper::getUrl('redirects'))); $this->renderTemplate('sproutseo/redirects/_edit', $variables); }
/** * Edit an asset source. * * @param array $variables * * @throws HttpException * @return null */ public function actionEditSource(array $variables = array()) { if (empty($variables['source'])) { if (!empty($variables['sourceId'])) { $variables['source'] = craft()->assetSources->getSourceById($variables['sourceId']); if (!$variables['source']) { throw new HttpException(404); } $variables['sourceType'] = craft()->assetSources->populateSourceType($variables['source']); } else { $variables['source'] = new AssetSourceModel(); $variables['sourceType'] = craft()->assetSources->getSourceType('Local'); } } if (empty($variables['sourceType'])) { $variables['sourceType'] = craft()->assetSources->populateSourceType($variables['source']); } if (craft()->getEdition() == Craft::Pro) { $sourceTypes = craft()->assetSources->getAllSourceTypes(); $variables['sourceTypes'] = AssetSourceTypeVariable::populateVariables($sourceTypes); } $variables['isNewSource'] = !$variables['source']->id; if ($variables['isNewSource']) { $variables['title'] = Craft::t('Create a new asset source'); } else { $variables['title'] = $variables['source']->name; } $variables['crumbs'] = array(array('label' => Craft::t('Settings'), 'url' => UrlHelper::getUrl('settings')), array('label' => Craft::t('Assets'), 'url' => UrlHelper::getUrl('settings/assets')), array('label' => Craft::t('Asset Sources'), 'url' => UrlHelper::getUrl('settings/assets'))); $variables['tabs'] = array('settings' => array('label' => Craft::t('Settings'), 'url' => '#assetsource-settings'), 'fieldlayout' => array('label' => Craft::t('Field Layout'), 'url' => '#assetsource-fieldlayout')); $this->renderTemplate('settings/assets/sources/_edit', $variables); }
/** * Edit an device. * * @param array $variables * * @throws HttpException */ public function actionEditDevice(array $variables = array()) { if (!empty($variables['appHandle'])) { $variables['app'] = craft()->pushNotifications_apps->getAppByHandle($variables['appHandle']); } elseif (!empty($variables['appId'])) { $variables['app'] = craft()->pushNotifications_apps->getAppById($variables['appId']); } if (empty($variables['app'])) { throw new HttpException(404); } // Now let's set up the actual device if (empty($variables['device'])) { if (!empty($variables['deviceId'])) { $variables['device'] = craft()->pushNotifications_devices->getDeviceById($variables['deviceId']); if (!$variables['device']) { throw new HttpException(404); } } else { $variables['device'] = new PushNotifications_DeviceModel(); $variables['device']->appId = $variables['app']->id; } } if (!$variables['device']->id) { $variables['title'] = Craft::t('Create a new device'); } else { $variables['title'] = $variables['device']->title; } // Breadcrumbs $variables['crumbs'] = array(array('label' => Craft::t('Push Notifications'), 'url' => UrlHelper::getUrl('pushnotifications')), array('label' => $variables['app']->name, 'url' => UrlHelper::getUrl('pushnotifications'))); // Set the "Continue Editing" URL $variables['continueEditingUrl'] = 'pushnotifications/devices/' . $variables['app']->handle . '/{id}'; // Render the template! $this->renderTemplate('pushnotifications/devices/_edit', $variables); }
public function init() { parent::init(); $user = craft()->userSession->getUser(); if (craft()->request->isCpRequest()) { $allNavs = craft()->cpNav_nav->getDefaultOrUserNavs(); if ($user) { if ($this->getSettings()->showQuickAddMenu && $user->can('quickAddMenu')) { $this->insertJsForQuickMenuAdd($allNavs); } } if ($allNavs) { foreach ($allNavs as $nav) { // Allow links to be opened in new window - insert some small JS if ($nav->newWindow) { $this->insertJsForNewWindow($nav); } // Check to ensure this page is enabled - otherwise simply redirect to first available menu item if (craft()->request->path == $nav->url) { if (!$nav->enabled) { $enabledNavs = craft()->cpNav_nav->getAllNavsByAttributes(array('enabled' => true)); // We're on a page that's disabled - redirect to the first enabled one! craft()->request->redirect(UrlHelper::getUrl($enabledNavs[0]->url)); } } else { if (craft()->request->path == preg_replace(sprintf('/^(https?:\\/\\/)?(%s)?\\/?%s\\//', preg_quote(craft()->getSiteUrl(''), '/'), preg_quote(craft()->config->get('cpTrigger')), '/'), '', $nav->url) && $nav->enabled && $nav->manualNav) { // Add some JavaScript to correct the selected nav item for manually added navigation items. // Have to do this with JavaScript for now as the nav item selection is made after the modifyCpNav hook. $this->insertJsForManualNavSelection($nav); } } } } } }
public function getInputHtml($name, $value) { // Include JavaScript & CSS craft()->templates->includeJsResource('simplemeta/simple.meta.js'); craft()->templates->includeCssResource('simplemeta/simple.meta.css'); // Whether any assets sources exist $sources = craft()->assets->findFolders(); $variables['assetsSourceExists'] = count($sources); // URL to create a new assets source $variables['newAssetsSourceUrl'] = UrlHelper::getUrl('settings/assets/sources/new'); if (!empty($value)) { $simpleMetaModel = SimpleMeta_SimpleMetaModel::populateModel($value); } else { $simpleMetaModel = new SimpleMeta_SimpleMetaModel(); $simpleMetaModel->handle = $name; } // Set assets $simplemetaAssets = array('socialOGImage' => $simpleMetaModel->socialOGImageId, 'socialTwitterGalleryImages' => $simpleMetaModel->socialTwitterGalleryImagesId, 'socialTwitterPhoto' => $simpleMetaModel->socialTwitterPhotoId, 'socialTwitterProductImage' => $simpleMetaModel->socialTwitterProductImageId, 'socialTwitterSummaryImage' => $simpleMetaModel->socialTwitterSummaryImageId, 'socialTwitterSummaryLargeImage' => $simpleMetaModel->socialTwitterSummaryLargeImageId); foreach ($simplemetaAssets as $key => $value) { if ($value) { $asset = craft()->elements->getElementById($value); $variables[$key . 'Elements'] = array($asset); $variables[$key . 'Id'] = $asset->id; } else { $variables[$key . 'Elements'] = array(); $variables[$key . 'Id'] = ""; } } // Set element type $variables['elementType'] = craft()->elements->getElementType(ElementType::Asset); $data = array_merge($simpleMetaModel->getAttributes(), $variables); return craft()->templates->render('simplemeta/input', $data); }
/** * Add additional information to the image after the model has fetched * an image from the database */ public function afterFetch() { $this->resizedUrl = $this->getDI()->get('imageLocation') . $this->id . '_1024.jpg'; $this->thumbUrl = $this->getDI()->get('imageLocation') . $this->id . '_thumb.jpg'; $this->originalUrl = str_replace(UrlHelper::getUrl($this->getDI()), 'http://hack4dk.dr.dk', $this->url); $this->imagePageUrl = UrlHelper::getUrl($this->getDI()) . '?image_id=' . $this->id; }
/** * Returns the URL to a specific page * * @param int $page * * @return string|null */ public function getPageUrl($page) { if ($page >= 1 && $page <= $this->totalPages) { $path = craft()->request->getPath(); $params = array(); if ($page != 1) { $pageTrigger = craft()->config->get('pageTrigger'); if (!is_string($pageTrigger) || !strlen($pageTrigger)) { $pageTrigger = 'p'; } // Is this query string-based pagination? if ($pageTrigger[0] === '?') { $pageTrigger = trim($pageTrigger, '?='); if ($pageTrigger === 'p') { // Avoid conflict with the main 'p' param $pageTrigger = 'pg'; } $params = array($pageTrigger => $page); } else { if ($path) { $path .= '/'; } $path .= $pageTrigger . $page; } } return UrlHelper::getUrl($path, $params); } }
public function actionEditForm(array $variables = array()) { if (!empty($variables['formId'])) { if (empty($variables['form'])) { $variables['form'] = craft()->formerly_forms->getFormById($variables['formId']); $variables['questions'] = craft()->formerly_forms->getQuestionsByFormId($variables['formId'], 'id'); if (!$variables['form']) { throw new HttpException(404); } } $variables['title'] = $variables['form']->name; } else { if (empty($variables['form'])) { $user = craft()->userSession->getUser(); $form = new Formerly_FormModel(); $form->emails = array(array('to' => '{email}', 'from' => $user->email, 'subject' => 'Thank you for your enquiry', 'body' => "<p>Hi {name},</p>\n<p>Thanks for your enquiry! We'll get back to you shortly.</p>\n<p>{$user->name}</p>"), array('to' => $user->email, 'from' => '{email}', 'subject' => 'Website enquiry', 'body' => '')); $questions = array('new_1' => new Formerly_QuestionModel(array('name' => 'Name', 'handle' => 'name', 'type' => Formerly_QuestionType::PlainText, 'required' => true)), 'new_2' => new Formerly_QuestionModel(array('name' => 'Email', 'handle' => 'email', 'type' => Formerly_QuestionType::Email, 'required' => true)), 'new_3' => new Formerly_QuestionModel(array('name' => 'Message', 'handle' => 'message', 'type' => Formerly_QuestionType::MultilineText, 'required' => true))); $variables['form'] = $form; $variables['questions'] = $questions; } $variables['title'] = Craft::t('New form'); } $variables['crumbs'] = array(array('label' => Craft::t('Formerly'), 'url' => UrlHelper::getUrl('formerly'))); $this->renderTemplate('formerly/forms/_edit', $variables); }
/** * Returns the field's input HTML. * * @param string $name * @param mixed $value * @return string */ public function getInputHtml($name, $value) { $id = craft()->templates->formatInputId($name); craft()->templates->includeCssResource('twitter/css/tweet.css'); craft()->templates->includeJsResource('twitter/js/TweetInput.js'); craft()->templates->includeJs('new TweetInput("' . craft()->templates->namespaceInputId($id) . '");'); $tweet = $value; $html = ""; if ($tweet && isset($tweet['id_str'])) { $url = 'https://twitter.com/' . $tweet['user']['screen_name'] . '/status/' . $tweet['id_str']; if (craft()->request->isSecureConnection()) { $profileImageUrl = $tweet['user']['profile_image_url_https']; } else { $profileImageUrl = $tweet['user']['profile_image_url']; } if (craft()->twitter_plugin->checkDependencies()) { $html .= '<div class="tweet-preview">' . '<div class="tweet-image" style="background-image: url(' . $profileImageUrl . ');"></div> ' . '<div class="tweet-user">' . '<span class="tweet-user-name">' . $tweet['user']['name'] . '</span> ' . '<a class="tweet-user-screenname light" href="http://twitter.com/' . $tweet['user']['screen_name'] . '" target="_blank">@' . $tweet['user']['screen_name'] . '</a>' . '</div>' . '<div class="tweet-text">' . $tweet['text'] . '</div>' . '</div>'; } } else { $url = $value; $preview = ''; } if (!craft()->twitter_plugin->checkDependencies()) { $html .= '<p class="light">' . Craft::t("Twitter plugin is not configured properly. Please check {url} for more informations.", array('url' => Craft::t('<a href="' . UrlHelper::getUrl('twitter/settings') . '">{title}</a>', array('title' => 'Twitter plugin settings')))) . '</p>'; } return '<div class="tweet">' . craft()->templates->render('_includes/forms/text', array('id' => $id, 'name' => $name, 'value' => $url, 'placeholder' => Craft::t('Enter a tweet URL or ID'))) . '<div class="spinner hidden"></div>' . $html . '</div>'; }
/** * Check requirements * * @return bool */ public function checkRequirements($redirect = false) { // dependencies $plugin = craft()->plugins->getPlugin('analytics'); $pluginDependencies = $plugin->getPluginDependencies(); if (count($pluginDependencies) > 0) { if ($redirect) { $url = UrlHelper::getUrl('analytics/install'); craft()->request->redirect($url); } return false; } else { // oauth $provider = craft()->oauth->getProvider('google'); if ($provider && $provider->isConfigured()) { $token = craft()->analytics_oauth->getToken(); if ($token) { return true; } else { return false; } } else { if ($redirect) { $url = UrlHelper::getUrl('analytics/install'); craft()->request->redirect($url); } return false; } } }
/** * Get the sections of the CP. * * @return array */ public function nav($iconSize = 32) { $nav['dashboard'] = array('label' => Craft::t('Dashboard'), 'icon' => 'gauge'); if (craft()->sections->getTotalEditableSections()) { $nav['entries'] = array('label' => Craft::t('Entries'), 'icon' => 'section'); } $globals = craft()->globals->getEditableSets(); if ($globals) { $nav['globals'] = array('label' => Craft::t('Globals'), 'url' => 'globals/' . $globals[0]->handle, 'icon' => 'globe'); } if (craft()->categories->getEditableGroupIds()) { $nav['categories'] = array('label' => Craft::t('Categories'), 'icon' => 'categories'); } if (craft()->assetSources->getTotalViewableSources()) { $nav['assets'] = array('label' => Craft::t('Assets'), 'icon' => 'assets'); } if (craft()->getEdition() == Craft::Pro && craft()->userSession->checkPermission('editUsers')) { $nav['users'] = array('label' => Craft::t('Users'), 'icon' => 'users'); } // Add any Plugin nav items $plugins = craft()->plugins->getPlugins(); foreach ($plugins as $plugin) { if ($plugin->hasCpSection()) { $pluginHandle = $plugin->getClassHandle(); if (craft()->userSession->checkPermission('accessPlugin-' . $pluginHandle)) { $lcHandle = StringHelper::toLowerCase($pluginHandle); $iconPath = craft()->path->getPluginsPath() . $lcHandle . '/resources/icon-mask.svg'; if (IOHelper::fileExists($iconPath)) { $iconSvg = IOHelper::getFileContents($iconPath); } else { $iconSvg = false; } $nav[$lcHandle] = array('label' => $plugin->getName(), 'iconSvg' => $iconSvg); } } } if (craft()->userSession->isAdmin()) { $nav['settings'] = array('label' => Craft::t('Settings'), 'icon' => 'settings'); } // Allow plugins to modify the nav craft()->plugins->call('modifyCpNav', array(&$nav)); // Figure out which item is selected, and normalize the items $firstSegment = craft()->request->getSegment(1); if ($firstSegment == 'myaccount') { $firstSegment = 'users'; } foreach ($nav as $handle => &$item) { if (is_string($item)) { $item = array('label' => $item); } $item['sel'] = $handle == $firstSegment; if (isset($item['url'])) { $item['url'] = UrlHelper::getUrl($item['url']); } else { $item['url'] = UrlHelper::getUrl($handle); } } return $nav; }
public function getSettingsUrl() { if ($this->isPluginEnabled()) { return UrlHelper::getUrl('/golive/settings'); } else { return false; } }
/** * View Submission Link in Elements Table * */ public function viewEntryLinkOnElementsTable() { $entry = craft()->formBuilder2_entry->getSubmissionById($this->id); // url('formbuilder2/forms/' ~ form.id ~ '/edit') $url = UrlHelper::getUrl('formbuilder2/entries/' . $this->id . '/edit'); $link = '<a href="' . $url . '" class="view-submission">' . Craft::t('View Submission') . '</a>'; $this->__set('submission', $link); return $this; }
/** * Get Field Groups to add a field to. * * @return array */ public function newFieldInGroup() { $commands = array(); $groups = craft()->fields->getAllGroups(); foreach ($groups as $group) { $commands[] = array('name' => $group->name, 'url' => UrlHelper::getUrl('settings/fields/new?groupId=' . $group->id)); } return $commands; }
/** * Get all available sections to add a new entry to. * * @return array */ public function newEntry() { $commands = array(); $availableSections = craft()->sections->getEditableSections(); foreach ($availableSections as $section) { if ($section->type != SectionType::Single) { $commands[] = array('name' => $section->name, 'url' => UrlHelper::getUrl('entries/' . $section->handle . '/new')); } } return $commands; }
/** * Require OAuth with configured provider * * @return bool */ public function requireOauth() { $provider = craft()->oauth->getProvider('google'); if ($provider && $provider->isConfigured()) { return true; } else { $url = UrlHelper::getUrl('analytics/install'); craft()->request->redirect($url); return false; } }
/** * View/Edit Builder * */ public function actionCreateEditBuilder(array $variables = array()) { if (!empty($variables['navigationId'])) { $navigationId = $variables['navigationId']; } else { craft()->userSession->setError(Craft::t('Invalid Navigation')); } $variables['title'] = 'Navigation Builder'; $variables['crumbs'] = array(array('label' => Craft::t('Navigation Builder'), 'url' => UrlHelper::getUrl('navigationbuilder')), array('label' => Craft::t('Builder'), 'url' => UrlHelper::getUrl('navigationbuilder/builder')), array('label' => Craft::t('Primary Name'), 'url' => UrlHelper::getUrl('navigationbuilder/builder/1'))); $this->renderTemplate('navigationbuilder/builder/_edit', $variables); }
/** * Returns the URL to a specific page * * @param int $page * * @return string|null */ public function getPageUrl($page) { if ($page >= 1 && $page <= $this->totalPages) { $path = craft()->request->getPath(); if ($page != 1) { if ($path) { $path .= '/'; } $path .= craft()->config->get('pageTrigger') . $page; } return UrlHelper::getUrl($path); } }
/** * Edit an event. * * @param array $variables * @throws HttpException */ public function actionEditEvent(array $variables = array()) { if (!empty($variables['calendarHandle'])) { $variables['calendar'] = craft()->events_calendars->getCalendarByHandle($variables['calendarHandle']); } else { if (!empty($variables['calendarId'])) { $variables['calendar'] = craft()->events_calendars->getCalendarById($variables['calendarId']); } } if (empty($variables['calendar'])) { throw new HttpException(404); } // Now let's set up the actual event if (empty($variables['event'])) { if (!empty($variables['eventId'])) { $variables['event'] = craft()->events->getEventById($variables['eventId']); if (!$variables['event']) { throw new HttpException(404); } } else { $variables['event'] = new Events_EventModel(); $variables['event']->calendarId = $variables['calendar']->id; } } // Tabs $variables['tabs'] = array(); foreach ($variables['calendar']->getFieldLayout()->getTabs() as $index => $tab) { // Do any of the fields on this tab have errors? $hasErrors = false; if ($variables['event']->hasErrors()) { foreach ($tab->getFields() as $field) { if ($variables['event']->getErrors($field->getField()->handle)) { $hasErrors = true; break; } } } $variables['tabs'][] = array('label' => $tab->name, 'url' => '#tab' . ($index + 1), 'class' => $hasErrors ? 'error' : null); } if (!$variables['event']->id) { $variables['title'] = Craft::t('Create a new event'); } else { $variables['title'] = $variables['event']->title; } // Breadcrumbs $variables['crumbs'] = array(array('label' => Craft::t('Events'), 'url' => UrlHelper::getUrl('events')), array('label' => $variables['calendar']->name, 'url' => UrlHelper::getUrl('events'))); // Set the "Continue Editing" URL $variables['continueEditingUrl'] = 'events/' . $variables['calendar']->handle . '/{id}'; // Render the template! $this->renderTemplate('events/_edit', $variables); }
/** * @param string|null $path * @param bool $fetch * * @return array */ public static function getAlerts($path = null, $fetch = false) { $alerts = array(); $user = craft()->userSession->getUser(); if (!$user) { return $alerts; } if (craft()->updates->isUpdateInfoCached() || $fetch) { // Fetch the updates regardless of whether we're on the Updates page or not, because the other alerts are // relying on cached Elliott info $updateModel = craft()->updates->getUpdates(); // Get the license key status $licenseKeyStatus = craft()->et->getLicenseKeyStatus(); // Invalid license? if ($licenseKeyStatus == LicenseKeyStatus::Invalid) { $alerts[] = Craft::t('Your license key is invalid.'); } else { if (craft()->hasWrongEdition()) { $alerts[] = Craft::t('You’re running Craft {edition} with a Craft {licensedEdition} license.', array('edition' => craft()->getEditionName(), 'licensedEdition' => craft()->getLicensedEditionName())) . ' <a class="go edition-resolution">' . Craft::t('Resolve') . '</a>'; } } if ($path != 'updates' && $user->can('performUpdates')) { if (!empty($updateModel->app->releases)) { if (craft()->updates->criticalCraftUpdateAvailable($updateModel->app->releases)) { $alerts[] = Craft::t('There’s a critical Craft update available.') . ' <a class="go nowrap" href="' . UrlHelper::getUrl('updates') . '">' . Craft::t('Go to Updates') . '</a>'; } } } // Domain mismatch? if ($licenseKeyStatus == LicenseKeyStatus::Mismatched) { $licensedDomain = craft()->et->getLicensedDomain(); $licenseKeyPath = craft()->path->getLicenseKeyPath(); $licenseKeyFile = IOHelper::getFolderName($licenseKeyPath, false) . '/' . IOHelper::getFileName($licenseKeyPath); $message = Craft::t('The license located at {file} belongs to {domain}.', array('file' => $licenseKeyFile, 'domain' => '<a href="http://' . $licensedDomain . '" target="_blank">' . $licensedDomain . '</a>')); // Can they actually do something about it? if ($user->admin) { $action = '<a class="go domain-mismatch">' . Craft::t('Transfer it to this domain') . '</a>'; } else { $action = Craft::t('Please notify one of your site’s admins.'); } $alerts[] = $message . ' ' . $action; } } $allPluginAlerts = craft()->plugins->call('getCpAlerts', array($path, $fetch), true); foreach ($allPluginAlerts as $pluginAlerts) { $alerts = array_merge($alerts, $pluginAlerts); } return $alerts; }
/** * Edit a tag. * * @param array $variables * * @throws HttpException */ public function actionEditTag(array $variables = array()) { if (!empty($variables['groupHandle'])) { $variables['group'] = craft()->tags->getTagGroupByHandle($variables['groupHandle']); } elseif (!empty($variables['groupId'])) { $variables['group'] = craft()->tags->getTagGroupById($variables['groupId']); } if (empty($variables['group'])) { throw new HttpException(404); } // Now let's set up the actual tag if (empty($variables['tag'])) { if (!empty($variables['tagId'])) { $variables['tag'] = craft()->tags->getTagById($variables['tagId'], craft()->locale->id); if (!$variables['tag']) { throw new HttpException(404); } } else { $variables['tag'] = new TagModel(); $variables['tag']->groupId = $variables['group']->id; } } // Tabs $variables['tabs'] = array(); foreach ($variables['group']->getFieldLayout()->getTabs() as $index => $tab) { // Do any of the fields on this tab have errors? $hasErrors = false; if ($variables['tag']->hasErrors()) { foreach ($tab->getFields() as $field) { if ($variables['tag']->getErrors($field->getField()->handle)) { $hasErrors = true; break; } } } $variables['tabs'][] = array('label' => $tab->name, 'url' => '#tab' . ($index + 1), 'class' => $hasErrors ? 'error' : null); } if (!$variables['tag']->id) { $variables['title'] = Craft::t('Create a new tag'); } else { $variables['title'] = $variables['tag']->title; } // Breadcrumbs $variables['crumbs'] = array(array('label' => Craft::t('Tag Manager'), 'url' => UrlHelper::getUrl('tagmanager')), array('label' => $variables['group']->name, 'url' => UrlHelper::getUrl('tagmanager'))); // Set the "Continue Editing" URL $variables['continueEditingUrl'] = 'tagmanager/' . $variables['group']->handle . '/{id}'; // Render the template! $this->renderTemplate('tagmanager/_edit', $variables); }
/** * Looks up an asset path in the manifest and returns the asset revision's URL. * * @param string $assetPath * * @return string */ public function getRevUrl($assetPath = '') { $manifest = $this->getManifest(); if ($manifest) { if (substr($assetPath, 0, strlen($manifest->manifestFolder)) == $manifest->manifestFolder) { $assetPath = substr($assetPath, strlen($manifest->manifestFolder)); } if (array_key_exists($assetPath, $manifest->manifest)) { $revAssetPath = $manifest->manifestFolder; $revAssetPath .= $manifest->manifest[$assetPath]; return UrlHelper::getUrl($revAssetPath); } } return UrlHelper::getUrl($assetPath); }
public function actionViewSubmission(array $variables = array()) { if (!empty($variables['submissionId'])) { if (empty($variables['submission'])) { $variables['submission'] = craft()->formerly_submissions->getSubmissionById($variables['submissionId']); if (!$variables['submission']) { throw new HttpException(404); } $form = $variables['submission']->getForm(); $variables['crumbs'] = array(array('label' => Craft::t('Formerly'), 'url' => UrlHelper::getUrl('formerly')), array('label' => $form->name, 'url' => UrlHelper::getUrl('formerly'))); } } else { throw new HttpException(404); } $this->renderTemplate('formerly/submissions/_view', $variables); }
/** * common tasks for all actions */ function before_filter(&$action, &$args) { parent::before_filter($action, $args); $this->course_id = $args[0]; if (!in_array($action, words('apply claim delete order_down order_up'))) { $this->redirect($this->url_for('/apply/' . $action)); return false; } if (!get_object_type($this->course_id, array('sem'))) { throw new Trails_Exception(400); } $course = Seminar::GetInstance($this->course_id); $enrolment_info = $course->getEnrolmentInfo($GLOBALS['user']->id); //Ist bereits Teilnehmer/Admin/freier Zugriff -> gleich weiter if ($enrolment_info['enrolment_allowed'] && (in_array($enrolment_info['cause'], words('root courseadmin member')) || $enrolment_info['cause'] == 'free_access' && $GLOBALS['user']->id == 'nobody')) { $redirect_url = UrlHelper::getUrl('seminar_main.php', array('auswahl' => $this->course_id)); if (Request::isXhr()) { $this->response->add_header('X-Location', $redirect_url); $this->render_nothing(); } else { $this->redirect($redirect_url); } return false; } //Grundsätzlich verboten if (!$enrolment_info['enrolment_allowed']) { throw new AccessDeniedException($enrolment_info['description']); } PageLayout::setTitle($course->getFullname() . " - " . _("Veranstaltungsanmeldung")); PageLayout::addSqueezePackage('enrolment'); if (Request::isXhr()) { $this->set_layout(null); $this->response->add_header('X-No-Buttons', 1); $this->response->add_header('X-Title', PageLayout::getTitle()); $request = Request::getInstance(); foreach ($request as $key => $value) { $request[$key] = studip_utf8decode($value); } } else { $this->set_layout($GLOBALS['template_factory']->open('layouts/base')); } $this->set_content_type('text/html;charset=windows-1252'); if (Request::submitted('cancel')) { $this->redirect(URLHelper::getURL('dispatch.php/course/details/', array('sem_id' => $this->course_id))); } }
public function actionSso() { craft()->log->removeRoute('WebLogRoute'); craft()->log->removeRoute('ProfileLogRoute'); if ($this->ssoEnabled) { $customerId = 0; $auth_token = ''; $redirect_url = ''; $fcsid = craft()->request->getParam("fcsid", ""); $timestamp = craft()->request->getParam("timestamp", 0) + 60 * 30; // valid for 30 minutes if (!craft()->userSession->isLoggedIn()) { // No member if ($this->ssoRequireLogin) { // No guest checkouts allowed, redirect to the sites login page $redirect_url = UrlHelper::getUrl(craft()->config->getLoginPath()); } } else { $user = craft()->userSession->getUser(); $customerId = craft()->foxyCart->getCustomerId($user); if ($user && !$customerId) { // Member doesn't have a FoxyCart customer id, see if the member exists on FoxyCart $xml = craft()->foxyCart->api("customer_get", array("customer_email" => $user->email)); if ($xml !== false) { $customerId = (string) $xml->customer_id; } if (!$customerId || !$xml) { // Member doesn't exist, create one for FoxyCart $customerId = craft()->foxyCart->updateFoxyCartCustomer($user); } if (!$customerId) { FoxyCartPlugin::log("[sso] User creation failed.", LogLevel::Error); // TODO: What should happen here? A user is logged in, but everything failed to get their current customerId? Would that even happen? } else { // Update the current user's customerId as retrieved from FoxyCart craft()->foxyCart->saveCustomerId($user, $customerId); } } } $auth_token = sha1($customerId . '|' . $timestamp . '|' . $this->apikey); $redirect_url = $redirect_url != '' ? $redirect_url : 'https://' . $this->storedomain . '/checkout?fc_auth_token=' . $auth_token . '&fc_customer_id=' . $customerId . '×tamp=' . $timestamp . '&fcsid=' . $fcsid; craft()->request->redirect($redirect_url); } }
/** * Get the sections of the CP. * * @return array */ public function nav() { $nav['dashboard'] = array('name' => Craft::t('Dashboard')); if (craft()->sections->getTotalEditableSections()) { $nav['entries'] = array('name' => Craft::t('Entries')); } $globals = craft()->globals->getEditableSets(); if ($globals) { $nav['globals'] = array('name' => Craft::t('Globals'), 'url' => 'globals/' . $globals[0]->handle); } if (craft()->categories->getEditableGroupIds()) { $nav['categories'] = array('name' => Craft::t('Categories')); } if (craft()->assetSources->getTotalViewableSources()) { $nav['assets'] = array('name' => Craft::t('Assets')); } if (craft()->getEdition() == Craft::Pro && craft()->userSession->checkPermission('editUsers')) { $nav['users'] = array('name' => Craft::t('Users')); } // Add any Plugin nav items $plugins = craft()->plugins->getPlugins(); foreach ($plugins as $plugin) { if ($plugin->hasCpSection()) { if (craft()->userSession->checkPermission('accessPlugin-' . $plugin->getClassHandle())) { $lcHandle = StringHelper::toLowerCase($plugin->getClassHandle()); $nav[$lcHandle] = array('name' => $plugin->getName()); } } } $firstSegment = craft()->request->getSegment(1); if ($firstSegment == 'myaccount') { $firstSegment = 'users'; } foreach ($nav as $handle => &$item) { $item['sel'] = $handle == $firstSegment; if (isset($item['url'])) { $item['url'] = UrlHelper::getUrl($item['url']); } else { $item['url'] = UrlHelper::getUrl($handle); } } return $nav; }
public function getCpTabs() { $settings = $this->getPlugin()->settings; $tabs = array(); if ($settings['enabledTabs']) { if (in_array('feeds', (array) $settings['enabledTabs']) || $settings['enabledTabs'] == '*') { $tabs['feeds'] = array('label' => Craft::t('Feeds'), 'url' => UrlHelper::getUrl('feedme')); } if (in_array('logs', (array) $settings['enabledTabs']) || $settings['enabledTabs'] == '*') { $tabs['logs'] = array('label' => Craft::t('Logs'), 'url' => UrlHelper::getUrl('feedme/logs')); } if (in_array('help', (array) $settings['enabledTabs']) || $settings['enabledTabs'] == '*') { $tabs['help'] = array('label' => Craft::t('Help'), 'url' => UrlHelper::getUrl('feedme/help')); } if (in_array('settings', (array) $settings['enabledTabs']) || $settings['enabledTabs'] == '*') { $tabs['settings'] = array('label' => Craft::t('Settings'), 'url' => UrlHelper::getUrl('settings/plugins/feedme')); } } return $tabs; }
/** * Get navigations by a given command. * * @param array $variables * * @return array */ public function getNavigationsByCommand($variables) { // We need to know which type if (!isset($variables['command'])) { return false; } // Do we have any navigations? $navigations = $this->getNavigations(); if (!$navigations) { craft()->amCommand->setReturnMessage(Craft::t('There are no navigations yet.')); return false; } // Return commands based on given command type $commands = array(); $commandType = $variables['command'] == 'settings' ? 'edit' : 'build'; foreach ($navigations as $navigation) { $commands[] = array('name' => $navigation->name, 'url' => UrlHelper::getUrl('amnav/' . $commandType . '/' . $navigation->id)); } return $commands; }
/** * Edit a form. * * @param array $variables * @throws HttpException * @throws Exception */ public function actionEdit(array $variables = array()) { $variables['brandNewForm'] = false; if (!empty($variables['formId'])) { if (empty($variables['form'])) { $variables['form'] = craft()->applications_forms->getFormById($variables['formId']); if (!$variables['form']) { throw new HttpException(404); } } $variables['title'] = $variables['form']->name; } else { if (empty($variables['form'])) { $variables['form'] = new Applications_FormModel(); $variables['brandNewForm'] = true; } $variables['title'] = Craft::t('Create a new form'); } $variables['crumbs'] = array(array('label' => Craft::t('Applications'), 'url' => UrlHelper::getUrl('applications')), array('label' => Craft::t('Forms'), 'url' => UrlHelper::getUrl('applications/forms'))); $this->renderTemplate('applications/forms/_edit', $variables); }