Warning: Constant SEO_LINKS_API_ENDPOINT already defined in /www/wwwroot/fni.gov.mz/wp-content/plugins/wordpress-plugin/wordpress-plugin.php on line 10
HEX
HEX
Server: Apache
System: Linux paginas.localdomain 4.15.0-200-generic #211-Ubuntu SMP Thu Nov 24 18:16:04 UTC 2022 x86_64
User: www (1002)
PHP: 8.0.11
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/fni.gov.mz/wp-content/plugins/my-calendar/my-calendar-import.php
<?php
/**
 * Import process. Import data from other active calendar plugins.
 *
 * @category Import
 * @package  My Calendar
 * @author   Joe Dolson
 * @license  GPLv2 or later
 * @link     https://www.joedolson.com/my-calendar/
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

require __DIR__ . '/includes/tribe.php';

/**
 * Handle import of events from other calendar sources.
 *
 * @param string $source Source to import from.
 */
function my_calendar_import( $source ) {
	// Kieran O'Shea's calendar.
	if ( 'true' !== get_option( 'ko_calendar_imported' ) && 'calendar' === $source ) {
		mc_import_source_calendar();
	}
	if ( 'true' !== get_option( 'mc_tribe_imported' ) && 'tribe' === $source ) {
		mc_import_source_tribe_events();
	}
}

/**
 * Display current progress in importing.
 *
 * @return string
 */
function mc_display_progress() {
	$message = '';
	if ( as_has_scheduled_action( 'mc_import_tribe' ) ) {
		$count = mc_count_tribe_remaining();
		// translators: Number of events remaining.
		$message = sprintf( __( 'Import from The Events Calendar is in progress. There are currently %d events remaining.', 'my-calendar' ), $count );
	}

	return ( $message ) ? '<div class="notice notice-info"><p>' . $message . '</p></div>' : '';
}

/**
 * Convert a post status to an approval type.
 *
 * @param string $status Post status.
 *
 * @return int Approval value.
 */
function mc_convert_post_status_to_approval( $status ) {
	switch ( $status ) {
		case 'publish':
			$approval = 1;
			break;
		case 'draft':
			$approval = 0;
			break;
		case 'trash':
			$approval = 2;
			break;
		default:
			$approval = 0;
	}

	return $approval;
}

/**
 * Convert an approval type to a post status.
 *
 * @param int $approval Approval value.
 *
 * @return string Post status.
 */
function mc_convert_approval_to_post_status( $approval ) {
	switch ( $approval ) {
		case 1:
			$status = 'publish';
			break;
		case 0:
			$status = 'draft';
			break;
		case 2:
			$status = 'trash';
			break;
		default:
			$status = 'draft';
	}

	return $status;
}

/**
 * Import events from Kieran O'Shea's "Calendar". Largely obsolete.
 */
function mc_import_source_calendar() {
	global $wpdb;
	$events         = $wpdb->get_results( 'SELECT * FROM ' . $wpdb->prefix . 'calendar', 'ARRAY_A' );
	$event_ids      = array();
	$events_results = false;
	foreach ( $events as $key ) {
		$endtime        = ( '00:00:00' === $key['event_time'] ) ? '00:00:00' : date( 'H:i:s', strtotime( "$key[event_time] +1 hour" ) ); // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date
		$data           = array(
			'event_title'    => $key['event_title'],
			'event_desc'     => $key['event_desc'],
			'event_begin'    => $key['event_begin'],
			'event_end'      => $key['event_end'],
			'event_time'     => $key['event_time'],
			'event_endtime'  => $endtime,
			'event_recur'    => $key['event_recur'],
			'event_repeats'  => $key['event_repeats'],
			'event_author'   => $key['event_author'],
			'event_category' => $key['event_category'],
			'event_hide_end' => 1,
			'event_link'     => ( isset( $key['event_link'] ) ) ? $key['event_link'] : '',
		);
		$format         = array( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%s' );
		$update         = $wpdb->insert( my_calendar_table(), $data, $format );
		$events_results = ( $update ) ? true : false;
		$event_ids[]    = $wpdb->insert_id;
	}
	foreach ( $event_ids as $value ) { // propagate event instances.
		$sql   = 'SELECT event_begin, event_time, event_end, event_endtime FROM ' . my_calendar_table() . ' WHERE event_id = %d';
		$event = $wpdb->get_results( $wpdb->prepare( $sql, $value ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
		$event = $event[0];
		$dates = array(
			'event_begin'   => $event->event_begin,
			'event_end'     => $event->event_end,
			'event_time'    => $event->event_time,
			'event_endtime' => $event->event_endtime,
		);
		mc_increment_event( $value, $dates );
	}
	$cats         = $wpdb->get_results( 'SELECT * FROM ' . $wpdb->prefix . 'calendar_categories', 'ARRAY_A' );
	$cats_results = false;
	foreach ( $cats as $key ) {
		$name         = esc_sql( $key['category_name'] );
		$color        = esc_sql( $key['category_colour'] );
		$id           = (int) $key['category_id'];
		$catsql       = 'INSERT INTO ' . my_calendar_categories_table() . ' SET category_id=%1$d, category_name=%2$s, category_color=%3$s ON DUPLICATE KEY UPDATE category_name=%2$s, category_color=%3$s;';
		$cats_results = $wpdb->query( $wpdb->prepare( $catsql, $id, $name, $color ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
	}
	$message   = ( false !== $cats_results ) ? __( 'Categories imported successfully.', 'my-calendar' ) : __( 'Categories not imported.', 'my-calendar' );
	$e_message = ( false !== $events_results ) ? __( 'Events imported successfully.', 'my-calendar' ) : __( 'Events not imported.', 'my-calendar' );
	$return    = "<div id='message' class='notice notice-success'><ul><li>$message</li><li>$e_message</li></ul></div>";
	echo wp_kses_post( $return );
	if ( false !== $cats_results && false !== $events_results ) {
		update_option( 'ko_calendar_imported', 'true', 'no' );
	}
}