示例#1
0
 /**
  * @since 1.7.5
  */
 function add_hooks()
 {
     // If Gravity Forms isn't active or compatibile, stop loading
     if (false === GravityView_Compatibility::is_valid()) {
         return;
     }
     // Migrate Class
     require_once GRAVITYVIEW_DIR . 'includes/class-migrate.php';
     // Don't load tooltips if on Gravity Forms, otherwise it overrides translations
     if (!GFForms::is_gravity_page()) {
         require_once GFCommon::get_base_path() . '/tooltips.php';
     }
     require_once GRAVITYVIEW_DIR . 'includes/admin/metaboxes/class-gravityview-admin-metaboxes.php';
     require_once GRAVITYVIEW_DIR . 'includes/admin/entry-list.php';
     require_once GRAVITYVIEW_DIR . 'includes/class-change-entry-creator.php';
     /** @since 1.6 */
     require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-admin-duplicate-view.php';
     // Filter Admin messages
     add_filter('post_updated_messages', array($this, 'post_updated_messages'));
     add_filter('bulk_post_updated_messages', array($this, 'post_updated_messages'));
     add_filter('plugin_action_links_' . plugin_basename(GRAVITYVIEW_FILE), array($this, 'plugin_action_links'));
     add_action('plugins_loaded', array($this, 'backend_actions'), 100);
     //Hooks for no-conflict functionality
     add_action('wp_print_scripts', array($this, 'no_conflict_scripts'), 1000);
     add_action('admin_print_footer_scripts', array($this, 'no_conflict_scripts'), 9);
     add_action('wp_print_styles', array($this, 'no_conflict_styles'), 1000);
     add_action('admin_print_styles', array($this, 'no_conflict_styles'), 11);
     add_action('admin_print_footer_scripts', array($this, 'no_conflict_styles'), 1);
     add_action('admin_footer', array($this, 'no_conflict_styles'), 1);
 }
 function init()
 {
     if (is_admin()) {
         // add settings page into Gravity Forms > Settings
         GFForms::add_settings_page(__('Force SSL', 'gf-force-ssl'), array($this, 'plugin_settings_page'));
     }
 }
 static function enqueue_gravity_forms_scripts()
 {
     GFForms::register_scripts();
     $scripts = array('thickbox', 'gform_gravityforms', 'wp-lists', 'gform_json', 'gform_field_filter', 'plupload-all');
     foreach ($scripts as $script) {
         wp_enqueue_script($script);
     }
 }
示例#4
0
 /**
  * @inheritDoc
  */
 function setUp()
 {
     parent::setUp();
     /* Remove temporary tables which causes problems with GF */
     remove_all_filters('query', 10);
     /* Ensure the database is correctly set up */
     @GFForms::setup_database();
     $this->factory = new GF_UnitTest_Factory($this);
 }
示例#5
0
function _manually_load_plugin()
{
    require dirname(__FILE__) . '/../../gravityforms/gravityforms.php';
    GFForms::setup(true);
    require dirname(__FILE__) . '/../../gravityformssurvey/survey.php';
    require dirname(__FILE__) . '/../../gravityformsquiz/quiz.php';
    require dirname(__FILE__) . '/../../gravityformspolls/polls.php';
    require dirname(__FILE__) . '/../pdf.php';
}
示例#6
0
 /**
  * Plugins loaded
  */
 public function plugins_loaded()
 {
     // Add-on
     // The `class_exists` call is required to prevent strage errors on some hosting environments
     if (Pronamic_WP_Pay_Class::method_exists('GFForms', 'include_payment_addon_framework')) {
         GFForms::include_payment_addon_framework();
         if (class_exists('GFPaymentAddOn')) {
             $this->addon = new Pronamic_WP_Pay_Extensions_GravityForms_PaymentAddOn();
         }
     }
 }
示例#7
0
 /**
  * Load GravityView
  *
  * @since 1.9
  */
 public function load()
 {
     require_once $this->plugin_dir . '/tmp/gravityforms/gravityforms.php';
     $this->load_rest_api();
     require_once $this->plugin_dir . '/gravityview.php';
     /* Remove temporary tables which causes problems with GF */
     remove_all_filters('query', 10);
     // set up Gravity Forms database
     @GFForms::setup(true);
     $this->create_stubs();
 }
示例#8
0
 /**
  * Load the plugin.
  *
  * @since 2.0.0
  */
 public function load_plugin()
 {
     if (!method_exists('GFForms', 'include_addon_framework')) {
         return;
     }
     add_action('init', array($this, 'register_rewrite_rules'));
     add_filter('query_vars', array($this, 'query_vars'));
     add_action('template_redirect', array($this, 'template_redirect'));
     add_action('wp_footer', array($this, 'wp_footer'));
     // Load the Gravity Forms add-on framework and iframe add-on.
     GFForms::include_addon_framework();
     $this->addon = new GravityFormsIframe_Addon($this);
 }
 public static function load()
 {
     if (!class_exists('GFForms') || !class_exists('GFAddOn')) {
         return;
     }
     if (!method_exists('GFForms', 'include_feed_addon_framework')) {
         return;
     }
     GFForms::include_feed_addon_framework();
     require_once GFELOQUA_PATH . '/api/class.eloqua.api.php';
     require_once GFELOQUA_PATH . '/includes/helpers.php';
     require_once GFELOQUA_PATH . 'gfeloqua.class.php';
     GFAddOn::register('GFEloqua');
 }
示例#10
0
 public function setUp()
 {
     /*
      * Replace set up with cut down version 
      * so we don't use 'temporary' tables in MySQL
      */
     $this->cut_down_setup();
     /* initialise GF tables */
     GFForms::setup(true);
     /* Load our plugin functions */
     GFPDF_InstallUpdater::check_filesystem_api();
     GFPDF_InstallUpdater::maybe_deploy();
     /* create GF data */
     $this->create_form_and_entries();
     $this->setupConfiguration();
 }
示例#11
0
 /**
  * @since 1.15
  * @return void
  */
 private function include_required_files()
 {
     // Migrate Class
     require_once GRAVITYVIEW_DIR . 'includes/class-migrate.php';
     // Don't load tooltips if on Gravity Forms, otherwise it overrides translations
     if (class_exists('GFCommon') && class_exists('GFForms') && !GFForms::is_gravity_page()) {
         require_once GFCommon::get_base_path() . '/tooltips.php';
     }
     require_once GRAVITYVIEW_DIR . 'includes/admin/metaboxes/class-gravityview-admin-metaboxes.php';
     require_once GRAVITYVIEW_DIR . 'includes/admin/entry-list.php';
     require_once GRAVITYVIEW_DIR . 'includes/class-change-entry-creator.php';
     /** @since 1.15 **/
     require_once GRAVITYVIEW_DIR . 'includes/admin/class-gravityview-support-port.php';
     /** @since 1.6 */
     require_once GRAVITYVIEW_DIR . 'includes/class-gravityview-admin-duplicate-view.php';
 }
 public function setUp()
 {
     /*
      * For some reasons this wasn't automatically set up so
      * we are running it here.
      */
     $this->factory = new WP_UnitTest_Factory();
     /*
      * Replace set up with cut down version
      * so we don't use 'temporary' tables in MySQL
      */
     $this->cut_down_setup();
     /* initialise GF tables */
     GFForms::setup(true);
     /* Load our plugin functions */
     GFPDF_InstallUpdater::check_filesystem_api();
     GFPDF_InstallUpdater::maybe_deploy();
     /* create GF data */
     $this->create_form_and_entries();
 }
示例#13
0
 public function init()
 {
     if (!GFCommon::current_user_can_any($this->_capabilities)) {
         return;
     }
     // is any GF page
     if (GFForms::is_gravity_page()) {
         // add top toolbar menu item
         add_filter('gform_toolbar_menu', array($this, 'add_toolbar_menu_item'), 10, 2);
         // add custom form action
         add_filter('gform_form_actions', array($this, 'add_form_action'), 10, 2);
     }
     // is results page
     if (rgget('view') == "gf_results_{$this->_slug}") {
         // add the results view
         add_action('gform_entries_view', array($this, 'add_view'), 10, 2);
         add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
         // tooltips
         require_once GFCommon::get_base_path() . '/tooltips.php';
         add_filter('gform_tooltips', array($this, 'add_tooltips'));
     }
 }
 /** Activate the plugin, mock all the things */
 public function setUp()
 {
     parent::setUp();
     /* Activate GravityForms */
     require_once WP_PLUGIN_DIR . '/gravityforms/gravityforms.php';
     require_once WP_PLUGIN_DIR . '/gravityforms/export.php';
     /* Something happened in newer versions, and we can't get the lead cache to initialize
     			properly, we need to do this manually */
     global $_gform_lead_meta;
     if ($_gform_lead_meta === null) {
         $_gform_lead_meta = array();
     }
     GFForms::setup();
     GFCache::flush();
     /* Import some ready-made forms */
     $this->assertEquals(GFExport::import_file(dirname(__FILE__) . '/forms.xml'), 2);
     /* Add a faster turnaround schedule */
     add_filter('cron_schedules', function ($s) {
         $s['minute'] = array('interval' => 60, 'display' => 'Minutely');
         return $s;
     });
     /* Get an instance of our plugin */
     $this->digest = new GFDigestNotifications();
 }
示例#15
0
        public function results_page($form_id, $page_title, $gf_page, $gf_view)
        {
            $form_id = absint($form_id);
            if (empty($form_id)) {
                $forms = RGFormsModel::get_forms();
                if (!empty($forms)) {
                    $form_id = $forms[0]->id;
                }
            }
            $form = GFFormsModel::get_form_meta($form_id);
            $form = gf_apply_filters(array('gform_form_pre_results', $form_id), $form);
            // set up filter vars
            $start_date = rgget('start');
            $end_date = rgget('end');
            $all_fields = $form['fields'];
            $filter_settings = GFCommon::get_field_filter_settings($form);
            $filter_settings = apply_filters('gform_filters_pre_results', $filter_settings, $form);
            $filter_settings = array_values($filter_settings);
            // reset the numeric keys in case some filters have been unset
            $filter_fields = rgget('f');
            $filter_operators = rgget('o');
            $filter_values = rgget('v');
            $filters = array();
            $init_vars = array();
            if (!empty($filter_fields)) {
                $init_vars['mode'] = rgget('mode');
                foreach ($filter_fields as $i => $filter_field) {
                    $filters[$i]['field'] = $filter_field;
                    $filters[$i]['operator'] = $filter_operators[$i];
                    $filters[$i]['value'] = $filter_values[$i];
                }
                $init_vars['filters'] = $filters;
            }
            $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG || isset($_GET['gform_debug']) ? '' : '.min';
            $admin_css_url = GFCommon::get_base_url() . "/css/admin{$min}.css?ver=" . GFForms::$version;
            ?>
			<script type="text/javascript">
				var gresultsFields = <?php 
            echo json_encode($all_fields);
            ?>
;
				var gresultsFilterSettings = <?php 
            echo json_encode($filter_settings);
            ?>
;
				var gresultsInitVars = <?php 
            echo json_encode($init_vars);
            ?>
;

				<?php 
            GFCommon::gf_global();
            ?>
				<?php 
            GFCommon::gf_vars();
            ?>
			</script>

			<link rel="stylesheet"
			      href="<?php 
            echo esc_url($admin_css_url);
            ?>
"
			      type="text/css"/>
			<div class="wrap gforms_edit_form <?php 
            echo GFCommon::get_browser_class();
            ?>
">

				<?php 
            GFCommon::form_page_title($form);
            ?>
				<?php 
            GFCommon::display_dismissible_message();
            ?>
				<?php 
            GFForms::top_toolbar();
            ?>
				<?php 
            if (false === empty($all_fields)) {
                ?>

					<div id="poststuff" class="metabox-holder has-right-sidebar">
						<div id="side-info-column" class="inner-sidebar">
							<div id="gresults-results-filter" class="postbox">
								<h3 style="cursor: default;"><?php 
                echo $this->_search_title;
                ?>
</h3>

								<div id="gresults-results-filter-content">
									<form id="gresults-results-filter-form" action="" method="GET">
										<input type="hidden" id="gresults-page-slug" name="page"
										       value="<?php 
                echo esc_attr($gf_page);
                ?>
">
										<input type="hidden" id="gresults-view-slug" name="view"
										       value="<?php 
                echo esc_attr($gf_view);
                ?>
">
										<input type="hidden" id="gresults-form-id" name="id"
										       value="<?php 
                echo esc_attr($form_id);
                ?>
">

										<?php 
                $filter_ui = array('fields' => array('label' => esc_attr__('Filters', 'gravityforms'), 'tooltip' => 'gresults_filters', 'markup' => '<div id="gresults-results-field-filters-container">
																<!-- placeholder populated by js -->
															 </div>'), 'date_range' => array('label' => esc_attr__('Date Range', 'gravityforms'), 'tooltip' => 'gresults_date_range', 'markup' => '<div style="width:90px; float:left; ">
																	<label
																		for="gresults-results-filter-date-start">' . esc_html__('Start', 'gravityforms') . '</label>
																	<input type="text" id="gresults-results-filter-date-start" name="start"
																		   style="width:80px"
																		   class="gresults-datepicker"
																		   value="' . $start_date . '"/>
																</div>
																<div style="width:90px; float:left; ">
																	<label
																		for="gresults-results-filter-date-end">' . esc_html__('End', 'gravityforms') . '</label>
																	<input type="text" id="gresults-results-filter-date-end" name="end"
																		   style="width:80px"
																		   class="gresults-datepicker"
																		   value="' . $end_date . '"/>
																</div>'));
                $filter_ui = apply_filters('gform_filter_ui', $filter_ui, $form_id, $page_title, $gf_page, $gf_view);
                foreach ($filter_ui as $name => $filter) {
                    ?>
											<div class='gresults-results-filter-section-label'>
												<?php 
                    echo $filter['label'];
                    ?>
												&nbsp;<?php 
                    gform_tooltip(rgar($filter, 'tooltip'), 'tooltip_bottomleft');
                    ?>
											</div>
											<?php 
                    echo $filter['markup'];
                }
                ?>

										<br style="clear:both"/>

										<div id="gresults-results-filter-buttons">
											<input type="submit" id="gresults-results-filter-submit-button"
											       class="button button-primary button-large"
											       value="<?php 
                esc_attr_e('Apply filters', 'gravityforms');
                ?>
">
											<input type="button" id="gresults-results-filter-clear-button"
											       class="button button-secondary button-large"
											       value="<?php 
                esc_attr_e('Clear', 'gravityforms');
                ?>
"
											       onclick="gresults.clearFilterForm();"
											       onkeypress="gresults.clearFilterForm();">

											<div class="gresults-filter-loading"
											     style="display:none; float:right; margin-top:5px;">
												<i class='gficon-gravityforms-spinner-icon gficon-spin'></i>
											</div>
										</div>
									</form>
								</div>
							</div>
						</div>
					</div>
					<div class="gresults-filter-loading" style="display:none;margin:0 5px 10px 0;">
						<i class='gficon-gravityforms-spinner-icon gficon-spin'></i>&nbsp;
						<a href="javascript:void(0);" onclick="javascript:gresultsAjaxRequest.abort()" onkeypress="javascript:gresultsAjaxRequest.abort()"><?php 
                esc_html_e('Cancel', 'gravityforms');
                ?>
</a>
					</div>

					<div id="gresults-results-wrapper">
						<div id="gresults-results">&nbsp;
						</div>
					</div>

				<?php 
            } else {
                _e('This form does not have any fields that can be used for results', 'gravityforms');
            }
            ?>
			</div>


		<?php 
        }
 public static function ensure_tables_exist()
 {
     global $wpdb;
     $form_table_name = self::get_form_table_name();
     $form_count = $wpdb->get_var("SELECT count(0) FROM {$form_table_name}");
     if ($wpdb->last_error) {
         GFCommon::log_debug('GFFormsModel::ensure_tables_exist(): Blog ' . get_current_blog_id() . ' - Form database table does not exist. Forcing database setup.');
         GFForms::setup_database();
     }
 }
<?php

GFForms::include_feed_addon_framework();
class GFZohoCRM extends GFFeedAddOn
{
    protected $_version = GF_ZOHOCRM_VERSION;
    protected $_min_gravityforms_version = '1.9.14.26';
    protected $_slug = 'gravityformszohocrm';
    protected $_path = 'gravityformszohocrm/zohocrm.php';
    protected $_full_path = __FILE__;
    protected $_url = 'http://www.gravityforms.com';
    protected $_title = 'Gravity Forms Zoho CRM Add-On';
    protected $_short_title = 'Zoho CRM';
    protected $_enable_rg_autoupgrade = true;
    protected $api = null;
    protected $fields_transient_name = 'gform_zohocrm_fields';
    private static $_instance = null;
    /* Permissions */
    protected $_capabilities_settings_page = 'gravityforms_zohocrm';
    protected $_capabilities_form_settings = 'gravityforms_zohocrm';
    protected $_capabilities_uninstall = 'gravityforms_zohocrm_uninstall';
    /* Members plugin integration */
    protected $_capabilities = array('gravityforms_zohocrm', 'gravityforms_zohocrm_uninstall');
    /**
     * Get instance of this class.
     * 
     * @access public
     * @static
     * @return GFZohoCRM
     */
    public static function get_instance()
示例#18
0
 /**
  * Determine if the last page for the current form object is being submitted or rendered (depending on the provided $mode).
  *
  * @param  array  $form A Gravity Forms form object.
  * @param  string $mode Mode to check for: 'submit' or 'render'
  *
  * @return boolean
  */
 public static function is_last_page($form, $mode = 'submit')
 {
     $page_number = self::get_source_page($form['id']);
     $field_values = GFForms::post('gform_field_values');
     $target_page = self::get_target_page($form, $page_number, $field_values);
     if ($mode == 'render') {
         $is_valid = rgars(self::$submission, "{$form['id']}/is_valid");
         $is_last_page = $is_valid && $target_page == self::get_max_page_number($form);
     } else {
         $is_last_page = (string) $target_page === '0';
     }
     return $is_last_page;
 }
示例#19
0
 /**
  * Performs upgrade tasks when the version of the Add-On changes. To add additional upgrade tasks, override the upgrade() function, which will only get executed when the plugin version has changed.
  */
 protected function setup()
 {
     //Upgrading add-on
     $installed_version = get_option("gravityformsaddon_" . $this->_slug . "_version");
     //Making sure version has really changed. Gets around aggressive caching issue on some sites that cause setup to run multiple times.
     if ($installed_version != $this->_version) {
         $installed_version = GFForms::get_wp_option("gravityformsaddon_" . $this->_slug . "_version");
     }
     //Upgrade if version has changed
     if ($installed_version != $this->_version) {
         $this->upgrade($installed_version);
         update_option("gravityformsaddon_" . $this->_slug . "_version", $this->_version);
     }
 }
 private function upgrade_payment($previous_versions)
 {
     global $wpdb;
     $charset_collate = GFFormsModel::get_db_charset();
     $sql = "CREATE TABLE {$wpdb->prefix}gf_addon_payment_transaction (\n                  id int(10) unsigned not null auto_increment,\n                  lead_id int(10) unsigned not null,\n                  transaction_type varchar(30) not null,\n                  transaction_id varchar(50),\n                  is_recurring tinyint(1) not null default 0,\n                  amount decimal(19,2),\n                  date_created datetime,\n                  PRIMARY KEY  (id),\n                  KEY lead_id (lead_id),\n                  KEY transaction_type (transaction_type),\n                  KEY type_lead (lead_id,transaction_type)\n                ) {$charset_collate};";
     GFFormsModel::dbDelta($sql);
     if ($this->_supports_callbacks) {
         $sql = "CREATE TABLE {$wpdb->prefix}gf_addon_payment_callback (\n                      id int(10) unsigned not null auto_increment,\n                      lead_id int(10) unsigned not null,\n                      addon_slug varchar(250) not null,\n                      callback_id varchar(250),\n                      date_created datetime,\n                      PRIMARY KEY  (id),\n                      KEY addon_slug_callback_id (addon_slug(50),callback_id(100))\n                    ) {$charset_collate};";
         GFFormsModel::dbDelta($sql);
         //droping legacy index
         GFForms::drop_index("{$wpdb->prefix}gf_addon_payment_callback", 'slug_callback_id');
     }
 }
示例#21
0
 public static function upload()
 {
     GFCommon::log_debug('GFAsyncUpload::upload(): Starting.');
     if ($_SERVER['REQUEST_METHOD'] != 'POST') {
         status_header(404);
         die;
     }
     header('Content-Type: text/html; charset=' . get_option('blog_charset'));
     send_nosniff_header();
     nocache_headers();
     status_header(200);
     // If the file is bigger than the server can accept then the form_id might not arrive.
     // This might happen if the file is bigger than the max post size ini setting.
     // Validation in the browser reduces the risk of this happening.
     if (!isset($_REQUEST['form_id'])) {
         GFCommon::log_debug('GFAsyncUpload::upload(): File upload aborted because the form_id was not found. The file may have been bigger than the max post size ini setting.');
         self::die_error(500, __('Failed to upload file.', 'gravityforms'));
     }
     $form_id = absint($_REQUEST['form_id']);
     $form_unique_id = rgpost('gform_unique_id');
     $form = GFAPI::get_form($form_id);
     if (empty($form) || !$form['is_active']) {
         die;
     }
     if (rgar($form, 'requireLogin')) {
         if (!is_user_logged_in()) {
             die;
         }
         check_admin_referer('gform_file_upload_' . $form_id, '_gform_file_upload_nonce_' . $form_id);
     }
     if (!ctype_alnum($form_unique_id)) {
         die;
     }
     $target_dir = GFFormsModel::get_upload_path($form_id) . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;
     if (!is_dir($target_dir)) {
         if (!wp_mkdir_p($target_dir)) {
             GFCommon::log_debug("GFAsyncUpload::upload(): Couldn't create the tmp folder: " . $target_dir);
             self::die_error(500, __('Failed to upload file.', 'gravityforms'));
         }
     }
     $time = current_time('mysql');
     $y = substr($time, 0, 4);
     $m = substr($time, 5, 2);
     //adding index.html files to all subfolders
     if (!file_exists(GFFormsModel::get_upload_root() . '/index.html')) {
         GFForms::add_security_files();
     } else {
         if (!file_exists(GFFormsModel::get_upload_path($form_id) . '/index.html')) {
             GFCommon::recursive_add_index_file(GFFormsModel::get_upload_path($form_id));
         } else {
             if (!file_exists(GFFormsModel::get_upload_path($form_id) . "/{$y}/index.html")) {
                 GFCommon::recursive_add_index_file(GFFormsModel::get_upload_path($form_id) . "/{$y}");
             } else {
                 GFCommon::recursive_add_index_file(GFFormsModel::get_upload_path($form_id) . "/{$y}/{$m}");
             }
         }
     }
     if (!file_exists($target_dir . '/index.html')) {
         GFCommon::recursive_add_index_file($target_dir);
     }
     $uploaded_filename = $_FILES['file']['name'];
     $file_name = isset($_REQUEST['name']) ? $_REQUEST['name'] : '';
     $field_id = rgpost('field_id');
     $field_id = absint($field_id);
     $field = GFFormsModel::get_field($form, $field_id);
     if (empty($field) || GFFormsModel::get_input_type($field) != 'fileupload') {
         die;
     }
     $file_name = sanitize_file_name($file_name);
     $uploaded_filename = sanitize_file_name($uploaded_filename);
     $allowed_extensions = !empty($field->allowedExtensions) ? GFCommon::clean_extensions(explode(',', strtolower($field->allowedExtensions))) : array();
     $max_upload_size_in_bytes = $field->maxFileSize > 0 ? $field->maxFileSize * 1048576 : wp_max_upload_size();
     $max_upload_size_in_mb = $max_upload_size_in_bytes / 1048576;
     if ($_FILES['file']['size'] > 0 && $_FILES['file']['size'] > $max_upload_size_in_bytes) {
         self::die_error(104, sprintf(__('File exceeds size limit. Maximum file size: %dMB', 'gravityforms'), $max_upload_size_in_mb));
     }
     if (GFCommon::file_name_has_disallowed_extension($file_name) || GFCommon::file_name_has_disallowed_extension($uploaded_filename)) {
         GFCommon::log_debug("GFAsyncUpload::upload(): Illegal file extension: {$file_name}");
         self::die_error(104, __('The uploaded file type is not allowed.', 'gravityforms'));
     }
     if (!empty($allowed_extensions)) {
         if (!GFCommon::match_file_extension($file_name, $allowed_extensions) || !GFCommon::match_file_extension($uploaded_filename, $allowed_extensions)) {
             GFCommon::log_debug("GFAsyncUpload::upload(): The uploaded file type is not allowed: {$file_name}");
             self::die_error(104, sprintf(__('The uploaded file type is not allowed. Must be one of the following: %s', 'gravityforms'), strtolower($field['allowedExtensions'])));
         }
     }
     $whitelisting_disabled = apply_filters('gform_file_upload_whitelisting_disabled', false);
     if (empty($allowed_extensions) && !$whitelisting_disabled) {
         // Whitelist the file type
         $valid_uploaded_filename = GFCommon::check_type_and_ext($_FILES['file'], $uploaded_filename);
         if (is_wp_error($valid_uploaded_filename)) {
             self::die_error($valid_uploaded_filename->get_error_code(), $valid_uploaded_filename->get_error_message());
         }
         $valid_file_name = GFCommon::check_type_and_ext($_FILES['file'], $file_name);
         if (is_wp_error($valid_uploaded_filename)) {
             self::die_error($valid_file_name->get_error_code(), $valid_file_name->get_error_message());
         }
     }
     $tmp_file_name = $form_unique_id . '_input_' . $field_id . '_' . $file_name;
     $tmp_file_name = sanitize_file_name($tmp_file_name);
     $file_path = $target_dir . $tmp_file_name;
     $cleanup_target_dir = true;
     // Remove old files
     $max_file_age = 5 * 3600;
     // Temp file age in seconds
     // Remove old temp files
     if ($cleanup_target_dir) {
         if (is_dir($target_dir) && ($dir = opendir($target_dir))) {
             while (($file = readdir($dir)) !== false) {
                 $tmp_file_path = $target_dir . $file;
                 // Remove temp file if it is older than the max age and is not the current file
                 if (preg_match('/\\.part$/', $file) && filemtime($tmp_file_path) < time() - $max_file_age && $tmp_file_path != "{$file_path}.part") {
                     GFCommon::log_debug('GFAsyncUpload::upload(): Deleting file: ' . $tmp_file_path);
                     @unlink($tmp_file_path);
                 }
             }
             closedir($dir);
         } else {
             GFCommon::log_debug('GFAsyncUpload::upload(): Failed to open temp directory: ' . $target_dir);
             self::die_error(100, __('Failed to open temp directory.', 'gravityforms'));
         }
     }
     if (isset($_SERVER['HTTP_CONTENT_TYPE'])) {
         $contentType = $_SERVER['HTTP_CONTENT_TYPE'];
     }
     if (isset($_SERVER['CONTENT_TYPE'])) {
         $contentType = $_SERVER['CONTENT_TYPE'];
     }
     $chunk = isset($_REQUEST['chunk']) ? intval($_REQUEST['chunk']) : 0;
     $chunks = isset($_REQUEST['chunks']) ? intval($_REQUEST['chunks']) : 0;
     // Handle non multipart uploads older WebKit versions didn't support multipart in HTML5
     if (strpos($contentType, 'multipart') !== false) {
         if (isset($_FILES['file']['tmp_name']) && is_uploaded_file($_FILES['file']['tmp_name'])) {
             // Open temp file
             $out = @fopen("{$file_path}.part", $chunk == 0 ? 'wb' : 'ab');
             if ($out) {
                 // Read binary input stream and append it to temp file
                 $in = @fopen($_FILES['file']['tmp_name'], 'rb');
                 if ($in) {
                     while ($buff = fread($in, 4096)) {
                         fwrite($out, $buff);
                     }
                 } else {
                     self::die_error(101, __('Failed to open input stream.', 'gravityforms'));
                 }
                 @fclose($in);
                 @fclose($out);
                 @unlink($_FILES['file']['tmp_name']);
             } else {
                 self::die_error(102, __('Failed to open output stream.', 'gravityforms'));
             }
         } else {
             self::die_error(103, __('Failed to move uploaded file.', 'gravityforms'));
         }
     } else {
         // Open temp file
         $out = @fopen("{$file_path}.part", $chunk == 0 ? 'wb' : 'ab');
         if ($out) {
             // Read binary input stream and append it to temp file
             $in = @fopen('php://input', 'rb');
             if ($in) {
                 while ($buff = fread($in, 4096)) {
                     fwrite($out, $buff);
                 }
             } else {
                 self::die_error(101, __('Failed to open input stream.', 'gravityforms'));
             }
             @fclose($in);
             @fclose($out);
         } else {
             self::die_error(102, __('Failed to open output stream.', 'gravityforms'));
         }
     }
     // Check if file has been uploaded
     if (!$chunks || $chunk == $chunks - 1) {
         // Strip the temp .part suffix off
         rename("{$file_path}.part", $file_path);
     }
     if (file_exists($file_path)) {
         GFFormsModel::set_permissions($file_path);
     } else {
         self::die_error(105, __('Upload unsuccessful', 'gravityforms') . ' ' . $uploaded_filename);
     }
     $output = array('status' => 'ok', 'data' => array('temp_filename' => $tmp_file_name, 'uploaded_filename' => str_replace("\\'", "'", urldecode($uploaded_filename))));
     $output = json_encode($output);
     GFCommon::log_debug(sprintf('GFAsyncUpload::upload(): File upload complete. temp_filename: %s  uploaded_filename: %s ', $tmp_file_name, $uploaded_filename));
     gf_do_action('gform_post_multifile_upload', $form['id'], $form, $field, $uploaded_filename, $tmp_file_name, $file_path);
     die($output);
 }
示例#22
0
}
if (!class_exists('RGForms')) {
    require GRAVITYFORMS_BASE_PATH . 'gravityforms.php';
}
//require ABSPATH . 'wp-content/plugins/gravityflow/gravityflow.php';
require dirname(__FILE__) . '/testcase.php';
require dirname(__FILE__) . '/gravityforms-testcase.php';
require dirname(__FILE__) . '/testcase-xmlrpc.php';
require dirname(__FILE__) . '/testcase-ajax.php';
require dirname(__FILE__) . '/exceptions.php';
require dirname(__FILE__) . '/utils.php';
// Update array with plugins to include ...
$plugins_to_active = array('gravityforms/gravityforms.php', 'gravityflow/gravityflow.php');
update_option('active_plugins', $plugins_to_active);
GFForms::setup(true);
GFForms::loaded();
gravity_flow()->setup();
/**
 * A child class of the PHP test runner.
 *
 * Not actually used as a runner. Rather, used to access the protected
 * longOptions property, to parse the arguments passed to the script.
 *
 * If it is determined that phpunit was called with a --group that corresponds
 * to an @ticket annotation (such as `phpunit --group 12345` for bugs marked
 * as #WP12345), then it is assumed that known bugs should not be skipped.
 *
 * If WP_TESTS_FORCE_KNOWN_BUGS is already set in wp-tests-config.php, then
 * how you call phpunit has no effect.
 */
class WP_PHPUnit_TextUI_Command extends PHPUnit_TextUI_Command
示例#23
0
 /**
  * Loads the screen options for the entry detail page.
  *
  * @since 2.0
  * @access public
  * @static
  * @see GFEntryDetail::add_meta_boxes
  */
 public static function load_screen_options()
 {
     $screen = get_current_screen();
     if (!is_object($screen)) {
         return;
     }
     $page = GFForms::get_page();
     if ($page == 'form_list') {
         $args = array('label' => __('Forms per page', 'gravityforms'), 'default' => 20, 'option' => 'gform_forms_per_page');
         add_screen_option('per_page', $args);
     } elseif (in_array($page, array('entry_detail', 'entry_detail_edit'))) {
         require_once GFCommon::get_base_path() . '/entry_detail.php';
         GFEntryDetail::add_meta_boxes();
     }
 }
 public static function ensure_tables_exist()
 {
     global $wpdb;
     $form_table_name = self::get_form_table_name();
     $form_count = $wpdb->get_var("SELECT count(0) FROM {$form_table_name}");
     if ($wpdb->last_error) {
         GFForms::setup(true);
     }
 }
示例#25
0
 static function enqueue_gravity_forms_scripts()
 {
     GFForms::register_scripts();
     $scripts = array('sack', 'gform_gravityforms', 'gform_forms', 'gform_form_admin', 'jquery-ui-autocomplete');
     if (wp_is_mobile()) {
         $scripts[] = 'jquery-touch-punch';
     }
     foreach ($scripts as $script) {
         wp_enqueue_script($script);
     }
 }
示例#26
0
 public static function validate_upgrade($do_upgrade, $hook_extra)
 {
     if (rgar($hook_extra, "plugin") == "gravityforms/gravityforms.php" && !GFForms::has_database_permission($error)) {
         return new WP_Error("no_db_permission", $error);
     }
     return true;
 }
示例#27
0
 public static function action_print_media_templates()
 {
     echo GFForms::get_view('edit-shortcode-form');
 }
示例#28
0
    public static function form_list_page()
    {
        global $wpdb;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        echo GFCommon::get_remote_message();
        $action = RGForms::post("action");
        $bulk_action = RGForms::post("bulk_action");
        $bulk_action = !empty($bulk_action) ? $bulk_action : RGForms::post("bulk_action2");
        if ($action == "trash") {
            check_admin_referer('gforms_update_forms', 'gforms_update_forms');
            $form_id = RGForms::post("action_argument");
            RGFormsModel::trash_form($form_id);
            $message = __('Form moved to the trash.', 'gravityforms');
        } else {
            if ($action == "restore") {
                check_admin_referer('gforms_update_forms', 'gforms_update_forms');
                $form_id = RGForms::post("action_argument");
                RGFormsModel::restore_form($form_id);
                $message = __('Form restored.', 'gravityforms');
            } else {
                if ($action == "delete") {
                    check_admin_referer('gforms_update_forms', 'gforms_update_forms');
                    $form_id = RGForms::post("action_argument");
                    if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
                        RGFormsModel::delete_form($form_id);
                        $message = __('Form deleted.', 'gravityforms');
                    } else {
                        $message = __("You don't have adequate permissions to delete forms.", 'gravityforms');
                    }
                } else {
                    if ($action == "duplicate") {
                        check_admin_referer('gforms_update_forms', 'gforms_update_forms');
                        $form_id = RGForms::post("action_argument");
                        RGFormsModel::duplicate_form($form_id);
                        $message = __('Form duplicated.', 'gravityforms');
                    }
                }
            }
        }
        if ($bulk_action) {
            check_admin_referer('gforms_update_forms', 'gforms_update_forms');
            $form_ids = is_array(rgpost('form')) ? rgpost('form') : array();
            $form_count = count($form_ids);
            switch ($bulk_action) {
                case 'trash':
                    GFFormsModel::trash_forms($form_ids);
                    $message = _n('%s form moved to the trash.', '%s forms moved to the trash.', $form_count, 'gravityforms');
                    break;
                case 'restore':
                    GFFormsModel::restore_forms($form_ids);
                    $message = _n('%s form restored.', '%s forms restored.', $form_count, 'gravityforms');
                    break;
                case 'delete':
                    if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
                        GFFormsModel::delete_forms($form_ids);
                        $message = _n('%s form deleted.', '%s forms deleted.', $form_count, 'gravityforms');
                    } else {
                        $message = __("You don't have adequate permissions to delete forms.", 'gravityforms');
                    }
                    break;
                case 'reset_views':
                    foreach ($form_ids as $form_id) {
                        GFFormsModel::delete_views($form_id);
                    }
                    $message = _n('Views for %s form have been reset.', 'Views for %s forms have been reset.', $form_count, 'gravityforms');
                    break;
                case 'delete_entries':
                    if (GFCommon::current_user_can_any("gravityforms_delete_entries")) {
                        foreach ($form_ids as $form_id) {
                            GFFormsModel::delete_leads_by_form($form_id);
                        }
                        $message = _n('Entries for %s form have been deleted.', 'Entries for %s forms have been deleted.', $form_count, 'gravityforms');
                    } else {
                        $message = __("You don't have adequate permissions to delete entries.", "gravityforms");
                    }
                    break;
                case 'activate':
                    foreach ($form_ids as $form_id) {
                        GFFormsModel::update_form_active($form_id, 1);
                    }
                    $message = _n('%s form has been marked as active.', '%s forms have been marked as active.', $form_count, 'gravityforms');
                    break;
                case 'deactivate':
                    foreach ($form_ids as $form_id) {
                        GFFormsModel::update_form_active($form_id, 0);
                    }
                    $message = _n('%s form has been marked as inactive.', '%s forms have been marked as inactive.', $form_count, 'gravityforms');
                    break;
            }
            if (isset($message)) {
                $message = sprintf($message, $form_count);
            }
        }
        $sort_column = empty($_GET["sort"]) ? "title" : $_GET["sort"];
        $sort_direction = empty($_GET["dir"]) ? "ASC" : $_GET["dir"];
        $active = RGForms::get("active") == "" ? null : RGForms::get("active");
        $trash = RGForms::get("trash") == "" ? false : RGForms::get("trash");
        $trash = esc_attr($trash);
        $forms = RGFormsModel::get_forms($active, $sort_column, $sort_direction, $trash);
        $form_count = RGFormsModel::get_form_count();
        // - new form modal - //
        wp_print_styles(array('thickbox'));
        /*wp_enqueue_script( 'form_admin' );
          wp_print_scripts( array( 'form_admin' ) );*/
        ?>

        <script type="text/javascript">

            jQuery(document).ready(function($) {

                <?php 
        if (rgget('page') == 'gf_new_form') {
            ?>
                loadNewFormModal();
                <?php 
        }
        ?>

                $('.gf_form_action_has_submenu').hover(function(){
                    var l = jQuery(this).offset().left;
                    jQuery(this).find('.gf_submenu')
                        .toggle()
                        .offset({ left: l });
                }, function(){
                    jQuery(this).find('.gf_submenu').hide();
                });


            });

            function loadNewFormModal() {
                resetNewFormModal();
                tb_show('<?php 
        _e('Create a New Form', 'gravityforms');
        ?>
', '#TB_inline?width=375&amp;inlineId=gf_new_form_modal');
                jQuery('#new_form_title').focus();
                return false;
            }

            function saveNewForm() {

                var createButton = jQuery('#save_new_form');
                var spinner = new gfAjaxSpinner(createButton, gf_vars.baseUrl + '/images/spinner.gif');

                // clear error message
                jQuery('#gf_new_form_error_message').html('');

                var origVal = createButton.val();
                createButton.val('<?php 
        _e('Creating Form...', 'gravityforms');
        ?>
');

                var form = {
                    title: jQuery('#new_form_title').val(),
                    description: jQuery('#new_form_description').val(),
                    labelPlacement:'top_label',
                    descriptionPlacement:'below',
                    button: {
                        type: 'text',
                        text: '<?php 
        _e("Submit", "gravityforms");
        ?>
',
                        imageUrl : ''
                    },
                    fields:[]
                }

                jQuery.post(ajaxurl, {
                    form: jQuery.toJSON(form),
                    action: 'gf_save_new_form',
                    gf_save_new_form: '<?php 
        echo wp_create_nonce('gf_save_new_form');
        ?>
'
                }, function(response){

                    spinner.destroy();

                    var respData = jQuery.parseJSON(response);

                    if(respData['error']) {
                        // adding class later otherwise WP moves box up to the top of the page
                        jQuery('#gf_new_form_error_message').html( respData.error );
                        addInputErrorIcon( '#new_form_title' );
                        createButton.val(origVal);
                    } else {
                        location.href = respData.redirect;
                        createButton.val('<?php 
        _e('Saved! Redirecting...', 'gravityforms');
        ?>
');
                    }

                });

            }

            function resetNewFormModal() {
                jQuery('#new_form_title').val('');
                jQuery('#new_form_description').val('');
                jQuery('#gf_new_form_error_message').html('');
                removeInputErrorIcons( '.gf_new_form_modal_container' );
            }

            function addInputErrorIcon( elem ) {
                var elem = jQuery(elem);
                elem.before( '<span class="gf_input_error_icon"></span>');
            }

            function removeInputErrorIcons( elem ) {
                var elem = jQuery(elem);
                elem.find('span.gf_input_error_icon').remove();
            }

        </script>

        <style type="text/css">
        body div#TB_window[style] { width: 405px !important; height:340px !important; margin-left: -202px !important; }
        body #TB_ajaxContent { height: 290px !important; overflow: hidden; }
        .gf_new_form_modal_container { padding: 30px; }
        .gf_new_form_modal_container .setting-row { margin: 0 0 10px; }
        .gf_new_form_modal_container .setting-row label { line-height: 24px; }
        .gf_new_form_modal_container .setting-row input,
        .gf_new_form_modal_container .setting-row textarea { display: block; width: 100%; }
        .gf_new_form_modal_container .setting-row textarea { height: 110px; }
        .gf_new_form_modal_container .submit-row { margin-top: 18px; }
        .gf_new_form_modal_container #gf_new_form_error_message { margin: 0 0 18px 5px !important; color: #BC0B0B; }
        .gf_new_form_modal_container img.gfspinner { position: relative; top: 5px; left: 5px; }
        </style>

        <div id="gf_new_form_modal" style="display:none;">
            <div class="gf_new_form_modal_container">

                <div class="setting-row">
                    <label for="new_form_title"><?php 
        _e('Form Title', 'gravityforms');
        ?>
<span class="gfield_required">*</span></label><br />
                    <input type="text" class="regular-text" value="" id="new_form_title" tabindex="9000">
                </div>

                <div class="setting-row">
                    <label for="new_form_description"><?php 
        _e('Form Description', 'gravityforms');
        ?>
</label><br />
                    <textarea class="regular-text" id="new_form_description" tabindex="9001"></textarea>
                </div>

                <div class="submit-row">
                    <?php 
        echo apply_filters("gform_new_form_button", '<input id="save_new_form" type="button" class="button button-large button-primary" value="' . __('Create Form', 'gravityforms') . '" onclick="saveNewForm();" tabindex="9002" />');
        ?>
                    <div id="gf_new_form_error_message" style="display:inline-block;"></div>
                </div>

            </div>
        </div>

        <?php 
        // - end of new form modal - //
        ?>

        <script text="text/javascript">
            function TrashForm(form_id){
                jQuery("#action_argument").val(form_id);
                jQuery("#action").val("trash");
                jQuery("#forms_form")[0].submit();
            }

            function RestoreForm(form_id){
                jQuery("#action_argument").val(form_id);
                jQuery("#action").val("restore");
                jQuery("#forms_form")[0].submit();
            }

            function DeleteForm(form_id){
                jQuery("#action_argument").val(form_id);
                jQuery("#action").val("delete");
                jQuery("#forms_form")[0].submit();
            }

            function DuplicateForm(form_id){
                jQuery("#action_argument").val(form_id);
                jQuery("#action").val("duplicate");
                jQuery("#forms_form")[0].submit();
            }

            function ToggleActive(img, form_id){
                var is_active = img.src.indexOf("active1.png") >=0
                if(is_active){
                    img.src = img.src.replace("active1.png", "active0.png");
                    jQuery(img).attr('title','<?php 
        _e("Inactive", "gravityforms");
        ?>
').attr('alt', '<?php 
        _e("Inactive", "gravityforms");
        ?>
');
                }
                else{
                    img.src = img.src.replace("active0.png", "active1.png");
                    jQuery(img).attr('title','<?php 
        _e("Active", "gravityforms");
        ?>
').attr('alt', '<?php 
        _e("Active", "gravityforms");
        ?>
');
                }

                UpdateCount("active_count", is_active ? -1 : 1);
                UpdateCount("inactive_count", is_active ? 1 : -1);

                var mysack = new sack("<?php 
        echo admin_url("admin-ajax.php");
        ?>
" );
                mysack.execute = 1;
                mysack.method = 'POST';
                mysack.setVar( "action", "rg_update_form_active" );
                mysack.setVar( "rg_update_form_active", "<?php 
        echo wp_create_nonce("rg_update_form_active");
        ?>
" );
                mysack.setVar( "form_id", form_id);
                mysack.setVar( "is_active", is_active ? 0 : 1);
                mysack.onError = function() { alert('<?php 
        echo esc_js(__("Ajax error while updating form", "gravityforms"));
        ?>
' )};
                mysack.runAJAX();

                return true;
            }
            function UpdateCount(element_id, change){
                var element = jQuery("#" + element_id);
                var count = parseInt(element.html()) + change
                element.html(count + "");
            }

            function gfConfirmBulkAction(element_id){
                var element = "#" + element_id;
                if(jQuery(element).val() == 'delete')
                    return confirm('<?php 
        echo __("WARNING: You are about to delete these forms and ALL entries associated with them. ", "gravityforms") . __("\\'Cancel\\' to stop, \\'OK\\' to delete.", "gravityforms");
        ?>
');
                else if(jQuery(element).val() == 'reset_views')
                    return confirm('<?php 
        echo __("Are you sure you would like to reset the Views for the selected forms? ", "gravityforms") . __("\\'Cancel\\' to stop, \\'OK\\' to reset.", "gravityforms");
        ?>
');
                else if(jQuery(element).val() == 'delete_entries')
                    return confirm('<?php 
        echo __("WARNING: You are about to delete ALL entries associated with the selected forms. ", "gravityforms") . __("\\'Cancel\\' to stop, \\'OK\\' to delete.", "gravityforms");
        ?>
');

                return true;
            }
        </script>

        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css" />
        <div class="wrap <?php 
        echo GFCommon::get_browser_class();
        ?>
">

            <h2>
                <?php 
        _e("Forms", "gravityforms");
        ?>
                <a class="add-new-h2" href="" onclick="return loadNewFormModal();"><?php 
        _e("Add New", "gravityforms");
        ?>
</a>
            </h2>

            <?php 
        if (isset($message)) {
            ?>
            <div class="updated below-h2" id="message"><p><?php 
            echo $message;
            ?>
</p></div>
            <?php 
        }
        ?>

            <form id="forms_form" method="post">
                <?php 
        wp_nonce_field('gforms_update_forms', 'gforms_update_forms');
        ?>
                <input type="hidden" id="action" name="action"/>
                <input type="hidden" id="action_argument" name="action_argument"/>

                <ul class="subsubsub">
                    <li><a class="<?php 
        echo $active === null ? "current" : "";
        ?>
" href="?page=gf_edit_forms"><?php 
        _e("All", "gravityforms");
        ?>
 <span class="count">(<span id="all_count"><?php 
        echo $form_count["total"];
        ?>
</span>)</span></a> | </li>
                    <li><a class="<?php 
        echo $active == "1" ? "current" : "";
        ?>
" href="?page=gf_edit_forms&active=1"><?php 
        _e("Active", "gravityforms");
        ?>
 <span class="count">(<span id="active_count"><?php 
        echo $form_count["active"];
        ?>
</span>)</span></a> | </li>
                    <li><a class="<?php 
        echo $active == "0" ? "current" : "";
        ?>
" href="?page=gf_edit_forms&active=0"><?php 
        _e("Inactive", "gravityforms");
        ?>
 <span class="count">(<span id="inactive_count"><?php 
        echo $form_count["inactive"];
        ?>
</span>)</span></a> | </li>
                    <li><a class="<?php 
        echo $active == "0" ? "current" : "";
        ?>
" href="?page=gf_edit_forms&trash=1"><?php 
        _e("Trash", "gravityforms");
        ?>
 <span class="count">(<span id="trash_count"><?php 
        echo $form_count["trash"];
        ?>
</span>)</span></a></li>
                </ul>

                <?php 
        if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
            ?>
                    <div class="tablenav">
                        <div class="alignleft actions" style="padding:8px 0 7px 0;">

                            <label class="hidden" for="bulk_action"><?php 
            _e("Bulk action", "gravityforms");
            ?>
</label>
                            <select name="bulk_action" id="bulk_action">
                                <option value=''> <?php 
            _e("Bulk action", "gravityforms");
            ?>
 </option>
                                <?php 
            if ($trash) {
                ?>
                                    <option value='restore'><?php 
                _e("Restore", "gravityforms");
                ?>
</option>
                                    <option value='delete'><?php 
                _e("Delete permanently", "gravityforms");
                ?>
</option>
                                <?php 
            } else {
                ?>
                                    <option value='activate'><?php 
                _e("Mark as Active", "gravityforms");
                ?>
</option>
                                    <option value='deactivate'><?php 
                _e("Mark as Inactive", "gravityforms");
                ?>
</option>
                                    <option value='reset_views'><?php 
                _e("Reset Views", "gravityforms");
                ?>
</option>
                                    <option value='delete_entries'><?php 
                _e("Permanently Delete Entries", "gravityforms");
                ?>
</option>
                                    <option value='trash'><?php 
                _e("Move to trash", "gravityforms");
                ?>
</option>
                                <?php 
            }
            ?>
                            </select>
                            <?php 
            $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return gfConfirmBulkAction(\'bulk_action\');"/>';
            echo apply_filters("gform_form_apply_button", $apply_button);
            ?>

                            <br class="clear" />

                        </div>
                    </div>
                <?php 
        }
        ?>

                <table class="widefat fixed" cellspacing="0">
                    <thead>
                        <tr>
                            <?php 
        if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
            ?>
                                <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" name="form_bulk_check_all" onclick="jQuery('.gform_list_checkbox').attr('checked', this.checked);" /></th>
                            <?php 
        }
        $dir = $sort_column == "is_active" && $sort_direction == "ASC" ? "DESC" : "ASC";
        $url_active = admin_url("admin.php?page=gf_edit_forms&sort=is_active&dir={$dir}&trash={$trash}");
        ?>
                            <th scope="col" id="active" class="manage-column column-cb check-column" style="width:50px;cursor:pointer;" onclick="document.location='<?php 
        echo $url_active;
        ?>
'"></th>
                                <?php 
        $dir = $sort_column == "id" && $sort_direction == "ASC" ? "DESC" : "ASC";
        $url_id = admin_url("admin.php?page=gf_edit_forms&sort=id&dir={$dir}&trash={$trash}");
        ?>
                            <th scope="col" id="id" class="manage-column" style="width:50px;cursor:pointer;" onclick="document.location='<?php 
        echo $url_id;
        ?>
'"><?php 
        _e("Id", "gravityforms");
        ?>
</th>
                                <?php 
        $dir = $sort_column == "title" && $sort_direction == "ASC" ? "DESC" : "ASC";
        $url_title = admin_url("admin.php?page=gf_edit_forms&sort=title&dir={$dir}&trash={$trash}");
        ?>
                            <th width="410" scope="col" id="title" class="manage-column column-title" style="cursor:pointer;" onclick="document.location='<?php 
        echo $url_title;
        ?>
'"><?php 
        _e("Title", "gravityforms");
        ?>
</th>
                            <th scope="col" id="author" class="manage-column column-author" style=""><?php 
        _e("Views", "gravityforms");
        ?>
</th>
                            <th scope="col" id="template" class="manage-column" style=""><?php 
        _e("Entries", "gravityforms");
        ?>
</th>
                            <th scope="col" id="template" class="manage-column" style=""><?php 
        _e("Conversion", "gravityforms");
        ?>
 <?php 
        gform_tooltip("entries_conversion", "tooltip_left");
        ?>
 </th>
                        </tr>
                    </thead>

                    <tfoot>
                        <tr>
                            <?php 
        if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
            ?>
                                <th scope="col" id="cb" class="manage-column column-cb check-column" style=""><input type="checkbox" name="form_bulk_check_all" onclick="jQuery('.gform_list_checkbox').attr('checked', this.checked);" /></th>
                            <?php 
        }
        ?>
                            <th scope="col" id="active" class="manage-column column-cb check-column"></th>
                            <th scope="col" id="id" class="manage-column" style="cursor:pointer;" onclick="document.location='<?php 
        echo $url_id;
        ?>
'"><?php 
        _e("Id", "gravityforms");
        ?>
</th>
                            <th width="410" scope="col" id="title" style="cursor:pointer;" class="manage-column column-title" onclick="document.location='<?php 
        echo $url_title;
        ?>
'"><?php 
        _e("Title", "gravityforms");
        ?>
</th>
                            <th scope="col" id="author" class="manage-column column-author" style=""><?php 
        _e("Views", "gravityforms");
        ?>
</th>
                            <th scope="col" id="template" class="manage-column" style=""><?php 
        _e("Entries", "gravityforms");
        ?>
</th>
                            <th scope="col" id="template" class="manage-column" style=""><?php 
        _e("Conversion", "gravityforms");
        ?>
</th>
                        </tr>
                    </tfoot>

                    <tbody class="list:user user-list">
                        <?php 
        if (sizeof($forms) > 0) {
            $alternate_row = false;
            foreach ($forms as $form) {
                $conversion = "0%";
                if ($form->view_count > 0) {
                    $conversion = number_format($form->lead_count / $form->view_count, 3) * 100 . "%";
                }
                $gf_form_locking = new GFFormLocking();
                ?>
                                <tr class='author-self status-inherit <?php 
                $gf_form_locking->list_row_class($form->id);
                ?>
 <?php 
                echo ($alternate_row = !$alternate_row) ? 'alternate' : '';
                ?>
' valign="top" data-id="<?php 
                echo esc_attr($form->id);
                ?>
">
                                    <?php 
                if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
                    ?>
                                        <th scope="row" class="check-column"><input type="checkbox" name="form[]" value="<?php 
                    echo $form->id;
                    ?>
" class="gform_list_checkbox"/><?php 
                    $gf_form_locking->lock_indicator();
                    ?>
</th>
                                    <?php 
                }
                ?>

                                    <td>
                                        <?php 
                if (!$trash) {
                    ?>
                                        <img class="gform_active_icon" src="<?php 
                    echo GFCommon::get_base_url();
                    ?>
/images/active<?php 
                    echo intval($form->is_active);
                    ?>
.png" style="cursor: pointer;" alt="<?php 
                    echo $form->is_active ? __("Active", "gravityforms") : __("Inactive", "gravityforms");
                    ?>
" title="<?php 
                    echo $form->is_active ? __("Active", "gravityforms") : __("Inactive", "gravityforms");
                    ?>
" onclick="ToggleActive(this, <?php 
                    echo $form->id;
                    ?>
); " />
                                        <?php 
                }
                ?>
                                    </td>
                                    <td class="column-id"><?php 
                echo $form->id;
                ?>
</td>
                                    <td class="column-title">
                                        <?php 
                if ($trash) {
                    echo $form->title;
                } else {
                    ?>
                                            <strong><a class="row-title" disabled="<?php 
                    disabled(true, $trash);
                    ?>
"
                                                       href="admin.php?page=gf_edit_forms&id=<?php 
                    echo $form->id;
                    ?>
"
                                                       title="<?php 
                    _e("Edit", "gravityforms");
                    ?>
"><?php 
                    echo $form->title;
                    ?>
</a></strong>
                                            <?php 
                    $gf_form_locking->lock_info($form->id);
                }
                ?>
                                        <div class="row-actions">

                                            <?php 
                if ($trash) {
                    $form_actions['restore'] = array('label' => __("Restore", "gravityforms"), 'title' => __("Restore", "gravityforms"), 'url' => 'javascript:RestoreForm(' . $form->id . ');', 'capabilities' => "gravityforms_delete_forms", 'priority' => 600);
                    $form_actions['delete'] = array('label' => __("Delete permanently", "gravityforms"), 'title' => __("Delete permanently", "gravityforms"), 'menu_class' => 'delete', 'url' => 'javascript: if(confirm("' . __("WARNING: You are about to delete this form and ALL entries associated with it. ", "gravityforms") . __('\\"Cancel\\" to stop, \\"OK\\" to delete.', "gravityforms") . '")){ DeleteForm(' . $form->id . ');}', 'capabilities' => "gravityforms_delete_forms", 'priority' => 500);
                } else {
                    require_once GFCommon::get_base_path() . '/form_settings.php';
                    $form_actions = GFForms::get_toolbar_menu_items($form->id, true);
                    $form_actions['duplicate'] = array('label' => __("Duplicate", "gravityforms"), 'title' => __("Duplicate this form", "gravityforms"), 'url' => 'javascript:DuplicateForm(' . $form->id . ');', 'capabilities' => "gravityforms_create_form", 'priority' => 600);
                    $form_actions['trash'] = array('label' => __("Trash", "gravityforms"), 'title' => __("Move this form to the trash", "gravityforms"), 'url' => 'javascript:TrashForm(' . $form->id . ');', 'capabilities' => "gravityforms_delete_forms", 'menu_class' => 'trash', 'priority' => 500);
                }
                $form_actions = apply_filters("gform_form_actions", $form_actions, $form->id);
                echo GFForms::format_toolbar_menu_items($form_actions, true);
                ?>

                                        </div>
                                    </td>
                                    <td class="column-date"><strong><?php 
                echo $form->view_count;
                ?>
</strong></td>
                                    <td class="column-date">
                                        <strong>
                                            <?php 
                if ($form->lead_count > 0 && !$trash) {
                    ?>
                                                <a href="<?php 
                    echo admin_url("admin.php?page=gf_entries&view=entries&id={$form->id}");
                    ?>
"><?php 
                    echo $form->lead_count;
                    ?>
</a>
                                            <?php 
                } else {
                    echo $form->lead_count;
                }
                ?>
                                        </strong>
                                    </td>
                                    <td class="column-date"><?php 
                echo $conversion;
                ?>
</td>
                                </tr>
                                <?php 
            }
        } else {
            ?>
                            <tr>
                                <td colspan="6" style="padding:20px;">
                                    <?php 
            if ($trash) {
                echo __("There are no forms in the trash.", "gravityforms");
            } else {
                echo sprintf(__("You don't have any forms. Let's go %screate one%s!", "gravityforms"), '<a href="admin.php?page=gf_new_form">', "</a>");
            }
            ?>
                                </td>
                            </tr>
                            <?php 
        }
        ?>
                    </tbody>
                </table>
                <div class="tablenav">
                    <div class="alignleft actions" style="padding:8px 0 7px 0;">
                        <?php 
        if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
            ?>
                            <label class="hidden" for="bulk_action2"><?php 
            _e("Bulk action", "gravityforms");
            ?>
</label>
                            <select name="bulk_action2" id="bulk_action2">
                                <option value=''> <?php 
            _e("Bulk action", "gravityforms");
            ?>
 </option>
                                <?php 
            if ($trash) {
                ?>
                                    <option value='restore'><?php 
                _e("Restore", "gravityforms");
                ?>
</option>
                                    <option value='delete'><?php 
                _e("Delete permanently", "gravityforms");
                ?>
</option>
                                <?php 
            } else {
                ?>
                                    <option value='activate'><?php 
                _e("Mark as Active", "gravityforms");
                ?>
</option>
                                    <option value='deactivate'><?php 
                _e("Mark as Inactive", "gravityforms");
                ?>
</option>
                                    <option value='reset_views'><?php 
                _e("Reset Views", "gravityforms");
                ?>
</option>
                                    <option value='delete_entries'><?php 
                _e("Permanently Delete Entries", "gravityforms");
                ?>
</option>
                                    <option value='trash'><?php 
                _e("Move to trash", "gravityforms");
                ?>
</option>
                                <?php 
            }
            ?>
                            </select>
                            <?php 
            $apply_button = '<input type="submit" class="button" value="' . __("Apply", "gravityforms") . '" onclick="return gfConfirmBulkAction(\'bulk_action2\');"/>';
            echo apply_filters("gform_form_apply_button", $apply_button);
        }
        ?>
                        <br class="clear" />
                    </div>
                </div>
            </form>
        </div>
        <?php 
    }
示例#29
0
 protected function is_page($page_name)
 {
     return $page_name == GFForms::get_page();
 }
示例#30
0
<?php

add_action('wp', array('GFPayPal', 'maybe_thankyou_page'), 5);
GFForms::include_payment_addon_framework();
class GFPayPal extends GFPaymentAddOn
{
    protected $_version = GF_PAYPAL_VERSION;
    protected $_min_gravityforms_version = '1.9.3';
    protected $_slug = 'gravityformspaypal';
    protected $_path = 'gravityformspaypal/paypal.php';
    protected $_full_path = __FILE__;
    protected $_url = 'http://www.gravityforms.com';
    protected $_title = 'Gravity Forms PayPal Standard Add-On';
    protected $_short_title = 'PayPal';
    protected $_supports_callbacks = true;
    private $production_url = 'https://www.paypal.com/cgi-bin/webscr/';
    private $sandbox_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr/';
    // Members plugin integration
    protected $_capabilities = array('gravityforms_paypal', 'gravityforms_paypal_uninstall');
    // Permissions
    protected $_capabilities_settings_page = 'gravityforms_paypal';
    protected $_capabilities_form_settings = 'gravityforms_paypal';
    protected $_capabilities_uninstall = 'gravityforms_paypal_uninstall';
    // Automatic upgrade enabled
    protected $_enable_rg_autoupgrade = true;
    private static $_instance = null;
    public static function get_instance()
    {
        if (self::$_instance == null) {
            self::$_instance = new GFPayPal();
        }