// Load Member Info data abstract
require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMemberInfo.php';
-/*
+/**
+ *
* This class exports the currently selected members list
* to a printable HTML file, to a CSV file, or otherwise.
*/
*/
public $config;
- /*
+ /**
* Constructor
*
- * This contructor sets up this model. At this time that only includes
+ * This constructor sets up this model. At this time that only includes
* storing away the WordPress data object.
*
* @return object Class object
}
- /*
+ public function checkFlag($t) {return isset($_REQUEST[$t]) && $_REQUEST[$t] == 'on';}
+ /**
* Perform Model Action
*
* This modelAction takes an AJAX image upload and stores the image in the
*
* Echos JSON string as response and does not return
*/
- public function checkFlag($t) {return isset($_REQUEST[$t]) && $_REQUEST[$t] == 'on';}
public function modelAction ($actionData = false)
{
// When processing member info records, also get primary contact data
$this->postProcessPrimaryContact = true;
- $where = ' true ';
- $categories = false;
- $haveMembers = false;
- $list = false;
- $success = false;
- $filterPending = false;
+ $where = ' true ';
+ $categories = false;
+ $haveMembers = false;
+ $list = false;
+ $success = false;
+ $filterPending = false;
$filterArchived = false;
- $haveFilter = false;
- $numbDisplayed = false;
- $lastDisplayed = false;
- $paging = true;
- $prevStart = false;
- $nextStart = false;
- $start = 1;
- $limit = 20; // Set to the number of listings per page
- $namesList = false;
+ $haveFilter = false;
+ $numbDisplayed = false;
+ $lastDisplayed = false;
+ $paging = true;
+ $prevStart = false;
+ $nextStart = false;
+ $start = 1;
+ $limit = 20; // Set to the number of listings per page
+ $namesList = false;
// Check selected fields
$select = array(
// Check if there is a category filter (multi-select)
if (isset($_REQUEST['filterCategories']) && count($_REQUEST['filterCategories']) > 0) {
- $cats = '';
+ $cats = '';
$catsSep = '';
// For each selected category
}
$where .= " AND T.id in (
- SELECT DISTINCT(I.member)
- FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info I,
- ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info M,
- ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories C
- WHERE I.id = M.member_info
- AND (
- M.category in ($cats)
- OR (C.parent in ($cats) AND M.category = C.id)
- )
+ SELECT DISTINCT(I.member)
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info I,
+ ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info M,
+ ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories C
+ WHERE I.id = M.member_info
+ AND (
+ M.category in ($cats)
+ OR (C.parent in ($cats) AND M.category = C.id)
+ )
)";
}
)";
$filterPending = true;
- $haveFilter = true;
+ $haveFilter = true;
}
// Check for "Featured Only
)";
$filterFeatured = true;
- $haveFilter = true;
+ $haveFilter = true;
}
+ // Get a list of member categories
+ $sql = "
+ SELECT C.id,C.name,C.parent,
+ COALESCE ((SELECT name
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX. "categories
+ WHERE id = C.parent), '') AS parent_name
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "categories C
+ ORDER BY C.parent,C.name";
+ $category_data = $this->wpdb->get_results( $sql, ARRAY_A );
+ //echo '<pre>$category_data: ' . print_r( $category_data, true ) . '</pre>';
+
// Get a current list of members without paging
$list = $this->getList($where, "member_name");
+ //echo '<pre>$list: ' . print_r( $list, true ) . '</pre>';
+ //exit;
// If we have list entries - even if it's an empty list
- $success = true;
+ $success = true;
$haveMembers = false;
if ($list !== false) {
// Compile template data
$templateData = array(
- 'select' => $select,
- 'haveMembers' => $haveMembers,
- 'members' => $list,
- 'memberCount' => $memberCount,
- 'categories' => $categories,
- 'haveFilter' => $haveFilter,
+ 'category_data' => $category_data,
+ 'select' => $select,
+ 'haveMembers' => $haveMembers,
+ 'members' => $list,
+ 'memberCount' => $memberCount,
+ 'categories' => $categories,
+ 'haveFilter' => $haveFilter,
'filterArchived' => $filterArchived,
'filterFeatured' => $filterFeatured,
- 'filterPending' => $filterPending,
- 'numbDisplayed' => $numbDisplayed,
- 'lastDisplayed' => $lastDisplayed,
- 'paging' => $paging,
- 'prevStart' => $prevStart,
- 'nextStart' => $nextStart,
- 'start' => $start,
- 'limit' => $limit,
- 'namesList' => $namesList
+ 'filterPending' => $filterPending,
+ 'numbDisplayed' => $numbDisplayed,
+ 'lastDisplayed' => $lastDisplayed,
+ 'paging' => $paging,
+ 'prevStart' => $prevStart,
+ 'nextStart' => $nextStart,
+ 'start' => $start,
+ 'limit' => $limit,
+ 'namesList' => $namesList
);
$view = 'admin/ajax/membersListExport.html';
// Return status, suggested view, and data to controller
return array(
- 'status' => $success,
+ 'status' => $success,
'menuItemRedirect' => false,
- 'modelRedirect' => false,
- 'view' => $view,
- 'data' => $templateData
+ 'modelRedirect' => false,
+ 'view' => $view,
+ 'data' => $templateData
);
}