Example #1
0
 /**
  * ObjectModels are replaced for their ParseObjects. It also accepts any kind
  * of traversable variable.
  *
  * @param  string $key
  * @param  mixed  $values
  *
  * @return $this
  */
 public function containedIn($key, $values)
 {
     if (!is_array($values) && !$values instanceof Traversable) {
         $values = [$values];
     }
     foreach ($values as $k => $value) {
         if ($value instanceof ObjectModel) {
             $values[$k] = $value->getParseObject();
         }
     }
     $this->parseQuery->containedIn($key, $values);
     return $this;
 }
Example #2
0
 public function showHome(Request $request)
 {
     $current_user = ParseUser::getCurrentUser();
     if (!$current_user) {
         return redirect()->route('login');
     }
     $query = ParseUser::query();
     $current_user = $query->get($current_user->getObjectId());
     Html\Assets::addLink(Html\Link::Css(elixir('css/default.css')));
     Html\Assets::addMetaTag(Html\Meta::Tag('description', ''));
     $query = new ParseQuery("ChatRoom");
     $query->equalTo('members', $current_user);
     try {
         $chatRooms = $query->find();
         $query = new ParseQuery("Messages");
         $query->containedIn("chatRoom", $chatRooms);
         $query->descending('createdAt');
         $query->includeKey('chatRoom');
         $query->includeKey('user');
         $query->limit(20);
         $messages = $query->find();
         $data = [];
         foreach ($messages as $message) {
             $chatRoom = $message->get('chatRoom');
             $event = $chatRoom->get('event');
             $evQuery = new ParseQuery('Events');
             $evQuery->includeKey('group');
             $event = $evQuery->get($event->getObjectId());
             $group = $event->get('group');
             $relation = $message->getRelation("asset");
             $aqry = $relation->getQuery();
             $assets = $aqry->find();
             $temp = ['group' => $group, 'event' => $event, 'chatRoom' => $chatRoom, 'message' => ['msg' => $message, 'assets' => $assets], 'user' => $message->get('user')];
             $data[] = $temp;
         }
     } catch (ParseException $ex) {
         // The object was not retrieved successfully.
         // error is a ParseException with an error code and message.
         echo $ex->getMessage();
     }
     $renderData = $this->getRenderData($request);
     $renderData['user'] = $current_user;
     $renderData['activeBarTab'] = "dashboard";
     $renderData['data'] = $data;
     return view('home', $renderData);
 }
Example #3
0
 /**
  * Fetch an array of Parse objects from the server.
  *
  * @param array $objects      The ParseObjects to fetch
  * @param bool  $useMasterKey Whether to override ACLs
  *
  * @return array
  */
 public static function fetchAll(array $objects, $useMasterKey = false)
 {
     $objectIds = static::toObjectIdArray($objects);
     if (!count($objectIds)) {
         return $objects;
     }
     $className = $objects[0]->getClassName();
     $query = new ParseQuery($className);
     $query->containedIn('objectId', $objectIds);
     $query->limit(count($objectIds));
     $results = $query->find($useMasterKey);
     return static::updateWithFetchedResults($objects, $results);
 }
Example #4
0
 public function dtestContainedInUserArrayQueries()
 {
     ParseTestHelper::clearClass(ParseUser::$parseClassName);
     ParseTestHelper::clearClass("TestObject");
     $userList = [];
     for ($i = 0; $i < 4; $i++) {
         $user = new ParseUser();
         $user->setUsername('user_num_' . $i);
         $user->setPassword('password');
         $user->set('email', 'asdf_' . $i . '@example.com');
         $user->signUp();
         $userList[] = $user;
     }
     $messageList = [];
     for ($i = 0; $i < 5; $i++) {
         $message = ParseObject::create('TestObject');
         $toUser = ($i + 1) % 4;
         $fromUser = $i % 4;
         $message->set('to', $userList[$toUser]);
         $message->set('from', $userList[$fromUser]);
         $message->save();
         $messageList[] = $message;
     }
     $inList = [$userList[0], $userList[3], $userList[3]];
     $query = new ParseQuery("TestObject");
     $query->containedIn('from', $inList);
     $results = $query->find();
     $this->assertEquals(3, count($results));
 }
Example #5
0
 public function testObjectIdContainedInQueries()
 {
     Helper::clearClass("BoxedNumber");
     $objects = [];
     $this->saveObjects(5, function ($i) use(&$objects) {
         $boxedNumber = ParseObject::create("BoxedNumber");
         $boxedNumber->set("number", $i);
         $objects[] = $boxedNumber;
         return $boxedNumber;
     });
     $query = new ParseQuery("BoxedNumber");
     $query->containedIn("objectId", [$objects[2]->getObjectId(), $objects[3]->getObjectId(), $objects[0]->getObjectId(), "NONSENSE"]);
     $query->ascending("number");
     $results = $query->find();
     $this->assertEquals(3, count($results), 'Did not return correct number of objects.');
     $this->assertEquals(0, $results[0]->get("number"), 'Did not return the correct object.');
     $this->assertEquals(2, $results[1]->get("number"), 'Did not return the correct object.');
     $this->assertEquals(3, $results[2]->get("number"), 'Did not return the correct object.');
 }
Example #6
0
 public function testQueriesOnRelationFields()
 {
     $children = [];
     $this->saveObjects(10, function ($i) use(&$children) {
         $child = ParseObject::create('ChildObject');
         $child->set('x', $i);
         $children[] = $child;
         return $child;
     });
     $parent = ParseObject::create('ParentObject');
     $parent->set('x', 4);
     $relation = $parent->getRelation('children');
     $relation->add([$children[0], $children[1], $children[2]]);
     $parent->save();
     $parent2 = ParseObject::create('ParentObject');
     $parent2->set('x', 3);
     $relation2 = $parent2->getRelation('children');
     $relation2->add([$children[4], $children[5], $children[6]]);
     $parent2->save();
     $query = new ParseQuery('ParentObject');
     $query->containedIn('children', [$children[4], $children[9]]);
     $results = $query->find();
     $this->assertEquals(1, count($results));
     $this->assertEquals($results[0]->getObjectId(), $parent2->getObjectId());
 }
Example #7
0
use Parse\ParseUser;
use Parse\ParseInstallation;
use Parse\ParseException;
use Parse\ParseAnalytics;
use Parse\ParseFile;
use Parse\ParseCloud;
switch ($_REQUEST['action']) {
    case "login":
        $user = ParseUser::logIn($_REQUEST['username'], $_REQUEST['password']);
        $returnData = json_encode(array("success" => true, "data" => $user));
        break;
    case 'Employers':
        $employers = new ParseQuery("Employers");
        if (isset($_GET['objectId'])) {
            $objarr = explode(",", str_replace('"', "", $_GET['objectId']));
            $employers->containedIn("objectId", $objarr);
        }
        if (isset($_GET['agencyId'])) {
            $objarr = explode(",", str_replace('"', "", $_GET['agencyId']));
            $employers->containedIn("agencyId", $objarr);
        }
        $employers->limit(1000);
        $results = $employers->find();
        $returnData = json_encode(array("success" => true, "data" => $results));
        break;
    case 'Agency':
        $agency = new ParseQuery("Agency");
        $agency->limit(1000);
        $agency->descending("createdAt");
        $results = $agency->find();
        $returnData = json_encode(array("success" => true, "data" => $results));
function wtd_bus_options($field, $value)
{
    $place = 'business_categories_options';
    $parent_filters = get_option('wtd_excluded_parent_cats');
    if (!empty($parent_filters)) {
        $enabled_parent_cat_filters = json_decode($parent_filters);
    }
    $excluded_cats = get_option('wtd_excluded_cats');
    ?>
	<div ng-controller="categoryExclusion"><?php 
    $query = new ParseQuery('wp_site');
    $query->equalTo('token', get_option('wtd_api_token'));
    $site_results = $query->find();
    $site = $site_results[0];
    $relation = $site->getRelation('resortRelation', 'resort');
    $resorts = $relation->getQuery()->find();
    $query = new ParseQuery('resortParentCategories');
    $query->equalTo('deleted', false);
    $query->containedIn('resortObjectId', $resorts);
    $query->includeKey('resortObjectId');
    $results = $query->find();
    ?>
		<script type="text/javascript"><?php 
    if (empty($enabled_parent_cat_filters)) {
        ?>
				var enabled_parent_filters = null;
				var excluded_cats = null;<?php 
    } else {
        ?>
				var enabled_parent_filters = JSON.parse('<?php 
        echo empty($parent_filters) ? '{"result":true}' : $parent_filters;
        ?>
');<?php 
        if (empty($excluded_cats)) {
            ?>
					var excluded_cats = null;<?php 
        } else {
            ?>
					var excluded_cats = JSON.parse('<?php 
            echo $excluded_cats;
            ?>
');<?php 
        }
    }
    ?>

			jQuery(document).ready(function(){
				if(enabled_parent_filters!= null && enabled_parent_filters!= undefined ){
					for(var i = 0; i < enabled_parent_filters.length; i++){
						var parent_id = enabled_parent_filters[i];
						Parse.Cloud.run('get_subcategory_list_v2', {
							parent_id: parent_id,
							token: token
						}, {
							success: function(result){
								showSubcategoryList(parent_id, result);
							},
							error: function(error){
								console.log(error);
							}
						});
					}
				}
			});
		</script>
		<div data-place="<?php 
    echo $place;
    ?>
"><?php 
    for ($i = 0; $i < count($results); $i++) {
        $cat = $results[$i];
        $cat_id = $cat->getObjectId();
        $cat_enable = '';
        $cat_disable = 'selected';
        if (!empty($enabled_parent_cat_filters)) {
            if (in_array($cat->getObjectId(), $enabled_parent_cat_filters)) {
                $cat_enable = 'selected';
                $cat_disable = '';
            }
        }
        ?>
				<div id="<?php 
        echo $place;
        ?>
_parent_<?php 
        echo $cat_id;
        ?>
">
					<fieldset class="redux-field-container redux-field redux-container-switch" data-id="category-<?php 
        echo $cat->getObjectId();
        ?>
" data-type="switch">
						<div class="switch-options">
							<label id="<?php 
        echo $cat_id;
        ?>
_filter_enabled" class="cb-enable <?php 
        echo $cat_enable;
        ?>
" ng-click="getSubcategories('<?php 
        echo $cat->getObjectId();
        ?>
');" data-val="1">
								<span>Enable</span>
							</label>
							<label id="<?php 
        echo $cat_id;
        ?>
_filter_disabled" class="cb-disable <?php 
        echo $cat_disable;
        ?>
" onclick="disableParentCategoryFilter('<?php 
        echo $cat->getObjectId();
        ?>
', this);" data-place="<?php 
        echo $place;
        ?>
" data-term="<?php 
        $cat_id;
        ?>
" data-val="0">
								<span>Disable</span>
							</label>
						</div>
					</fieldset>
					<span style="font-weight:bold;"><em><?php 
        echo $cat->resortObjectId->name . ' - ' . $cat->get('name');
        ?>
</em> Category Filter</span>
					<div id="<?php 
        echo $cat->getObjectId();
        ?>
_children" layout="row" layout-wrap><?php 
        if (!empty($enabled_parent_cat_filters)) {
            if (in_array($cat->getObjectId(), $enabled_parent_cat_filters)) {
                try {
                    $subcategories = ParseCloud::run("get_subcategory_list_v2", ['parent_id' => $cat_id, 'token' => get_option('wtd_api_token')]);
                } catch (ParseException $ex) {
                    var_dump($cat_id);
                    var_dump($ex);
                }
                $subcategories = json_decode($subcategories);
                for ($j = 0; $j < count($subcategories); $j++) {
                    $sub_cat = $subcategories[$j];
                    $selected = '';
                    if (!empty($excluded_cats)) {
                        if (in_array($sub_cat->objectId, json_decode($excluded_cats))) {
                            $selected = ' checked ';
                        }
                    }
                    echo '<div flex="33"><input type="checkbox" name="excluded_cats[]" id="excluded_cats[]" onchange="saveExcludedCats();" value="' . $sub_cat->objectId . '" ' . $selected . ' />' . $sub_cat->name . '</div>';
                }
            }
        }
        ?>
					</div>
					<hr/>
				</div><?php 
    }
    ?>
		</div>
	</div><?php 
}
        private function matrix()
        {
            global $post;
            $res_id = get_post_meta($post->ID, 'res_id', true);
            $query = new ParseQuery("resort");
            try {
                $resort = $query->get($res_id);
            } catch (ParseException $ex) {
                error_log($ex->getMessage());
            }
            $query = new ParseQuery('resortParentCategories');
            $query->equalTo('deleted', false);
            $query->containedIn('cat_class', ['A', 'R']);
            $query->equalTo('resortObjectId', $resort);
            $query->greaterThan("activityCnt", 0);
            $query->ascending('name');
            try {
                $parent_cats = $query->find();
            } catch (ParseException $ex) {
                error_log($ex->getMessage());
            }
            ?>
            <link rel="stylesheet" href="<?php 
            echo WTD_PLUGIN_URL . "assets/css/styles/wtd_menu.css?wtd_version=" . WTD_VERSION;
            ?>
" media="screen"/>
	        <link rel="stylesheet" href="<?php 
            echo WTD_PLUGIN_URL . "assets/css/styles/masonry.css?wtd_version=" . WTD_VERSION;
            ?>
" media="screen"/>
            <div id="wtd_parent_menu" class="grid">
	            <div class="masonry-column-width"></div><?php 
            for ($i = 0; $i < count($parent_cats); $i++) {
                $parent_cat = $parent_cats[$i];
                $url = site_url() . '/' . $post->post_name . '/whattodo/' . strtolower($parent_cat->get('name')) . '/' . $parent_cat->getObjectId() . '/';
                //if($image):
                ?>
                        <div class="masonry-entry">
	                        <div class="masonry-thumbnail">
	                            <a href="<?php 
                echo $url;
                ?>
" title="<?php 
                echo $parent_cat->get('name');
                ?>
">
	                                <img src="<?php 
                echo WTD_IMG_BASE . $parent_cat->get('cat_img');
                ?>
" class="masonry-thumb"/>
	                            </a>
	                        </div>
	                        <div class="masonry-details">
	                            <h5>
	                                <a href="<?php 
                echo $url;
                ?>
" title="<?php 
                echo $parent_cat->get('name');
                ?>
">
		                                <span class="masonry-post-title"><?php 
                echo $parent_cat->get('name');
                ?>
</span>
	                                </a>
	                            </h5>
	                        </div>
                        </div><?php 
                //endif;
            }
            ?>
            </div>
	        <script type="text/javascript">
		        jQuery(document).ready(function(){
			        var grid = jQuery('.grid').masonry({
				        // options
				        itemSelector: '.masonry-entry',
				        columnWidth: '.masonry-column-width',
				        percentPosition: true,
				        gutter: 10
			        });
			        // layout Masonry after each image loads
			        grid.imagesLoaded().progress(function(){
				        grid.masonry('layout');
			        });
		        });
			</script><?php 
            wtd_copyright();
        }