__( 'Help Guide' ) . '</a></p>'
);
}
- );
+
+// If no session then start one.
+add_action( 'init', function(){
+ if ( ! session_id() ) {
+ session_start();
+ }
+});
+
+add_filter(
+ GLM_MEMBERS_PLUGIN_SLUG .'-dashboard-widget',
+ function ( $member = null ) {
+ $membersIndexPage = GLM_MEMBERS_PLUGIN_ADMIN_URL . '?page=glm-members-admin-menu-members';
+ $memberIndexPage = GLM_MEMBERS_PLUGIN_ADMIN_URL . '?page=glm-members-admin-menu-member';
+ $membersTable = GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info";
+ $membersTextTable = GLM_MEMBERS_PLUGIN_DB_PREFIX . "members";
+ $membersEditPage = GLM_MEMBERS_PLUGIN_ADMIN_MENU_URL_BASE.'member&glm_action=memberInfo';
+ $membersSettingsPage = GLM_MEMBERS_PLUGIN_ADMIN_URL.'?page=glm-members-admin-menu-settings&settingsPage=members';
+ $membersRefLink = GLM_MEMBERS_PLUGIN_ADMIN_URL . '?page=glm-members-admin-menu-member&glm_action=index';
+
+ $MemberInfo = new GlmDataMemberInfo($this->wpdb, $this->config);
+
+ // Set default values for using getList() later, where the custom set of fields below will be used.
+ $where = '';
+ $order = '';
+ $fieldVals = true;
+ $idField = 'id';
+ $start = false;
+ $limit = false;
+
+ // Save the current fields array and make a copy. Will be restored before the return.
+ $fSave = $MemberInfo->fields;
+
+ // echo "<br><pre>fsave: " . var_dump($fSave) . "</pre><br>";
+
+ // Remove what we don't want from the copy and get the list
+ $MemberInfo->fields = array(
+ 'id' => $fSave['id'],
+ 'reference_name'=> $fSave['reference_name'],
+ 'status' => $fSave['status'],
+ 'member_pointer'=> $fSave['member_pointer'],
+ 'member' => $fSave['member'],
+ //'ref_type' => 'ref_type', // membersInfo has no ref_type field yet
+ );
+
+ // echo "<br><pre>MemberInfo: " . var_dump($MemberInfo->fields) . "</pre><br>";
+
+ // $widgetResult = $MemberInfo->getList('status='.$MemberInfo->config['status_numb']['Pending'], $order, $fieldVals, $idField, $start, $limit);
+
+ // echo "<br><pre>Widgetresult: " . var_dump($widgetResult) . "</pre><br>";
+
+ /*
+ * For list components: pass ref_type and ref_dest as part of the 'fields' string if you want to
+ * make these options part of the href of each <li> link
+ *
+ */
+
+ $content = [
+ 'title' => 'Members',
+ 'widgetButtons' => [
+ [
+ 'id' => 'add-member',
+ 'content' => 'Add',
+ 'url' => $memberIndexPage . "&glm_action=memberEdit&option=add",
+ 'classes' => '',
+ 'styles' => '',
+ 'data' => ''
+ ],
+ [
+ 'id' => 'export-button',
+ 'content' => 'Export',
+ 'url' => '#',
+ 'classes' => 'btn-small widget-export-btn waves-effect waves-light btn modal-trigger',
+ 'styles' => '',
+ 'data' => 'membersExportModal'
+ ],
+ ],
+ 'components' => [
+ [
+ 'id' => 'quickLinks',
+ 'order' => -1,
+ 'template' => 'quickLinks',
+ 'quickLinks' => [
+ 'dashboard' => [
+ 'content' => 'Dashboard',
+ 'url' => $membersIndexPage . "&option=dashboard",
+ ],
+ 'search' => [
+ 'content' => 'Advanced Search',
+ 'url' => $membersIndexPage . "&option=search",
+ ],
+ 'settings' => [
+ 'content' => 'Settings',
+ 'url' => $membersSettingsPage,
+ ]
+ ],
+ ],
+ [
+ 'id' => 'entityAmount',
+ 'title' => 'Number of ' . $this->config['terms']['term_member_plur_cap'],
+ 'order' => 1,
+ 'template' => 'entityAmount',
+ 'url' => $membersIndexPage . "&option=search",
+ 'result' => $MemberInfo->getStats(),
+ ],
+ [
+ 'id' => 'membersExportModal',
+ 'template' => 'modal',
+ 'order' => 99,
+ 'form' => ''//$this->controller('export', 'index', false, true)
+ ],
+ [
+ 'id' => 'textSearch',
+ 'order' => 2,
+ 'template' => 'textSearch',
+ 'entityID' => 'id',
+ 'table' => $membersTextTable,
+ 'fields' => "id, name",
+ 'where' => 'name',
+ 'resultUrl' => $memberIndexPage . "&glm_action=index&member=",
+ ],
+ [
+ 'id' => 'pending-' . $this->config['terms']['term_member_cap'] . '-profiles',
+ 'title' => 'Pending ' . $this->config['terms']['term_member_cap'] . ' Profiles',
+ 'slug' => 'pending-' . $this->config['terms']['term_member'] . '-profiles',
+ 'order' => 3,
+ 'template' => 'list',
+ 'entityID' => 'memberInfo',
+ 'defaultRefType'=> 'member',
+ 'refLink' => $membersRefLink,
+ 'url' => $membersEditPage,
+ 'countUrl' => $membersIndexPage . '&glm_action=list&filterPending=true',
+ 'result' => $MemberInfo->getList('status='.$MemberInfo->config['status_numb']['Pending'], $order, $fieldVals, $idField, $start, $limit),
+ 'count' => $MemberInfo->getStats('status='.$MemberInfo->config['status_numb']['Pending']),
+ 'fieldMap' => [
+ 'ID' => 'id',
+ 'name' => 'reference_name',
+ 'status' => 'status',
+ 'refDestID' => 'member_pointer',
+ 'refDestName' => 'member',
+ //'ref_type' => 'ref_type', // membersInfo has no ref_type field yet
+ ],
+ ],
+ [
+ 'id' => 'bad-location-data',
+ 'title' => "Bad Location Data",
+ 'slug' => "bad-location-data",
+ 'order' => 4,
+ 'template' => 'list',
+ 'entityID' => 'memberInfo',
+ 'defaultRefType'=> 'member',
+ 'refLink' => $membersRefLink,
+ 'url' => $membersEditPage,
+ 'countUrl' => $membersIndexPage . '&glm_action=list&filterBadLocation=true',
+ 'result' => $MemberInfo->getList("has_no_map_data='1'", $order, $fieldVals, $idField, $start, $limit),
+ 'count' => $MemberInfo->getStats("has_no_map_data='1'"),
+ 'fieldMap' => [
+ 'ID' => 'id',
+ 'name' => 'reference_name',
+ 'status' => 'status',
+ 'refDestID' => 'member_pointer',
+ 'refDestName' => 'member',
+ //'ref_type' => 'ref_type', // membersInfo has no ref_type field yet
+ ],
+ ],
+ ]
+ ];
+
+ // Restore the fields list
+ $MemberInfo->fields = $fSave;
+
+ return $content;
+ },
+ 13,
+ 1
+);
+add_filter(
+ 'glm-member-db-admin-search',
+ function ( $data ) {
+ return $this->controller( 'manageDashboard', 'members', false, true, true);
+ }
++);