146 lines
4 KiB
PHP
146 lines
4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* The class which handles manual Feeds import.
|
|
*
|
|
* @author Time.ly Network Inc.
|
|
* @since 2.4
|
|
*
|
|
* @package AI1EC
|
|
* @subpackage AI1EC.Calendar-feed
|
|
*/
|
|
class Ai1ecImportConnectorPlugin extends Ai1ec_Connector_Plugin {
|
|
|
|
/**
|
|
* @var array
|
|
* title: The title of the tab and the title of the configuration section
|
|
* id: The id used in the generation of the tab
|
|
*/
|
|
protected $variables = array(
|
|
'id' => 'import',
|
|
);
|
|
|
|
public function get_tab_title() {
|
|
return Ai1ec_I18n::__( 'Import Feeds' );
|
|
}
|
|
|
|
public function __construct( Ai1ec_Registry_Object $registry ) {
|
|
parent::__construct( $registry );
|
|
}
|
|
|
|
/**
|
|
* Returns the translations array
|
|
*
|
|
* @return array
|
|
*/
|
|
private function get_translations() {
|
|
$categories = isset( $_POST['ai1ec_categories'] ) ? $_POST['ai1ec_categories'] : array();
|
|
foreach ( $categories as &$cat ) {
|
|
$term = get_term( $cat, 'events_categories' );
|
|
$cat = $term->name;
|
|
}
|
|
$translations = array(
|
|
'[feed_url]' => $_POST['ai1ec_calendar_url'],
|
|
'[categories]' => implode( ', ', $categories ),
|
|
'[user_email]' => $_POST['ai1ec_submitter_email'],
|
|
'[site_title]' => get_bloginfo( 'name' ),
|
|
'[site_url]' => ai1ec_site_url(),
|
|
'[feeds_url]' => ai1ec_admin_url(
|
|
AI1EC_FEED_SETTINGS_BASE_URL . '#ics'
|
|
),
|
|
);
|
|
return $translations;
|
|
}
|
|
|
|
/**
|
|
* (non-PHPdoc)
|
|
*
|
|
* @see Ai1ec_Connector_Plugin::render_tab_content()
|
|
*/
|
|
public function render_tab_content() {
|
|
// Render the opening div
|
|
$this->render_opening_div_of_tab();
|
|
// Render the body of the tab
|
|
$api = $this->_registry->get( 'model.api.api-feeds' );
|
|
$api_signed = $api->is_signed();
|
|
$settings = $this->_registry->get( 'model.settings' );
|
|
$factory = $this->_registry->get(
|
|
'factory.html'
|
|
);
|
|
$has_feature = $api->has_subscription_active(
|
|
Ai1ec_Api_Features::CODE_IMPORT_FEEDS
|
|
);
|
|
$reached_limit = $api->subscription_has_reached_limit(
|
|
Ai1ec_Api_Features::CODE_IMPORT_FEEDS
|
|
);
|
|
$select2_cats = $factory->create_select2_multiselect(
|
|
array(
|
|
'name' => 'ai1ec_feed_category[]',
|
|
'id' => 'ai1ec_feed_category',
|
|
'use_id' => true,
|
|
'type' => 'category',
|
|
'placeholder' => __(
|
|
'Categories (optional)',
|
|
AI1EC_PLUGIN_NAME
|
|
)
|
|
),
|
|
get_terms(
|
|
'events_categories',
|
|
array(
|
|
'hide_empty' => false
|
|
)
|
|
)
|
|
);
|
|
$select2_tags = $factory->create_select2_input(
|
|
array( 'id' => 'ai1ec_feed_tags')
|
|
);
|
|
$loader = $this->_registry->get( 'theme.loader' );
|
|
|
|
$args = array(
|
|
'event_categories' => $select2_cats,
|
|
'event_tags' => $select2_tags,
|
|
'api_signed' => $api->is_signed(),
|
|
'has_feature' => $has_feature,
|
|
'reached_limit' => $reached_limit,
|
|
);
|
|
|
|
$import_feed = $loader->get_file(
|
|
'plugins/ics/import_feed.php',
|
|
$args,
|
|
true
|
|
);
|
|
$import_feed->render();
|
|
$this->render_closing_div_of_tab();
|
|
}
|
|
|
|
/**
|
|
* (non-PHPdoc)
|
|
*
|
|
* @see Ai1ec_Connector_Plugin::display_admin_notices()
|
|
*/
|
|
public function display_admin_notices() {
|
|
return;
|
|
}
|
|
/**
|
|
* (non-PHPdoc)
|
|
*
|
|
* @see Ai1ec_Connector_Plugin::run_uninstall_procedures()
|
|
*/
|
|
public function run_uninstall_procedures() {
|
|
}
|
|
|
|
/**
|
|
* add_ics_feed function
|
|
*
|
|
* Adds submitted ics feed to the database
|
|
*
|
|
* @return string JSON output
|
|
*
|
|
*/
|
|
public function add_ics_feed() {
|
|
}
|
|
|
|
public function handle_feeds_page_post() {
|
|
}
|
|
|
|
}
|