type-sharetwitter-text-before']); } else { $twitter_share_text_before = ""; } if(!empty($layer['settings']['link-type-sharetwitter-text-after'])){ $twitter_share_text_after = str_replace(array("%title%","%excerpt%"), array($title,$excerpt), $layer['settings']['link-type-sharetwitter-text-after']); } else { $twitter_share_text_after = ""; } $twitter_share_text = $twitter_share_text_before.$twitter_share_url.$twitter_share_text_after; $text = ''.$text.''; break; case 'likepost': if(!empty($this->post['ID'])) $text = ''.$text.''; //javascript-link else $text = ''; break; } if($link_to !== 'none') $do_display = true; //set back to true if a link is set on layer $text = trim($text); //check for special styling coming from post option and set css to the queue if(isset($layer['id'])) $this->set_meta_element_changes($layer['id'], $unique_class); $post_class = (!isset($post['ID'])) ? '' : ' eg-post-'.$post['ID']; if($base->text_has_certain_tag($text, 'a') && !$do_ignore_styles){ //check if a tag exists, if yes, class will be set to a tags and not the wrapping div, also the div will receive the position and other stylings // && @$layer['settings']['source'] !== 'text' if($is_woo_cats && strpos($text, 'class="') !== false || $is_woo_button || $is_filter_cat && strpos($text, 'class="') !== false){ //add to the classes instead of creating own class attribute if it is woocommerce cats AND a class can be found $text = str_replace('class="', 'class="'.$unique_class.$post_class.$lb_class.' ', $text); }elseif($is_html_source && strpos($text, 'class="') !== false){ $text = str_replace('', '', $text); //moved to more global css generation process @version: 2.0 //$this->add_css_wrap[$unique_class]['a']['display'] = $do_display; //do_display defines if we should write display: block; //$this->add_css_wrap[$unique_class]['a']['full'] = $do_full; //do full styles (for categories and tags separator) $unique_class .= '-a'; } if($do_ignore_styles) $unique_class = 'eg-'.esc_attr($this->handle).'-nostyle-element-'.$layer['id']; //replace all the normal shortcodes if(function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')){ //use qTranslate $text = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($text); }elseif(function_exists('ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')){ //use qTranslate plus $text = ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($text); }elseif(function_exists('qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage')){ //use qTranslate X $text = qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage($text); } $text = do_shortcode($text); if($special_item == 'true' && $special_item_type == 'line-break'){ //line break element echo ' '."\n"; }elseif(trim($text) !== ''){ //}elseif(!empty($text)){ $use_tag = $base->getVar($layer['settings'], 'tag-type', 'div'); echo ' <'.$use_tag.' class="esg-'.$class.$post_class.$video_play.$ajax_class.' '.$hideunderClass.$unique_class.$transition.'"'.$ajax_attr.$transition_split.$delay.$hideunderHTML; echo ($demo == 'custom') ? $demo_element_type : ''; echo $data_transition_transition . '>'; echo $text; echo ''."\n"; } } /** * Retrieve the value of post elements */ public function get_post_value($handle, $separator, $function, $meta, $catmax = '-1', $taxonomy = ""){ $base = new Essential_Grid_Base(); $text = ''; /* 2.1.5 category max option */ $adjustMax = false; if( in_array( $handle, array( 'cat_list','tag_list','taxonomy') ) ) { if(!empty($catmax) && $catmax !== '-1' && is_numeric($catmax) && intval($catmax) > 0) { $catmax = intval($catmax); $adjustMax = true; } } switch($handle){ //Post elements case 'post_id': $text = $base->getVar($this->post, 'ID', ''); break; case 'post_url': $post_id = $base->getVar($this->post, 'ID', ''); $text = get_permalink($post_id); break; case 'title': $text = $base->getVar($this->post, 'post_title', ''); break; case 'caption': case 'excerpt': $text = trim($base->getVar($this->post, 'post_excerpt')); if(empty($text)){ //strip essential grid shortcode here $text = do_shortcode($base->strip_essential_shortcode($base->getVar($this->post, 'post_content'))); $text = preg_replace("/]*>(.*?)<\\/style>/s", "", $text); $text = preg_replace("/]*>(.*?)<\\/script>/s", "", $text); } $text = strip_tags($text); //,"

" break; case 'meta': $m = new Essential_Grid_Meta(); $text = $m->get_meta_value_by_handle($base->getVar($this->post, 'ID', ''),$meta); break; case 'likespost': $post_id = $base->getVar($this->post, 'ID', ''); if(!empty($post_id)){ $count = get_post_meta($post_id, "eg_votes_count", 0); if(!$count) $count[0] = 0; if(is_array($count)){ $text = ''.$count[0].''; } } else{ $text = ''; } break; case 'alias': $text = $base->getVar($this->post, 'post_name'); break; case 'content': $text = apply_filters('the_content', $base->getVar($this->post, 'post_content')); break; case 'link': $text = get_permalink($base->getVar($this->post, 'ID', '')); break; case 'date': $postDate = $base->getVar($this->post, "post_date_gmt"); $text = $base->convert_post_date($postDate); break; case 'date_day': $postDate = $base->getVar($this->post, "post_date_gmt"); $text = date('dd',strtotime($postDate)); break; case 'date_month': $postDate = $base->getVar($this->post, "post_date_gmt"); $text = date('m',strtotime($postDate)); break; case 'date_month_abbr': $postDate = $base->getVar($this->post, "post_date_gmt"); $text = date('M',strtotime($postDate)); break; case 'date_year': $postDate = $base->getVar($this->post, "post_date_gmt"); $text = date('Y',strtotime($postDate)); break; case 'date_year_abbr': $postDate = $base->getVar($this->post, "post_date_gmt"); $text = date('y',strtotime($postDate)); break; case 'date_modified': $dateModified = $base->getVar($this->post, "post_modified"); $text = $base->convert_post_date($dateModified); break; case 'author_name': $authorID = $base->getVar($this->post, 'post_author'); $text = get_the_author_meta('display_name', $authorID); break; case 'author_posts': $authorID = $base->getVar($this->post, 'post_author'); $text = get_author_posts_url($authorID ); break; case 'author_profile': $authorID = $base->getVar($this->post, 'post_author'); $meta_value = get_the_author_meta('url', $authorID); break; case 'author_avatar_32': $authorID = $base->getVar($this->post, 'post_author'); $meta_value = get_avatar( $authorID, 32); break; case 'author_avatar_64': $authorID = $base->getVar($this->post, 'post_author'); $meta_value = get_avatar( $authorID, 64); break; case 'author_avatar_96': $authorID = $base->getVar($this->post, 'post_author'); $meta_value = get_avatar( $authorID, 96); break; case 'author_avatar_512': $authorID = $base->getVar($this->post, 'post_author'); $meta_value = get_avatar( $authorID, 512); break; case 'num_comments': $text = $base->getVar($this->post, 'comment_count'); break; case 'cat_list': $use_taxonomies = false; $postCatsIDs = $base->getVar($this->post, 'post_category'); if(empty($postCatsIDs) && isset($this->post['post_type'])){ $postCatsIDs = array(); $obj = get_object_taxonomies($this->post['post_type']); if(!empty($obj) && is_array($obj)){ foreach($obj as $tax){ if($tax == 'post_tag') continue; $use_taxonomies[] = $tax; $new_terms = get_the_terms($base->getVar($this->post, 'ID', ''), $tax); if(is_array($new_terms) && !empty($new_terms)){ foreach($new_terms as $term){ $postCatsIDs[$term->term_id] = $term->term_id; } } } } } /* 2.1.5 category max option */ if($adjustMax && is_array($postCatsIDs)) $postCatsIDs = array_slice($postCatsIDs, 0, $catmax, true); $text = $base->get_categories_html_list($postCatsIDs, $function, $separator, $use_taxonomies); break; case 'tag_list': if(!$adjustMax) { $text = $base->get_tags_html_list($base->getVar($this->post, 'ID', ''), $separator, $function); } else { $text = $base->get_tags_html_list($base->getVar($this->post, 'ID', ''), $separator, $function, $catmax); } break; case 'taxonomy': if(!$adjustMax) { $text = $base->get_tax_html_list($base->getVar($this->post, 'ID', ''), $taxonomy, $separator, $function); } else { $text = $base->get_tax_html_list($base->getVar($this->post, 'ID', ''), $taxonomy, $separator, $function, $catmax); } break; /* case 'iframe': print '


'; die(); break; */ default: $text = apply_filters('essgrid_post_meta_content', $text, $handle, $base->getVar($this->post, 'ID', ''), $this->post); break; } return $text; } /** * Retrieve the value of post elements */ public function get_custom_element_value($handle, $separator, $meta = ''){ $base = new Essential_Grid_Base(); $m = new Essential_Grid_Meta(); $text = ''; $text = $base->getVar($this->layer_values, $handle, ''); if($text == '' && $meta != '') $text = $base->getVar($this->layer_values, $meta, ''); if(intval($text) > 0){ //we may be an image from the metas $custom_meta = $m->get_all_meta(false); if(!empty($custom_meta)){ foreach($custom_meta as $cmeta){ if($cmeta['handle'] == $handle){ if($cmeta['type'] == 'image'){ $img = wp_get_attachment_image_src($text, $this->media_sources_type); if($img !== false){ $text = $img[0]; //replace with URL } } break; } } } } return $text; } /** * Retrieve the value of event elements */ public function get_event_manager_value($handle){ $base = new Essential_Grid_Base(); $text = ''; switch($handle){ //check for event manager case 'event_start_date': break; case 'event_end_date': break; case 'event_start_time': break; case 'event_end_time': break; case 'event_event_id': break; case 'event_location_name': break; case 'event_location_slug': break; case 'event_location_address': break; case 'event_location_town': break; case 'event_location_state': break; case 'event_location_postcode': break; case 'event_location_region': break; case 'event_location_country': break; } return $text; } /** * Retrieve the value of woocommerce elements */ public function get_woocommerce_value($meta, $separator, $catmax = false){ $text = ''; if(isset($this->post['ID'])){ if(Essential_Grid_Woocommerce::is_woo_exists()){ $base = new Essential_Grid_Base(); $m = new Essential_Grid_Meta(); /* 2.1.5 category max option */ $adjustMax = false; if($meta === 'wc_categories') { if(!empty($catmax) && $catmax !== '-1' && is_numeric($catmax) && intval($catmax) > 0) { $catmax = intval($catmax); $adjustMax = true; } } if($adjustMax) { $text = Essential_Grid_Woocommerce::get_value_by_meta($this->post['ID'], $meta, $separator, $catmax); } else { $text = Essential_Grid_Woocommerce::get_value_by_meta($this->post['ID'], $meta, $separator); } } } return $text; } } Unique Things To Do In Paris! - Dear Alyne
Dear Alyne and Agoda Unique things to do in Paris
Dear Alyne and Agoda Unique things to do in Paris

Unique things to do in Paris!

People always ask me for recommendations after trips, so here are my Paris recommendations all in one spot! If you want a discount on your next hotel booking use this Agoda link for 5% off! 

At a glance:

Oh BONJOUR so nice to see you here! 

This was my THIRD trip to Paris – so I wanted to find unique things to do in Paris, in addition to my old time favorites! I’m a 29 year old world traveler who’s been to 70 countries.  My Mom is a AGE UNDISCLOSED recent retiree who has been to 1 country in the last 20 years! We have totally different travel styles, backgrounds, ages etc. We clash a lot and don’t travel or think in the same way. Which is why we decided it would be a great idea to…

Take an 8 day trip to PARIS…together!  Let’s see how it went 😂

Where we stayed

We booked our hotels via Agoda since we are working with them on this project! I wanted to find UNIQUE hotels and consequently I searched and found…

Kube Ice Hotel.

Unique Kube Ice Hotel In Paris!
The Hotel has a private ice bar to hang out in!

This hotel is in the 18th arrondissement which is on the outer edge of the Paris Circle (check the map). The neighborhood is predominantly African, Indian, Moroccan and consequently if you love that type of food and clothing, you’re in luck! We ate Biryani (Indian flavored rice) for 8 Euro and it was AMAZING. The hotel itself though has a completely different vibe: a big hipster courtyard and one of the nights they had a huge costume party! The bar is very happening, and there is ANOTHER bar that is an ICE BAR!! ITS AMAZING! AND HUGE! It has a French flag frozen in the wall, an ice car, and it’s not very busy so you can pretty much get it all to yourself. The rooms are very big and even your bathtub in your room is shaped like an ice cube!

Agoda also has a new part of their website which offers apartments and homes to stay in! We wanted to try it out since I love home vibes (hello laundry machine!) but we didn’t have time since we found something even more awesome. That brings me to our second hotel…


Our super cute Grocery Store Boutik Hotel Room!
Our super cute Grocery Store Boutik Hotel Room!

Okay so this Boutik hotel has 2 amazing and unique places to stay in Paris. It’s an apartment you rent, not really a hotel with many rooms and a reception desk. One of the two locations looks like a LIBRARY (SO COOL) but it was fully booked! SO we booked the one that looks like a CUTE CORNER GROCERY STORE (they were almost fully booked but we found one night)! It’s a super cute quiet place that is really…I mean wow. So unique. Pretty hotels with pools and a view are a dime a dozen, but this was incredibly unique and I’ve never seen anything like it before! It’s really spacious with a sort of living room area, upstairs and downstairs, very clean, big modern bathroom and tub,  and great location in the center of Paris near the Seine. I wish I could have stayed longer! One warning – there is no AC (but they do have fans) so if it’s the middle of summer and you’re heat sensitive keep that in mind. We invited some local friends over, ate cheese and bread and fruit, and played cards until late at night. Definitely the kind of place you’ll want to share with friends as you’ll love it so much, and sharing the experience makes it even better. We also slept INSANELY WELL because the bedroom totally blacks out – so set an alarm or you’ll sleep peacefully until next year hehe. Location is great, central and lots to do in the neighborhood! The blinds are electronic so you’ll feel very modern and chic.

What we did: Musee d’Orsay, Shakespeare and Co, THRIFT SHOPPING, Vegan cooking class!

Musee d’Orsay! Ok this is not unique but Paris has many museums and this is the one my mom was most excited to see. It has Van Gogh, Degas, Monet, Manet, and currently – an amazing and very interesting exhibit about black people In French history. There’s also an exhibit about women painters and how they were disadvantaged. Loving the inclusivity there and their giftshops are full of art themed notebooks and cute things that I wanted to buy all of!

This was my Moms favorite part of the trip - visiting the Orsay Museum in Paris! This painting reminded her of her childhood and made her cry
This was my Moms favorite part of the trip – visiting the Orsay Museum in Paris! A painting reminded her of her childhood and made her cry <3 CUTES.

Shakespeare and Co! This amazing bookstore has an insane history: At night, young writers sleep on these benches for free, in exchange for a few hours work, reading a book a day, and writing a 1 page story of their life. It’s right across the river from Notre Dame, like a 1 minute walk, so it’s a great place to spend some time and look at Notre Dame since it was burned down, you are not able to enter during renovations. They also have a cute healthy cafe that I like to sit and relax in with lots of vegan and vegetarian options like a sushi roll, a korean glass noodle salad, quiche, and more.

Me in Shakespeare and Co in July 16, 2011 - exactly years ago!
Me in Shakespeare and Co in July 16, 2011 – exactly years ago!

“Shakespeare and Company is an English-language bookshop in the heart of Paris, on the banks of the Seine, opposite Notre-Dame. Since opening in 1951, it’s been a meeting place for anglophone writers and readers, becoming a Left Bank literary institution.”

Thrift Shopping! Shocking to believe, but thrift shopping was popular even before Macklemore! Growing up I exclusively shopped at thrift shops when I was paying because hello I was 14 and had no money and because thrift shops are COOL AND SUSTAINABLE LIKE ME! I still remember my favorite skirt was 50 cents. Gray plaid and closed with safety pins lolol. Here in Paris there are many amazing vintage shops.  We did a challenge: a full outfit for under 100 Euro! And it was easy! Ours were way under budget. And the best part was many of them are on the same street so it was easy to look around! We visited “FREE’P’STAR” and the Kilo Shop which was 2 doors down. Kilo shop you shop BY WEIGHT! But of course the items I liked were specially marked to be sold NOT be weight and were the most expensive things. I HAVE EXPENSIVE TASTE even at a thrift shop 😂

Unique things to do in Paris
Thrift shopping is a sustainable fun way to enjoy Parisian fashion without the luxury price tags!

Vegan Cooking Class at “Les Potager De Charlotte! This was my Mom’s favorite activity! I’m vegetarian and she’s not, but we both found a compromise in that we both enjoy healthy food! So we took a vegan cooking class and it was AMAZING! Quicker than taking a cooking class is simply enjoying a meal there! The restaurant was called “Le Potager de Charlotte” and it was perfect because it was also run by a Mom (Charlotte) and her children! The food is fresh and gorgeous and both restaurants have an amazing atmosphere. They decorated with beautiful green moss and the chef David is obsessed with making sure every dish is perfect – go and enjoy and let me know what you thought! Can’t wait to go back!

Le Potager de Charlotte - an amazing vegan restaurant in Paris!
Take a cooking class or enjoy a vegan meal at Le Potager de Charlotte – an amazing gourmet restaurant in Paris!

What else we ate: Bistro Des Augustins.

GRATIN. SLICED POTATOES BAKED WITH CHEESE AND CREAM. EAT WITH BAGUETTE. ORDER AN ITALIAN SALAD. ENJOY. I ate here two nights in a row, I took a taxi to eat there, it’s so good and totally affordable. Around 11 euro for each dish. Water is free and they make a nice natural orange or lemon juice. It’s about 7 minutes walk from Notre Dame overlooking the Seine if you sit outside to eat (like all Parisians do!) We ate other things but this was my favorite. “French Peasant Food” as our waiter called it! (NOT vegan but yes vegetarian)

SUMMARY: Paris has unique things to do that will please EVERYONE!

My Mom and I DID have a couple clashes, but thats pretty good for an 8 day intense trip together! We really enjoyed all of the activities and found things we could BOTH love! My favorite was thrift shopping and the cooking class and she loved the cooking class and the museum. We BOTH loved game night at our gorgeous Unique Grocery Store Boutik room – it was a night to remember!

And as always, the best thing about a place is the unique people you meet!

Leave a Reply

Your email address will not be published. Required fields are marked *