コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
 /**
  * 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;
 }
コード例 #3
0
 /**
  * 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);
 }
コード例 #4
0
 /**
  * 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);
 }
コード例 #5
0
 /**
  * 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;
 }
コード例 #6
0
ファイル: meta.php プロジェクト: anjan011/wp-query-generator
    <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>
コード例 #7
0
ファイル: tag.php プロジェクト: anjan011/wp-query-generator
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>
コード例 #8
0
    ?>
</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>
コード例 #9
0
 /**
  * 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);
 }
コード例 #10
0
 /**
  * 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;
 }
コード例 #11
0
ファイル: page.php プロジェクト: anjan011/wp-query-generator
                <?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>
コード例 #12
0
                </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>
コード例 #13
0
ファイル: index.php プロジェクト: anjan011/wp-query-generator
}
?>

                            <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 &amp; 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>
コード例 #14
0
ファイル: post.php プロジェクト: anjan011/wp-query-generator
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>
コード例 #15
0
                    <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) {
コード例 #16
0
    </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>