HEX
Server: Apache/2.4.54 (Unix) OpenSSL/1.0.2k-fips
System: Linux f17.eelserver.com 3.10.0-1160.80.1.el7.x86_64 #1 SMP Tue Nov 8 15:48:59 UTC 2022 x86_64
User: zulfiqar (1155)
PHP: 8.2.0
Disabled: mail, exec, system, popen, proc_open, shell_exec, passthru, show_source
Upload Files
File: /home/zulfiqar/public_html/wp-content/plugins/stream/connectors/class-connector-blogs.php
<?php
/**
 * Connector for Blog actions.
 *
 * @package WP_Stream
 */

namespace WP_Stream;

/**
 * Class - Connector_Blogs
 */
class Connector_Blogs extends Connector {
	/**
	 * Connector slug
	 *
	 * @var string
	 */
	public $name = 'blogs';

	/**
	 * Actions registered for this connector
	 *
	 * @var array
	 */
	public $actions = array(
		'wp_initialize_site',
		'wp_delete_site',
		'wpmu_activate_blog',
		'wpmu_new_user',
		'add_user_to_blog',
		'remove_user_from_blog',
		'make_spam_blog',
		'make_ham_blog',
		'mature_blog',
		'unmature_blog',
		'archive_blog',
		'unarchive_blog',
		'make_delete_blog',
		'make_undelete_blog',
		'update_blog_public',
	);

	/**
	 * Register connector in the WP Frontend
	 *
	 * @var bool
	 */
	public $register_frontend = false;

	/**
	 * Return translated connector label
	 *
	 * @return string
	 */
	public function get_label() {
		return esc_html__( 'Sites' );
	}

	/**
	 * Return translated action labels
	 *
	 * @return array
	 */
	public function get_action_labels() {
		return array(
			'archive_blog' => esc_html__( 'Archived', 'stream' ),
			'created'      => esc_html__( 'Created', 'stream' ),
			'deleted'      => esc_html__( 'Deleted', 'stream' ),
			'updated'      => esc_html__( 'Updated', 'stream' ),
		);
	}

	/**
	 * Return translated context labels
	 *
	 * @return array
	 */
	public function get_context_labels() {
		$labels = array();

		if ( is_multisite() && ! wp_is_large_network() ) {
			$blogs = wp_stream_get_sites();

			foreach ( $blogs as $blog ) {
				$blog_details   = get_blog_details( $blog->blog_id );
				$key            = sprintf( 'blog-%d', $blog->blog_id );
				$labels[ $key ] = $blog_details->blogname;
			}
		}

		return $labels;
	}

	/**
	 * Add action links to Stream drop row in admin list screen
	 *
	 * @filter wp_stream_action_links_{connector}
	 *
	 * @param  array  $links   Previous links registered.
	 * @param  object $record  Stream record.
	 *
	 * @return array
	 */
	public function action_links( $links, $record ) {
		$links [ esc_html__( 'Site Admin' ) ] = get_admin_url( $record->object_id );

		if ( $record->object_id ) {
			$site_admin_link = get_admin_url( $record->object_id );

			if ( $site_admin_link ) {
				$links [ esc_html__( 'Site Admin' ) ] = $site_admin_link;
			}

			$site_settings_link = add_query_arg(
				array(
					'id' => $record->object_id,
				),
				network_admin_url( 'site-info.php' )
			);

			if ( $site_settings_link ) {
				$links [ esc_html__( 'Site Settings', 'stream' ) ] = $site_settings_link;
			}
		}

		return $links;
	}

	/**
	 * Blog created.
	 *
	 * @action wp_initialize_site
	 *
	 * @param WP_Site $new_site  New site object.
	 * @param array   $args      Arguments for the initialization.
	 */
	public function callback_wp_initialize_site( $new_site, $args ) {
		$blogname = ! empty( $args['title'] ) ? $args['title'] : $new_site->blogname;
		$blog_id  = $new_site->blog_id;

		$this->log(
			/* translators: %s: site name (e.g. "FooBar Blog") */
			_x(
				'"%s" site was created',
				'1. Site name',
				'stream'
			),
			array(
				'site_name' => ! empty( $blogname ) ? $blogname : 'Site %d',
				'siteurl'   => $new_site->siteurl,
				'id'        => $new_site->blog_id,
			),
			$blog_id,
			sanitize_key( $blogname ),
			'created'
		);
	}

	/**
	 * A site has been deleted from the database.
	 *
	 * @action wp_delete_site
	 *
	 * @param WP_Site $old_site  Deleted site object.
	 */
	public function callback_wp_delete_site( $old_site ) {
		$this->log(
			/* translators: %s: site name (e.g. "FooBar Blog") */
			_x(
				'"%s" site was deleted',
				'1. Site name',
				'stream'
			),
			array(
				'site_name' => $old_site->blogname,
				'siteurl'   => $old_site->siteurl,
				'id'        => $old_site->blog_id,
			),
			$old_site->blog_id,
			sanitize_key( $old_site->blogname ),
			'deleted'
		);
	}

	/**
	 * Blog registered
	 *
	 * @action wpmu_activate_blog
	 *
	 * @param int $blog_id  Blog ID.
	 * @param int $user_id  User ID.
	 */
	public function callback_wpmu_activate_blog( $blog_id, $user_id ) {
		$blog = get_site( $blog_id );

		$this->log(
			/* translators: %s: site name (e.g. "FooBar Blog") */
			_x(
				'"%s" site was registered',
				'1. Site name',
				'stream'
			),
			array(
				'site_name' => $blog->blogname,
				'siteurl'   => $blog->siteurl,
				'id'        => $blog->blog_id,
			),
			$blog_id,
			sanitize_key( $blog->blogname ),
			'created',
			$user_id
		);
	}

	/**
	 * User added to a blog
	 *
	 * @action add_user_to_blog
	 *
	 * @param int    $user_id  User ID.
	 * @param string $role     User role.
	 * @param int    $blog_id  Blog ID.
	 */
	public function callback_add_user_to_blog( $user_id, $role, $blog_id ) {
		$blog = get_site( $blog_id );
		$user = get_user_by( 'id', $user_id );

		if ( ! is_a( $user, 'WP_User' ) ) {
			return;
		}

		$this->log(
			/* translators: %1$s: a user's display name, %2$s: a site name, %3$s: a user role (e.g. "Jane Doe", "FooBar Blog", "subscriber") */
			_x(
				'%1$s was added to the "%2$s" site with %3$s capabilities',
				'1. User\'s name, 2. Site name, 3. Role',
				'stream'
			),
			array(
				'user_name' => $user->display_name,
				'site_name' => $blog->blogname,
				'siteurl'   => $blog->siteurl,
				'id'        => $blog->blog_id,
				'role_name' => $role,
			),
			$blog_id,
			sanitize_key( $blog->blogname ),
			'updated'
		);
	}

	/**
	 * User removed from a blog
	 *
	 * @action remove_user_from_blog
	 *
	 * @param int $user_id  User ID.
	 * @param int $blog_id  Blog ID.
	 */
	public function callback_remove_user_from_blog( $user_id, $blog_id ) {
		$blog = get_site( $blog_id );
		$user = get_user_by( 'id', $user_id );

		if ( ! is_a( $user, 'WP_User' ) ) {
			return;
		}

		$this->log(
			/* translators: %1$s: a user's display name, %2$s: a site name (e.g. "Jane Doe", "FooBar Blog") */
			_x(
				'%1$s was removed from the "%2$s" site',
				'1. User\'s name, 2. Site name',
				'stream'
			),
			array(
				'user_name' => $user->display_name,
				'site_name' => $blog->blogname,
				'siteurl'   => $blog->siteurl,
				'id'        => $blog->blog_id,
			),
			$blog_id,
			sanitize_key( $blog->blogname ),
			'updated'
		);
	}

	/**
	 * Blog marked as spam
	 *
	 * @action make_spam_blog
	 *
	 * @param int $blog_id  Blog ID.
	 */
	public function callback_make_spam_blog( $blog_id ) {
		$this->callback_update_blog_status( $blog_id, esc_html__( 'marked as spam', 'stream' ), 'updated' );
	}

	/**
	 * Blog not marked as spam
	 *
	 * @action make_ham_blog
	 *
	 * @param int $blog_id  Blog ID.
	 */
	public function callback_make_ham_blog( $blog_id ) {
		$this->callback_update_blog_status( $blog_id, esc_html__( 'marked as not spam', 'stream' ), 'updated' );
	}

	/**
	 * Blog marked as mature
	 *
	 * @action mature_blog
	 *
	 * @param int $blog_id  Blog ID.
	 */
	public function callback_mature_blog( $blog_id ) {
		$this->callback_update_blog_status( $blog_id, esc_html__( 'marked as mature', 'stream' ), 'updated' );
	}

	/**
	 * Blog not marked as mature
	 *
	 * @action unmature_blog
	 *
	 * @param int $blog_id  Blog ID.
	 */
	public function callback_unmature_blog( $blog_id ) {
		$this->callback_update_blog_status( $blog_id, esc_html__( 'marked as not mature', 'stream' ), 'updated' );
	}

	/**
	 * Blog marked as archived
	 *
	 * @action archive_blog
	 *
	 * @param int $blog_id  Blog ID.
	 */
	public function callback_archive_blog( $blog_id ) {
		$this->callback_update_blog_status( $blog_id, esc_html__( 'archived', 'stream' ), 'archive_blog' );
	}

	/**
	 * Blog not marked as archived
	 *
	 * @action unarchive_blog
	 *
	 * @param int $blog_id  Blog ID.
	 */
	public function callback_unarchive_blog( $blog_id ) {
		$this->callback_update_blog_status( $blog_id, esc_html__( 'restored from archive', 'stream' ), 'updated' );
	}

	/**
	 * Blog marked as deleted
	 *
	 * @action make_delete_blog
	 *
	 * @param int $blog_id  Blog ID.
	 */
	public function callback_make_delete_blog( $blog_id ) {
		$this->callback_update_blog_status( $blog_id, esc_html__( 'trashed', 'stream' ), 'trashed' );
	}

	/**
	 * Blog not marked as deleted
	 *
	 * @action undelete_blog
	 *
	 * @param int $blog_id  Blog ID.
	 */
	public function callback_make_undelete_blog( $blog_id ) {
		$this->callback_update_blog_status( $blog_id, esc_html__( 'restored', 'stream' ), 'restored' );
	}

	/**
	 * Blog marked as public or private
	 *
	 * @action update_blog_public
	 *
	 * @param int    $blog_id  Blog ID.
	 * @param string $value    Status flag.
	 */
	public function callback_update_blog_public( $blog_id, $value ) {
		if ( absint( $value ) ) {
			$status = esc_html__( 'marked as public', 'stream' );
		} else {
			$status = esc_html__( 'marked as private', 'stream' );
		}

		$this->callback_update_blog_status( $blog_id, $status, 'updated' );
	}

	/**
	 * Blog updated
	 *
	 * @action update_blog_status
	 *
	 * @param int    $blog_id  Blog ID.
	 * @param string $status   Blog Status.
	 * @param string $action   Action.
	 */
	public function callback_update_blog_status( $blog_id, $status, $action ) {
		$blog = get_site( $blog_id );
		$this->log(
			/* translators: %1$s: a site name, %2$s: a blog status (e.g. "FooBar Blog", "archived") */
			_x(
				'"%1$s" site was %2$s',
				'1. Site name, 2. Status',
				'stream'
			),
			array(
				'site_name' => $blog->blogname,
				'siteurl'   => $blog->siteurl,
				'id'        => $blog->blog_id,
				'status'    => $status,
			),
			$blog_id,
			sanitize_key( $blog->blogname ),
			$action
		);
	}
}