Beispiel #1
0
 public function get($class)
 {
     $full_class_name = 'PerchAPI_' . $class;
     switch ($class) {
         case 'DB':
             return PerchDB::fetch();
             break;
         case 'Lang':
             if ($this->Lang === false) {
                 $this->Lang = new $full_class_name($this->version, $this->app_id);
             }
             return $this->Lang;
             break;
         case 'Settings':
             return PerchSettings::fetch();
             break;
         default:
             if ($this->Lang === false) {
                 $this->Lang = new PerchAPI_Lang($this->version, $this->app_id);
             }
             return new $full_class_name($this->version, $this->app_id, $this->Lang);
             break;
     }
     return false;
 }
 public static function createGeocoder()
 {
     $PerchSettings = PerchSettings::fetch();
     $apiKey = $PerchSettings->get('root_locator_google_api_key')->settingValue();
     $httpAdapter = self::createHttpAdaptor();
     $provider = new GoogleMaps($httpAdapter, null, null, true, $apiKey);
     return self::createGeocoderLibrary($provider);
 }
 public function campaignURL()
 {
     $Settings = PerchSettings::fetch();
     $url_template = $Settings->get('perch_mailchimp_campaign_url')->val();
     $this->tmp_url_vars = $this->details;
     $out = preg_replace_callback('/{([A-Za-z0-9_\\-]+)}/', array($this, "substitute_url_vars"), $url_template);
     $this->tmp_url_vars = false;
     return $out;
 }
 public function campaignURL()
 {
     $Settings = PerchSettings::fetch();
     $url_template = $Settings->get('perch_mailchimp_campaign_url')->val();
     $url_vars = $this->details;
     $out = preg_replace_callback('/{([A-Za-z0-9_\\-]+)}/', function ($matches) use($url_vars) {
         if (isset($url_vars[$matches[1]])) {
             return $url_vars[$matches[1]];
         }
     }, $url_template);
     return $out;
 }
 /**
  * Get an instance of the DrewM\MailChimp library
  */
 protected function get_api_instance()
 {
     if (is_object($this->api_instance)) {
         return $this->api_instance;
     }
     $Settings = PerchSettings::fetch();
     $api_key = $Settings->get('perch_mailchimp_api_key')->val();
     $instance = new MailChimpAPI($api_key);
     if (is_object($instance)) {
         $instance->verify_ssl = false;
         $this->api_instance = $instance;
         return $instance;
     }
     return false;
 }
 function __construct($version, $app_id = false)
 {
     $Settings = PerchSettings::fetch();
     if (defined('PERCH_DB_DATABASE')) {
         $this->lang = $Settings->get('lang')->settingValue();
     }
     if (!$this->lang) {
         $this->lang = 'en-gb';
     }
     $ds = DIRECTORY_SEPARATOR;
     if (!$app_id) {
         $current_app = PerchUtil::get_current_app();
         $path = $current_app['section'];
     } else {
         $path = 'addons' . $ds . 'apps' . $ds . $app_id;
     }
     $this->lang_dir = PERCH_PATH . $ds . $path . $ds . 'lang';
     $this->lang_file = $this->lang_dir . $ds . $this->lang . '.txt';
 }
 public static function format_result($key, $options, $result)
 {
     $result['campaignSubject'] = $result['col1'];
     $result['campaignSlug'] = $result['col2'];
     $result['campaignSendTime'] = $result['col3'];
     $result['campaignText'] = $result['col4'];
     $result['campaignID'] = $result['col5'];
     $result['_id'] = $result['col5'];
     $Settings = PerchSettings::fetch();
     $html = PerchUtil::excerpt_char($result['campaignText'], $options['excerpt-chars'], true);
     // keyword highlight
     $html = preg_replace('/(' . $key . ')/i', '<span class="keyword">$1</span>', $html);
     $match = array();
     $match['url'] = $Settings->get('perch_mailchimp_campaign_url')->settingValue();
     self::$tmp_url_vars = $result;
     $match['url'] = preg_replace_callback('/{([A-Za-z0-9_\\-]+)}/', array('self', "substitute_url_vars"), $match['url']);
     self::$tmp_url_vars = false;
     $match['title'] = $result['campaignSubject'];
     $match['excerpt'] = $html;
     $match['key'] = $key;
     return $match;
 }
 public static function format_result($key, $options, $result)
 {
     $result['eventTitle'] = $result['col1'];
     $result['eventSlug'] = $result['col2'];
     $result['eventDateTime'] = $result['col3'];
     $result['eventDescHTML'] = $result['col4'];
     $result['eventID'] = $result['col5'];
     $result['_id'] = $result['col5'];
     $Settings = PerchSettings::fetch();
     $html = PerchUtil::excerpt_char($result['eventDescHTML'], $options['excerpt-chars'], true);
     // keyword highlight
     $html = preg_replace('/(' . $key . ')/i', '<span class="keyword">$1</span>', $html);
     $match = array();
     $match['url'] = $Settings->get('perch_events_detail_url')->settingValue();
     self::$tmp_url_vars = $result;
     $match['url'] = preg_replace_callback('/{([A-Za-z0-9_\\-]+)}/', array('self', "substitute_url_vars"), $match['url']);
     self::$tmp_url_vars = false;
     $match['title'] = $result['eventTitle'] . ' - ' . strftime('%d %b %Y', strtotime($result['col3']));
     $match['excerpt'] = $html;
     $match['key'] = $key;
     return $match;
 }
 public function to_array($template_ids = false)
 {
     $out = parent::to_array();
     $Categories = new PerchEvents_Categories();
     $cats = $Categories->get_for_event($this->id());
     $out['category_slugs'] = '';
     $out['category_names'] = '';
     if (PerchUtil::count($cats)) {
         $slugs = array();
         $names = array();
         foreach ($cats as $Category) {
             $slugs[] = $Category->categorySlug();
             $names[] = $Category->categoryTitle();
             // for template
             $out[$Category->categorySlug()] = true;
         }
         $out['category_slugs'] = implode(' ', $slugs);
         $out['category_names'] = implode(', ', $names);
     }
     if (PerchUtil::count($template_ids) && in_array('eventURL', $template_ids)) {
         $Settings = PerchSettings::fetch();
         $url_template = $Settings->get('perch_events_detail_url')->val();
         $this->tmp_url_vars = $out;
         $out['eventURL'] = preg_replace_callback('/{([A-Za-z0-9_\\-]+)}/', array($this, "substitute_url_vars"), $url_template);
         $this->tmp_url_vars = false;
     }
     if (isset($out['eventDynamicFields']) && $out['eventDynamicFields'] != '') {
         $dynamic_fields = PerchUtil::json_safe_decode($out['eventDynamicFields'], true);
         if (PerchUtil::count($dynamic_fields)) {
             foreach ($dynamic_fields as $key => $value) {
                 $out['perch_' . $key] = $value;
             }
         }
         $out = array_merge($dynamic_fields, $out);
     }
     return $out;
 }
 public function postURL()
 {
     $Settings = PerchSettings::fetch();
     $url_template = $Settings->get('perch_blog_post_url')->val();
     $this->tmp_url_vars = $this->details;
     if (!$this->Section) {
         $this->_load_section();
     }
     if (is_object($this->Section)) {
         $this->tmp_url_vars = array_merge($this->tmp_url_vars, $this->Section->to_array());
     }
     if (!$this->Blog) {
         $this->_load_blog();
     }
     if (is_object($this->Blog)) {
         $this->tmp_url_vars = array_merge($this->tmp_url_vars, $this->Blog->to_array());
     }
     $out = preg_replace_callback('/{([A-Za-z0-9_\\-]+)}/', array($this, "substitute_url_vars"), $url_template);
     $this->tmp_url_vars = false;
     return $out;
 }
     $result = $Image->update($data);
 } else {
     if (isset($data['imageID'])) {
         unset($data['imageID']);
     }
     $result = $Images->create($data);
     if ($result) {
         $new_image = true;
         $Image = $result;
     } else {
         $message = $HTML->failure_message('Sorry, that image could not be updated.');
     }
 }
 if ($result) {
     $bucket_name = 'default';
     $Settings = PerchSettings::fetch();
     $bucket_mode = $Settings->get('perch_gallery_bucket_mode')->val();
     if ($bucket_mode == '') {
         $bucket_mode = 'single';
     }
     switch ($bucket_mode) {
         case 'dynamic':
             $Album = $Albums->find($albumID);
             if (is_object($Album)) {
                 $bucket_name = $Album->albumSlug();
             }
             break;
         default:
             $bucket_name = $Settings->get('perch_gallery_bucket')->val();
             break;
     }
Beispiel #12
0
 public function reload()
 {
     PerchUtil::debug('Reloading language data');
     $Settings = PerchSettings::fetch();
     $this->lang = $Settings->get('lang')->settingValue();
     if (file_exists(PerchUtil::file_path(PERCH_PATH . '/addons/lang/' . $this->lang . '.txt'))) {
         $this->lang_dir = PerchUtil::file_path(PERCH_PATH . '/addons/lang');
     } else {
         $this->lang_dir = PerchUtil::file_path(PERCH_CORE . '/lang');
     }
     $this->lang_file = $this->lang_dir . DIRECTORY_SEPARATOR . $this->lang . '.txt';
     $this->translations = false;
 }
 private static function get_site_url()
 {
     $Settings = PerchSettings::fetch();
     $siteURL = $Settings->get('siteURL')->settingValue();
     if (substr($siteURL, 0, 4) != 'http') {
         $siteURL = 'http://' . $_SERVER['HTTP_HOST'];
     }
     return $siteURL;
 }
 public static function get_helper_js()
 {
     $Settings = PerchSettings::fetch();
     if ($Settings->get('content_frontend_edit')->val()) {
         $Content = PerchContent::fetch();
         $Page = $Content->get_page();
         $r = '';
         if (is_object($Page)) {
             $r = '<script src="' . PERCH_LOGINPATH . '/core/assets/js/public_helper.js" async></script>';
             $r .= '<script async>var cms_path=\'' . PerchUtil::html(PERCH_LOGINPATH . '/core/apps/content/page/?id=' . $Page->id()) . '\';</script>';
         }
         return $r;
     }
     return false;
 }
 public function render_settings($html)
 {
     if (strpos($html, 'perch:setting') !== false) {
         $Settings = PerchSettings::fetch();
         $settings = $Settings->get_as_array();
         $this->load($html);
         $this->namespace = 'setting';
         $html = $this->render($settings);
         $s = '/<perch:setting[^>]*\\/>/s';
         $html = preg_replace($s, '', $html);
     }
     return $html;
 }
 /**
  * Return google static map preview of coordinates
  *
  * @return bool|string
  */
 public function preview()
 {
     $PerchSettings = PerchSettings::fetch();
     $apiKey = $PerchSettings->get('root_locator_google_api_key')->settingValue();
     if (!$this->hasCoordinates() || !$apiKey) {
         return false;
     }
     $base_url = 'https://maps.googleapis.com/maps/api/staticmap?';
     $parameters = ['size' => '400x200', 'maptype' => 'roadmap', 'markers' => 'color:red|' . $this->addressLatitude() . ',' . $this->addressLongitude(), 'key' => $apiKey];
     return '<img class="map-preview" src="' . $base_url . http_build_query($parameters) . '" />';
 }