/** * Get users * * @param array $params * * @return array|null|object */ public static function getUsers($params = array()) { /** * @var wpdb $wpdb */ global $wpdb; /* params */ $users_table_name = trim(meAnjanWqg_Utils::arrayValue($params, 'users_table_name', $wpdb->users)); if ($users_table_name == '') { $users_table_name = $wpdb->users; } $users_table_alias = trim(meAnjanWqg_Utils::arrayValue($params, 'users_table_alias', 'u')); if ($users_table_alias == '') { $users_table_alias = 'u'; } $fields = meAnjanWqg_Utils::arrayValue($params, 'fields', $users_table_alias . '.*'); if (empty($fields)) { $fields = $users_table_alias . '.*'; } /* Fields */ if (is_array($fields) && count($fields) > 0) { $fields = join(',', $fields); } else { if (is_string($fields)) { $fields = trim(trim($fields), ','); } else { $fields = $users_table_alias . '.*'; } } $where_clause = " 1 "; $sql = "select {$fields} from {$users_table_name} {$users_table_alias} where {$where_clause} order by {$users_table_alias}.user_nicename asc"; $users = $wpdb->get_results($sql, 'ARRAY_A'); return $users; }
/** * Generates <option> html tag for a tag * * @param array $params * * @return bool|string */ public static function generateTagOption($params = array()) { $tag = meAnjanWqg_Utils::arrayValue($params, 'tag', false); if (!is_object($tag)) { return false; } $label_field = meAnjanWqg_Utils::arrayValue($params, 'label_field', 'name'); $label_field_extra = meAnjanWqg_Utils::arrayValue($params, 'label_field_extra', ''); $value_field = meAnjanWqg_Utils::arrayValue($params, 'value_field', 'term_id'); $indent = (int) meAnjanWqg_Utils::arrayValue($params, 'indent', 0); $label = isset($tag->{$label_field}) ? $tag->{$label_field} : ''; $value = isset($tag->{$value_field}) ? $tag->{$value_field} : ''; $label = str_repeat('-', $indent) . $label; if ($label_field_extra != '') { $extraLabelValue = isset($tag->{$label_field_extra}) ? trim($tag->{$label_field_extra}) : ''; if ($extraLabelValue != '') { $label .= " [{$extraLabelValue}]"; } } /* Selected attr */ $selected_attr = ''; $selected = meAnjanWqg_Utils::arrayValue($params, 'selected', ''); if (is_array($selected) && in_array($value, $selected)) { $selected_attr = ' selected'; } else { if ($selected == $value) { $selected_attr = ' selected'; } } $html = "<option value='{$value}'{$selected_attr}>{$label}</option>"; return $html; }
/** * Get config * * @param string $key * @param null $default * * @return mixed */ public function getConfig($key = '', $default = null) { $key = trim($key); if ($key == '') { return $this->_config; } return meAnjanWqg_Utils::arrayValue($this->_config, $key, $default); }
/** * Get list of taxonomies * * @param array $params * * @return array */ public static function getTaxonomies($params = array()) { $params = isset($params) ? $params : array(); $args = meAnjanWqg_Utils::arrayValue($params, 'args'); $output = meAnjanWqg_Utils::arrayValue($params, 'output', 'names'); $operator = meAnjanWqg_Utils::arrayValue($params, 'operator', 'and'); return get_taxonomies($args, $output, $operator); }
/** * Generates <option> tag for a category * * @param array $params * * @return bool|string */ public static function generateCategoryOption($params = array()) { $category = meAnjanWqg_Utils::arrayValue($params, 'category', false); if (!is_object($category)) { return false; } $label_field = meAnjanWqg_Utils::arrayValue($params, 'label_field', 'name'); $label_field_extra = meAnjanWqg_Utils::arrayValue($params, 'label_field_extra', ''); $value_field = meAnjanWqg_Utils::arrayValue($params, 'value_field', 'term_id'); $indent = (int) meAnjanWqg_Utils::arrayValue($params, 'indent', 0); $label = isset($category->{$label_field}) ? $category->{$label_field} : ''; if ($label_field_extra != '') { $extraLabelValue = isset($category->{$label_field_extra}) ? trim($category->{$label_field_extra}) : ''; if ($extraLabelValue != '') { $label .= " [{$extraLabelValue}]"; } } $value = isset($category->{$value_field}) ? $category->{$value_field} : ''; $label = str_repeat('-', $indent) . $label; /* Selected attr */ $selected_attr = ''; $selected = meAnjanWqg_Utils::arrayValue($params, 'selected', ''); if (is_array($selected) && in_array($value, $selected)) { $selected_attr = ' selected'; } else { if ($selected == $value) { $selected_attr = ' selected'; } } $html = "<option value='{$value}'{$selected_attr}>{$label}</option>"; $categories = self::getCategories($category->term_id); /* Child categories */ if (is_array($categories) && count($categories) > 0) { foreach ($categories as $c) { $newParam = $params; $newParam['indent'] = $indent + 1; $newParam['category'] = $c; $html .= self::generateCategoryOption($newParam); } } return $html; }
<tr> <td> <label> <strong>Meta Value as number (#meta_value_num)</strong>Meta value as number<br/> <select size="1" name="meta[compare]"> <?php foreach ($metaComparisonTypes as $v) { ?> <option value="<?php echo $v; ?> " <?php if ($v == meAnjanWqg_Utils::arrayValue($wqgData, 'meta/compare', '=')) { ?> selected="selected"<?php } ?> ><?php echo $v; ?> </option> <?php } ?> </select> </label> </td>
echo meAnjanWqg_Tags::tagsDropdown(array('label_field' => 'name', 'label_field_extra' => 'term_id', 'value_field' => 'term_id', 'attributes' => array('name' => 'tag[and][]', 'id' => 'tag_and', 'multiple' => 'multiple', 'data-placeholder' => 'Select one or more tag id'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'tag/and'))); ?> </label> </td> </tr> <!-- and --> <tr> <td> <label> <strong>Any Tag ID (#tag__in)</strong>Get entries having any of the selected tag ids<br /> <?php echo meAnjanWqg_Tags::tagsDropdown(array('label_field' => 'name', 'label_field_extra' => 'term_id', 'value_field' => 'term_id', 'attributes' => array('name' => 'tag[in][]', 'id' => 'tag_in', 'multiple' => 'multiple', 'data-placeholder' => 'Select one or more tag id'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'tag/in'))); ?> </label> </td> </tr> <!-- in --> <tr> <td> <label> <strong>Exclude Tag IDs (#tag__not_in)</strong>Get entries not having any of the selected tag ids<br /> <?php echo meAnjanWqg_Tags::tagsDropdown(array('label_field' => 'name', 'label_field_extra' => 'term_id', 'value_field' => 'term_id', 'attributes' => array('name' => 'tag[not_in][]', 'id' => 'tag_not_in', 'multiple' => 'multiple', 'data-placeholder' => 'Select one or more tag id'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'tag/not_in'))); ?> </label> </td> </tr> <!-- not in --> </table>
?> </option> <?php } ?> </select> </label> </td> </tr> <tr> <td> <div class="me-anjan-wqg-meta-query-block" id="me-anjan-wqg-meta-query-block"> </div> <div style="clear: both;"></div> <input type="button" id="me-anjan-wqg-add-meta-query" value="Add Meta Query" class="button"/> </td> </tr> </table> <script type="text/javascript"> var meAnjanWqgMetaQueryCriterias = <?php echo json_encode(array_values(meAnjanWqg_Utils::arrayValue($wqgData, 'meta_query/queries'))); ?> ; </script>
/** * Generates code and args for meta key search * * @param $start_indent * * @return string */ public function generateMetaArgCode($start_indent) { /** @var wpdb $wpdb */ global $wpdb; $metaCompareTypes = array('=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'NOT EXISTS', 'REGEXP', 'NOT REGEXP', 'RLIKE'); $start_indent = (int) $start_indent; if ($start_indent < 0) { $start_indent = 0; } $data = meAnjanWqg_Utils::arrayValue($this->_data, 'meta'); $code = array(); if (is_array($data) && count($data) > 0) { $key = meAnjanWqg_Utils::arrayValueAsString($data, 'key', '', 'trim'); $value = meAnjanWqg_Utils::arrayValueAsString($data, 'value', '', 'trim'); $value_num = meAnjanWqg_Utils::arrayValueAsString($data, 'value_num', '', 'trim'); $compare = meAnjanWqg_Utils::arrayValueAsString($data, 'compare', '', 'trim'); if ($key != '') { if (!in_array($compare, $metaCompareTypes)) { $compare = '='; } if ($value != '' || $value_num != '') { # key $code[] = meAnjanWqg_Utils::_l($start_indent, "'meta_key' => '{$key}',", 1); $this->_args['meta_key'] = $key; # compare $code[] = meAnjanWqg_Utils::_l($start_indent, "'meta_compare' => '{$compare}',", 1); $this->_args['meta_compare'] = $compare; # value if ($value != '') { $code[] = meAnjanWqg_Utils::_l($start_indent, "'meta_value' => '{$value}',", 1); $this->_args['meta_value'] = $value; } # value_num if ($value_num != '') { $code[] = meAnjanWqg_Utils::_l($start_indent, "'meta_value_num' => '{$value_num}',", 1); $this->_args['meta_value_num'] = $value_num; } } } } if (!empty($code)) { $content = PHP_EOL; $content .= meAnjanWqg_Utils::_l($start_indent, "/* Meta key params */", 2); $content .= join('', $code); return $content; } return join('', $code); }
/** * Generates <option> entry for a single post * * @param array $params * * @return bool|string */ public static function generatePostOption($params = array()) { $post = meAnjanWqg_Utils::arrayValue($params, 'post', FALSE); if (!is_object($post) || !$post instanceof WP_Post) { return FALSE; } $label_field = meAnjanWqg_Utils::arrayValue($params, 'label_field', 'post_title'); $label_field_extra = meAnjanWqg_Utils::arrayValue($params, 'label_field_extra', ''); $value_field = meAnjanWqg_Utils::arrayValue($params, 'value_field', 'ID'); $indent = (int) meAnjanWqg_Utils::arrayValue($params, 'indent', 0); $label = isset($post->{$label_field}) ? $post->{$label_field} : ''; $value = isset($post->{$value_field}) ? $post->{$value_field} : ''; $label_extra = ''; if ($label_field_extra != '') { $label_extra = isset($post->{$label_field_extra}) ? $post->{$label_field_extra} : ''; } $label = str_repeat('-', $indent) . $label; /* Selected attr */ $selected_attr = ''; $selected = meAnjanWqg_Utils::arrayValue($params, 'selected', ''); if (is_array($selected) && in_array($value, $selected)) { $selected_attr = ' selected'; } else { if ($selected == $value) { $selected_attr = ' selected'; } } $html = "<option value='{$value}'{$selected_attr}>{$label}" . (!empty($label_extra) ? " [{$label_extra}]" : '') . "</option>"; $params['post_parent'] = $post->ID; $child_posts = self::getPosts($params); /* Child categories */ if (is_array($child_posts) && count($child_posts) > 0) { foreach ($child_posts as $p) { $newParam = $params; $newParam['indent'] = $indent + 1; $newParam['post'] = $p; $html .= self::generatePostOption($newParam); } } return $html; }
<?php echo meAnjanWqg_Posts::postsDropdown(array('post_type' => 'post', 'nopaging' => TRUE, 'empty_value' => array('label' => '~ Select ~', 'value' => ''), 'label_field' => 'post_name', 'value_field' => 'post_name', 'attributes' => array('name' => 'post[post_slug]', 'id' => 'post_slug', 'class' => 'chosen'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'post/post_slug'))); ?> </label> </td> </tr> <!-- post_slug --> <tr> <td> <label> <strong>Page ID (#p)</strong>Get entries by selected post id<br/> <?php echo meAnjanWqg_Posts::postsDropdown(array('post_type' => 'page', 'nopaging' => TRUE, 'empty_value' => array('label' => '~ Select ~', 'value' => ''), 'label_field' => 'post_title', 'value_field' => 'ID', 'attributes' => array('name' => 'post[page_id]', 'id' => 'page_id', 'class' => 'chosen'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'post/page_id'))); ?> </label> </td> </tr> <!-- page_id --> <tr> <td> <label> <strong>Post Slug (#name)</strong>Get entries by selected post slug<br/> <?php echo meAnjanWqg_Posts::postsDropdown(array('post_type' => 'page', 'nopaging' => TRUE, 'empty_value' => array('label' => '~ Select ~', 'value' => ''), 'label_field' => 'post_name', 'value_field' => 'post_name', 'attributes' => array('name' => 'post[page_slug]', 'id' => 'page_slug', 'class' => 'chosen'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'post/page_slug'))); ?> </label> </td> </tr> <!-- page_slug --> </table>
</select> </label> </td> </tr> <tr> <td> <div class="me-anjan-wqg-tax-query-block"></div> <div style="clear: both;"></div> <input type="button" id="me-anjan-wqg-add-taxonomy" value="Add Taxonomy" class="button" /> </td> </tr> <tr> <td> <?php $res = meAnjanWqg_Taxonomies::getTaxonomies(); ?> </td> </tr> </table> <script type="text/javascript"> var meAnjanPluginsWqgTaxRules = <?php echo json_encode(meAnjanWqg_Utils::arrayValue($wqgData, 'tax/rules')); ?> ; </script>
} ?> <div style="clear: both;"></div> <div class="me-anjan-wqg-buttons-container"> <input type="hidden" name="wqg-action" id="<?php echo $idPrefix; ?> action" value="generate-code"> <input type="hidden" class="wqgCurrentTab" name="currentTab" value="<?php echo meAnjanWqg_Utils::arrayValue($wqgData, 'currentTab'); ?> "/> <button type="submit" class="button-primary">Save & Generate</button> <button type="button" id="<?php echo $idPrefix . $main->getConfig('html/ids/reset_button'); ?> " class="button-primary red" name="reset_wqg_data">Reset </button> </div> </div> <div style="clear: both;"></div>
echo meAnjanWqg_Posts::postsDropdown(array('post_type' => $selectedPostTypes, 'nopaging' => TRUE, 'empty_value' => array('label' => '', 'value' => ''), 'label_field' => 'post_name', 'value_field' => 'post_name', 'attributes' => array('name' => 'post[post_slug]', 'id' => $idPrefix . 'post-slug', 'class' => 'chosen', 'data-placeholder' => ' '), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'post/post_slug'))); ?> </label> </td> </tr> <!-- post_slug --> <tr> <td> <label> <strong>Parent Post (#post_parent)</strong>Get child posts<br/> <?php echo meAnjanWqg_Posts::postsDropdown(array('post_type' => $selectedPostTypes, 'nopaging' => TRUE, 'label_field' => 'post_title', 'label_field_extra' => 'ID', 'value_field' => 'ID', 'attributes' => array('name' => 'post[post_parent][]', 'id' => $idPrefix . 'post-parent', 'class' => 'chosen', 'data-placeholder' => 'Select one or more posts', 'multiple' => 'multiple'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'post/post_parent'))); ?> </label> </td> </tr> <!-- post_parent --> <tr> <td> <label> <strong>Exclude Parent Posts (#post_parent__not_in)</strong>Exclude posts with these parent posts<br/> <?php echo meAnjanWqg_Posts::postsDropdown(array('post_type' => $selectedPostTypes, 'nopaging' => TRUE, 'label_field' => 'post_title', 'label_field_extra' => 'ID', 'value_field' => 'ID', 'attributes' => array('name' => 'post[post_parent_not_in][]', 'id' => $idPrefix . 'post-parent-not-in', 'class' => 'chosen', 'data-placeholder' => 'Select one or more posts', 'multiple' => 'multiple'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'post/post_parent_not_in'))); ?> </label> </td> </tr> <!-- post_parent__not_in --> </table>
<input type="text" name="pagination[offset]" value="<?php echo meAnjanWqg_Utils::arrayValue($wqgData, 'pagination/offset', ''); ?> " /> </label> </td> </tr> <tr> <td> <label> <strong>Posts Per Archive Page (#posts_per_archive_page)</strong>Number of posts per archive/search page<br/> <input type="text" name="pagination[posts_per_archive_page]" value="<?php echo meAnjanWqg_Utils::arrayValue($wqgData, 'pagination/posts_per_archive_page'); ?> " /> </label> </td> </tr> <tr> <td> <label> <?php $ignore_sticky_posts = meAnjanWqg_Utils::arrayValueAsInt($wqgData, 'pagination/ignore_sticky_posts', 0) > 0; ?> <input type="hidden" name="pagination[ignore_sticky_posts]" value="0" /> <input type="checkbox" name="pagination[ignore_sticky_posts]" value="1" <?php if ($ignore_sticky_posts) {
</tr> <tr> <td> <label> <strong>Category Ids in (#category__in)</strong>Get entries associated with <b>ANY</b> of the selected category ids<br /> <?php echo meAnjanWqg_Categories::categoriesDropdown(array('label_field' => 'name', 'label_field_extra' => 'term_id', 'value_field' => 'term_id', 'attributes' => array('name' => 'category[in][]', 'id' => 'category_in', 'multiple' => 'multiple', 'size' => 10, 'data-placeholder' => 'Select one or more categories'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'category/in'))); ?> </label> </td> </tr> <tr> <td> <label> <strong>Exclude Categories (#category__not_in)</strong>Get entries <b>NOT</b> associated with any of the selected category ids<br /> <?php echo meAnjanWqg_Categories::categoriesDropdown(array('label_field' => 'name', 'label_field_extra' => 'term_id', 'value_field' => 'term_id', 'attributes' => array('name' => 'category[not_in][]', 'id' => 'category_not_in', 'multiple' => 'multiple', 'size' => 10, 'data-placeholder' => 'Select one or more categories'), 'selected' => meAnjanWqg_Utils::arrayValue($wqgData, 'category/not_in'))); ?> </label> </td> </tr> </table>