Snippets

Keith Crain Custom Site Selection Menu

Updated by Keith Crain

File functions.php Modified

  • Ignore whitespace
  • Hide word diff
 <?php
 
+/**
+ * @snippet       Custom Site Selection Menu
+ * @sourcecode    https://bitbucket.org/keith_crain/workspace/snippets/xnMq4g
+ * @author        Keith Crain
+ * @author_url    https://kronoslabs.io
+ * @testedwith    WordPress v5.5.1
+ */
+
 defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
 
 // Import classes.
Updated by Keith Crain

File functions.php Modified

  • Ignore whitespace
  • Hide word diff
 <?php
 
-namespace MainWP\Dashboard;
-
 defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
-add_filter( 'mainwp_header_right', 'quick_form_in_admin_bar2', 10, 3 );
 
-function quick_form_in_admin_bar2($string) {
+// Import classes.
+use MainWP\Dashboard\MainWP_DB_Base;
+use MainWP\Dashboard\MainWP_DB;
+use MainWP\Dashboard\MainWP_Connect;
+
+function quick_form_in_admin_bar( $string ) {
+
+	// Create new MainWP_DB Class Instance.
+	$mwp_db = new MainWP_DB;
 
-	// SITE SELECTION
-	$sql		 = MainWP_DB::instance()->get_sql_websites_for_current_user();
-	$websites	 = MainWP_DB::instance()->query( $sql );
-	@MainWP_DB::data_seek( $websites, 0 );
+	// Fetch Child Sites list.
+	$websites = $mwp_db->query( $mwp_db->get_sql_websites_for_current_user() );
+	$mwp_db->data_seek( $websites, 0 );
 
-	// BUILD ADMIN URL
-    $admin_url = esc_url( admin_url() ) . 'admin.php?page='; 
+	// Build Child Site Admin URL.
+	$admin_url = esc_url( admin_url() ) . 'admin.php?page=';
 
-  $html = '
+	// Build HTML Container.
+	$html = '
 		<div class="ui green buttons">
-			<a class="ui button" data-inverted="" data-position="bottom right" data-tooltip="Go to websites overview table" href="'.$admin_url.'managesites">Sites</a>
+			<a class="ui button" data-inverted="" data-position="bottom right" data-tooltip="Go to websites overview table" href="' . $admin_url . 'managesites">Sites</a>
 
 			<div class="ui dropdown icon floating button" style="z-index: 1000;" data-inverted="" data-position="bottom right" data-tooltip="Choose common child site actions" tabindex="0">
 				<i class="dropdown icon"></i>
-
-
 				<div class="menu">
 					<div class="ui icon search input">
 						<i class="search icon"></i>
 						<input type="text" placeholder="Search child sites...">
 					</div>
-
 					<div class="divider"></div>
 					<div class="header">
-						<div class="item" style="display: inline; margin-right: 5px;"><i class="settings icon"></i><a href="'.$admin_url.'PluginsInstall">Plugins</a></div>
-						<div class="item" style="display: inline; margin-right: 5px;"><i class="settings icon"></i><a href="'.$admin_url.'Extensions-Mainwp-Bulk-Settings-Manager">Settings</a></div>
-						<div class="item" style="display: inline; margin-right: 5px;"><i class="settings icon"></i><a href="'.$admin_url.'Extensions-Mainwp-Client-Reports-Extension">Reports</a></div>
-						<div class="item" style="display: inline; margin-right: 5px;"><i class="settings icon"></i><a href="'.$admin_url.'Extensions-Mainwp-Code-Snippets-Extension">Snippets</a></div>
+						<div class="item" style="display: inline; margin-right: 5px;"><i class="settings icon"></i><a href="' . $admin_url . 'PluginsInstall">Plugins</a></div>
+						<div class="item" style="display: inline; margin-right: 5px;"><i class="settings icon"></i><a href="' . $admin_url . 'Extensions-Mainwp-Bulk-Settings-Manager">Settings</a></div>
+						<div class="item" style="display: inline; margin-right: 5px;"><i class="settings icon"></i><a href="' . $admin_url . 'Extensions-Mainwp-Client-Reports-Extension">Reports</a></div>
+						<div class="item" style="display: inline; margin-right: 5px;"><i class="settings icon"></i><a href="' . $admin_url . 'Extensions-Mainwp-Code-Snippets-Extension">Snippets</a></div>
 					</div>
+					<div class="scrolling menu">
+	';
 
-					<div class="scrolling menu">';
-
-						while ( $websites && ($website = @MainWP_DB::fetch_object( $websites ) ) ) {
-
-							$favi_url = MainWP_Utility::get_favico_url( $website );
+	// Build Child Site list HTML.
+	while ( $websites && ( $website = $mwp_db->fetch_object( $websites ) ) ) {
 
-							$html .= '
-							<div class="item">
-								<img class="ui avatar image" src="'.$favi_url.'" style="vertical-align:middle;">
-								<span class="description">'.stripslashes($website->name).'</span>
-								<a href="'.$admin_url.'managesites&dashboard='.$website->id.'" data-tooltip="Open MainWP Child-Site-Dashboard" data-position="top left" data-inverted=""><i class="dashboard icon"></i></a>
-								<a href="'.$website->url.'" target="_blank" data-tooltip="Open frontend in new tab" data-position="top left" data-inverted=""><i class="external alternate icon"></i></a>
-								<a href="/wp-admin/SiteOpen&newtab=yes&websiteid='.$website->id.'" target="_blank" data-tooltip="Open backend in new tab" data-position="top left" data-inverted=""><i class="sign in icon"></i></a>
-							</div>';
-						}
+		$favi_url = '';
+		$siteObj  = (object) $website;
+		$favi_url = MainWP_Connect::get_favico_url( $siteObj );
 
-						$html .= '
-					</div>
-				</div>
+		$html .= '
+			<div class="item">
+				<img class="ui avatar image" src="' . $favi_url . '" style="vertical-align:middle;">
+				<span class="description">' . stripslashes($website->name) . '</span>
+				<a href="' . $admin_url . 'managesites&dashboard=' . $website->id . '" data-tooltip="Open MainWP Child-Site-Dashboard" data-position="top left" data-inverted=""><i class="dashboard icon"></i></a>
+				<a href="' . $website->url . '" target="_blank" data-tooltip="Open frontend in new tab" data-position="top left" data-inverted=""><i class="external alternate icon"></i></a>
+				<a href="/wp-admin/SiteOpen&newtab=yes&websiteid=' . $website->id . '" target="_blank" data-tooltip="Open backend in new tab" data-position="top left" data-inverted=""><i class="sign in icon"></i></a>
 			</div>
-		</div>
-	';
+		';
+	}
+
+	// Close Site List HTML container.
+	$html .= '</div></div></div></div>';
 
-  return $string. $html;
+	// Return concatenated HTML String.
+	return $string . $html;
 
-}
+} add_filter( 'mainwp_header_right', 'quick_form_in_admin_bar' );
Updated by Keith Crain

File functions.php Modified

  • Ignore whitespace
  • Hide word diff
 function quick_form_in_admin_bar2($string) {
 
 	// SITE SELECTION
-	$sql		 = MainWP_DB::Instance()->get_sql_websites_for_current_user();
-	$websites	 = MainWP_DB::Instance()->query( $sql );
+	$sql		 = MainWP_DB::instance()->get_sql_websites_for_current_user();
+	$websites	 = MainWP_DB::instance()->query( $sql );
 	@MainWP_DB::data_seek( $websites, 0 );
 
 	// BUILD ADMIN URL
Updated by Keith Crain

File functions.php Modified

  • Ignore whitespace
  • Hide word diff
 <?php
+
+namespace MainWP\Dashboard;
+
 defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
 add_filter( 'mainwp_header_right', 'quick_form_in_admin_bar2', 10, 3 );
 
Updated by Keith Crain

File functions.php Modified

  • Ignore whitespace
  • Hide word diff
 function quick_form_in_admin_bar2($string) {
 
 	// SITE SELECTION
-	$sql		 = MainWP_DB::Instance()->getSQLWebsitesForCurrentUser();
+	$sql		 = MainWP_DB::Instance()->get_sql_websites_for_current_user();
 	$websites	 = MainWP_DB::Instance()->query( $sql );
 	@MainWP_DB::data_seek( $websites, 0 );
 
  1. 1
  2. 2
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.