Jump to content

Ibai

Members
  • Posts

    327
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Ibai reacted to Ehren for a blog entry, Introducing a fresh new vision for Invision Community 5   
    Welcome to Invision Community 5!
    Over the coming weeks, we'll be exploring a bunch of new features and improvements coming to our user interface including our brand new theme editor, a new mobile UI, dark mode and performance improvements thanks to a reduction in both JavaScript and CSS. To kick off this series, let’s take a closer look at the new sidebar layout and new view modes for the forum index and topic pages.
    Sidebar Layout
    Traditionally, Invision Community has shipped with a horizontal header and navigation bar at the top of the page, which is still available in version 5. We're introducing a brand new (and optional) sidebar layout, which can be enabled or disabled easily from within your theme settings. The sidebar not only provides convenient access to your applications, activity streams and search bar, but you can now add links to nodes for even easier access to popular or commonly used areas of your community. For example - a category from your forum, an album from the Gallery, or a product group from Commerce.
    Sidebar-zoom.mp4
    Forum Index: Feed view
    One of our goals for version 5 was to re-imagine new ways for your visitors to consume content, and the sidebar layout is just one of our solutions. Table view has been the typical way of displaying forums, providing visitors with a simple summary of the most recently active topic. Grid mode introduced cover photos to forums and is a great way to make your page more visually engaging, while fluid view allows visitors to filter through a list of topics to easily focus on multiple areas of the community.
    Joining these view modes in version 5 is our new Feed view. Optional cover photos and featured forum colours allow you to personalise each forum, and a list of recently active topics with snippets of the most recent reply allow you to easily see what each forum is focusing on at a glance. The topic list drops below the cover photo and converts to a scrollable list on small devices. It's our fresh take on content display, and we can’t wait to hear your feedback!

     
    Topic pages: Compact view
    In addition, Invision Community 5 also introduces a new, compact layout option for topics. We wanted to create a layout which placed focus on your content while still keeping all of the authors profile information easily accessible within a mini profile. Stats, rank, badges, reputation points and more can be found by tapping the icon at the top of every post. The mini profile strip has also been added to other areas of the software too, such as comments and reviews in applications like Gallery and Blogs, and will appear on the mobile layout when the traditional "table view" is used in topics.
    Switching between the new compact view and the author sidebar view takes just seconds giving you complete control over your community.
    Mini profile.mp4
     
    As part of this view, you also have the choice to feature/pin the original post to the top of every page, making it a breeze for your visitors to easily understand the context of replies without navigating back to page 1. Pinned posts have a slightly larger font-size to distinguish them from replies, and we've thoughtfully truncated them on pages beyond the first to keep scrolling to a minimum.

     
    The new sidebar layout and view modes offer a fresh and innovative approach to navigating and interacting with your community. We’re really keen to hear your thoughts on these new views and whether you’ll be unleashing them on your own sites! We appreciate that no two sites are the same, and those who are a fan of the classic header look will benefit from quick styling tools and a visual way to re-arrange the header elements which we’ll cover in a later blog.
    We’re looking forward to showcasing a whole bunch of new features over the coming weeks - so stay tuned, and we’ll see you then!
     
  2. Thanks
    Ibai reacted to Ehren for a blog entry, UI Polish in Invision Community 4.7.8   
    This week, we're excited to preview some of the UI changes which will be included with Invision Community 4.7.8.
    These changes result in improved performance for Google Fonts and better contrast for accessibility, while also fixing a few bugs along the way. When combined, these small improvements result in a much more polished UI, so lets dive in and take a look at some examples below!
    Google Fonts
    Google Fonts are now imported using the latest version of their API, which includes support for font-display:swap. This CSS property prevents FOUT, or the Flash Of Unstyled Text, where fonts would temporarily be invisible if the Google Font hadn't finished downloading. With this update, a fallback font will be displayed until the Google Font has been downloaded, so your text will be immediately visible even on your initial page load.
    With this update, we have also imported font-weight:600 for improved rendering of semi-bold fonts.
    Cleaner UI for Forum Grid
    This update includes a cleaner UI for forum grids, resulting in improved contrast particularly for the forum icon and forum name.

    Cleaner UI for "Expanded view" topic lists
    In addition to new forum grids, the expanded view UI has also seen improvements in this update, where items are now separated by a simple border instead of being separated into their own boxes.

    Improved button alignment on mobiles
    When possible, buttons will now only occupy a single line on mobiles which results in a cleaner layout and less scrolling. Win win!
    Before:

    After:

    Breadcrumbs
    Breadcrumbs now use a darker color and thicker font-weight for improved contrast, and no longer truncate when long titles are included.
    Before:

    After:

    Social Icons
    The background color of certain social icons has been updated to match their current brand colours.
    Before:

    After:

    Widget designs
    All widgets have received a slight UI overhaul, resulting in improved readability due to heavier font-weights on titles. Alignment issues have also been addressed in certain widgets for mobiles:
    Before:

    After:

    Improved alignment in posts
    Post controls (the bar containing the quote link and reactions) are now vertically aligned to the bottom of posts, regardless of the post length. Small change, but a big difference!
    Before:

    After:

    And much more!
    In addition to these changes, we've included a bunch of fixes including broken stats on record lists, wide tooltips, sticky announcements not staying stuck to the screen, incorrect image ratios for Recent Achievement badges and stretched thumbnails in widgets.
    We think these improvements have really helped to clean up certain areas of our UI and we look forward to them going live on all sites with 4.7.8!
  3. Like
    Ibai reacted to Matt for a blog entry, Improve forum SEO by viewing topics in child forums in one view   
    Improving SEO with your community is a hot topic with community managers. Many minor tweaks can move the needle in the right direction, but the most significant changes come with increasing crawl efficiency.
    I recently wrote about changes we made to Invision Community to improve crawl efficiency. By removing thin content pages and being laser-focused on what you want to be crawled, you present a more efficient site ready for crawling.
    Crawl depth is another metric that impacts crawl efficiency. The more 'clicks' Google and other search engines have to make to get to your content; the less efficient your site is for crawling. With a community, this can present problems because using forums and child forums segments content and places it an extra click or two away from the home page. Segmenting is ideal when your community has defined content boundaries, but it can mean Google has to work harder to find your content.
    We introduced a "fluid view" in a past release, which streams all of your community's topics into a single filterable view. This streamed view works well when you have a small number of forums, but it is less valuable when you have a more significant number.
    Wouldn't it be perfect if you could have a fluid view per forum or category so you can stream the forum's topics with any child forum's topics in a single view?

    With our latest release, you can do just that! In this example, I have a forum called "Ideation", and there are two child forums. The new feature enabled on a per-forum basis in the AdminCP allows the topics from all three forums to be streamed in a single view. As with the global fluid view mode, your members can toggle the filters to refine which forums you want the stream to include.

    Showing the topics from multiple forums in a single unified stream is not only helpful for search engines as it reduces the crawl depth, but it also reduces helps your members find valuable content faster.
    Update (July 14, 2022):  You asked and we listened! Thanks to valuable client feedback, we made an update to our fluid view feature included in our latest release, 4.6. To better the user experience, we improved the fluid-mode per forum filters to remove a page reload! We also reversed the filter checkbox status to make it clear which filters are being viewed. 
    The Fluid View updates are available now. We'd love to hear your thoughts below!
  4. Like
    Ibai reacted to Matt for a blog entry, Twenty years of Invision Community   
    Twenty years ago today, Invision Community was founded and within months the first version of Invision Community was released. Little did we know, this would be the start of a remarkable journey spanning several decades.
    Our first version appeared shortly after we founded the company. It might be hard to imagine a time before social media and YouTube, but when we started out, the web looked very different.

    The first version of Invision Community was called Invision Board, reflecting the popular term for forums back in the early 2000s. It was full featured and you may recognise some elements that persist today.
    Like today, it even had a separate control panel where you could create new areas of discussion and customise the theme.

    Twenty years is a long time and we've continued to adapt with the ever-changing needs of community managers. We've seen the rise of social media impact how people consume content and found ways to compliment Twitter and Facebook by offering a place for long-form permanent discussion.
    Several elements remain from those early days but the concepts behind the theme have change significantly. New workflows, UI elements and views have helped the platform stay fresh and we've certainly innovated a few features that have since become industry standard over that time.
    I can't express how proud I am of what we've built together. From those humble beginnings working until 2am to growing a creative and talented team around our passion for community.
    I'm still as excited today as I was back in 2002. This year will see us build and release new tools to help guide and inform community managers. Our community platform continues to go from strength to strength.
    Of course, the platform is only one part of Invision Community. Over the last twenty years I've been grateful to get to know many of you and watch your lives unfold.
    This is as pure as community can get and I'm privileged to be part of it.

    We have a few other surprises to celebrate our twentieth anniversary. We can't wait to share them!

    I'd love to hear your memories of Invision Community! When did you first use our products and what was your community for? Please let me know in the comments below.
  5. Thanks
    Ibai reacted to Matt for a blog entry, SEO: Improving crawling efficiency   
    No matter how good your content is, how accurate your keywords are or how precise your microdata is, inefficient crawling reduces the number of pages Google will read and store from your site.
    Search engines need to look at and store as many pages that exist on the internet as possible. There are currently an estimated 4.5 billion web pages active today. That's a lot of work for Google.
    It cannot look and store every page, so it needs to decide what to keep and how long it will spend on your site indexing pages.
    Right now, Invision Community is not very good at helping Google understand what is important and how to get there quickly. This blog article runs through the changes we've made to improve crawling efficiency dramatically, starting with Invision Community 4.6.8, our November release.

    The short version
    This entry will get a little technical. The short version is that we remove a lot of pages from Google's view, including user profiles and filters that create faceted pages and remove a lot of redirect links to reduce the crawl depth and reduce the volume of thin content of little value. Instead, we want Google to focus wholly on topics, posts and other key user-generated content.
    Let's now take a deep dive into what crawl budget is, the current problem, the solution and finally look at a before and after analysis. Note, I use the terms "Google" and "search engines" interchangeably. I know that there are many wonderful search engines available but most understand what Google is and does.
    Crawl depth and budget
    In terms of crawl efficiency, there are two metrics to think about: crawl depth and crawl budget. The crawl budget is the number of links Google (and other search engines) will spider per day. The time spent on your site and the number of links examined depend on multiple factors, including site age, site freshness and more. For example, Google may choose to look at fewer than 100 links per day from your site, whereas Twitter may see hundreds of thousands of links indexed per day.
    Crawl depth is essentially how many links Google has to follow to index the page. The fewer links to get to a page, is better. Generally speaking, Google will reduce indexing links more than 5 to 6 clicks deep.
    The current problem #1: Crawl depth
    A community generates a lot of linked content. Many of these links, such as permalinks to specific posts and redirects to scroll to new posts in a topic, are very useful for logged in members but less so to spiders. These links are easy to spot; just look for "&do=getNewComment" or "&do=getLastComment" in the URL. Indeed, even guests would struggle to use these convenience links given the lack of unread tracking until logged in.  Although they offer no clear advantage to guests and search engines, they are prolific, and following the links results in a redirect which increases the crawl depth for content such as topics.
    The current problem #2: Crawl budget and faceted content
    A single user profile page can have around 150 redirect links to existing content. User profiles are linked from many pages. A single page of a topic will have around 25 links to user profiles. That's potentially 3,750 links Google has to crawl before deciding if any of it should be stored. Even sites with a healthy crawl budget will see a lot of their budget eaten up by links that add nothing new to the search index. These links are also very deep into the site, adding to the overall average crawl depth, which can signal search engines to reduce your crawl budget.
    Filters are a valuable tool to sort lists of data in particular ways. For example, when viewing a list of topics, you can filter by the number of replies or when the topic was created. Unfortunately, these filters are a problem for search engines as they create faceted navigation, which creates duplicate pages.

    The solution
    There is a straightforward solution to solve all of the problems outlined above.  We can ask that Google avoids indexing certain pages. We can help by using a mix of hints and directives to ensure pages without valuable content are ignored and by reducing the number of links to get to the content. We have used "noindex" in the past, but this still eats up the crawl budget as Google has to crawl the page to learn we do not want it stored in the index.
    Fortunately, Google has a hint directive called "nofollow", which you can apply in the <a href> code that wraps a link. This sends a strong hint that this link should not be read at all. However, Google may wish to follow it anyway, which means that we need to use a special file that contains firm instructions for Google on what to follow and index.
    This file is called robots.txt. We can use this file to write rules to ensure search engines don't waste their valuable time looking at links that do not have valuable content; that create faceted navigational issues and links that lead to a redirect.
    Invision Community will now create a dynamic robots.txt file with rules optimised for your community, or you can create custom rules if you prefer.

    The new robots.txt generator in Invision Community
    Analysis: Before and after
    I took a benchmark crawl using a popular SEO site audit tool of my test community with 50 members and around 20,000 posts, most of which were populated from RSS feeds, so they have actual content, including links, etc. There are approximately 5,000 topics visible to guests.
    Once I had implemented the "nofollow" changes, removed a lot of the redirect links for guests and added an optimised robots.txt file, I completed another crawl.
    Let's compare the data from the before and after.
    First up, the raw numbers show a stark difference.

    Before our changes, the audit tool crawled 176,175 links, of which nearly 23% were redirect links. After, just 6,389 links were crawled, with only 0.4% being redirection links. This is a dramatic reduction in both crawl budget and crawl depth. Simply by guiding Google away from thin content like profiles, leaderboards, online lists and redirect links, we can ask it to focus on content such as topics and posts.

    Note: You may notice a large drop in "Blocked by Robots.txt" in the 'after' crawl despite using a robots.txt for the first time. The calculation here also includes sharer images and other external links which are blocked by those sites robots.txt files. I added nofollow to the external links for the 'after' crawl so they were not fetched and then blocked externally.

    As we can see in this before, the crawl depth has a low peak between 5 and 7 levels deep, with a strong peak at 10+.

    After, the peak crawl depth is just 3. This will send a strong signal to Google that your site is optimised and worth crawling more often.
    Let's look at a crawl visualisation before we made these changes. It's easy to see how most content was found via table filters, which led to a redirect (the red dots), dramatically increasing crawl depth and reducing crawl efficiency.

    Compare that with the after, which shows a much more ordered crawl, with all content discoverable as expected without any red dots indicating redirects.

    Conclusion
    SEO is a multi-faceted discipline. In the past, we have focused on ensuring we send the correct headers, use the correct microdata such as JSON-LD and optimise meta tags. These are all vital parts of ensuring your site is optimised for crawling. However, as we can see in this blog that without focusing on the crawl budget and crawl efficiency, even the most accurately presented content is wasted if it is not discovered and added into the search index.
    These simple changes will offer considerable advantages to how Google and other search engines spider your site.
    The features and changes outlined in this blog will be available in our November release, which will be Invision Community 4.6.8.
  6. Like
    Ibai reacted to Jordan Miller for a blog entry, Drum roll please… announcing Achievements!   
    One of the overarching goals for any community leader is to shine a bright light on your members. Their contributions should be publicly recognized. Now with Invision Community’s new Achievements system... you can!
    Achievements is Invision Community’s native gamification system baked into our latest update, 4.6. 
    We’ve dreamed up innovative actions for community leaders to publicly recognize members who show up and participate in meaningful ways.
    Award Points and badges based on conditional Rules!
    Here’s what you need to know...

     

    Points
    Our Achievements Points system keeps a running tally of Points. Members may earn Points in a multitude of ways. Essentially, it’s achieved by participating in the community. 
    Create a topic? Points! Post a reply? Points! Follow another member? Nothing. Just kidding… Points!!!
    This is done through creating Rules.

     

    Rules
    Rules are actionable processes set up in the admin panel. 
    Here are what members can earn Points for:
    When a...
    Member joins a club Reaction is given New poll is created User follows a content item Review is posted Member logs in for the first time that day New club is created Content item/comment is promoted or featured Comment/reply is posted User follows a forum, blog, gallery, category etc User votes on a poll User is followed New content item is posted Post is marked as best answer There are also corresponding When/Then Rules for each item listed above. 
    When this action happens, then this subsequent action happens.
    Example: when a member posts 10 times, then this Badge is awarded.
     

     
     

    Badges
    Community leaders can also create specific Rules when deciding what actions earn Badges. 
    For example, reward your members with a Badge for visiting your community for 20 days.
    Once a member reaches 20 visits or more over 20 days, the Achievements system will automatically award them a ‘20 Visits’ Badge you’ve previously created.
     

     
     
    Ranks
    In 4.6, we’ve completely revamped our Ranks system to communicate with Achievements. 
    Achievements’ Ranks system will replace our previous Ranks system*
    Set up different Ranks based on how many Points a member earns. Ranks display a members’ perceived value to the community. The higher a members’ Rank, the greater their influence because the more they’ve participated. 
    Ranks are currently for prestige at the moment. 
    Here's our example for a pretend Coconut community:
     
     

     

    There’s a lot of information to absorb here, but if there’s anything to take away from this blog post it’s this: empower your contributing members with Achievements and watch your community grow. It creates an immersive and elevated experience for your die-hards. And hey, who doesn’t love to earn? 
    When 4.6 and Achievements is officially released for all, we’ll hold a live Q&A event for you to join and ask any questions you may have.
    Props? Concerns? Comments? Questions? We’d love for you to sound off in the comments! Not only because we want to hear from you, but because it’ll earn you some sweet, sweet Points, too!
  7. Like
    Ibai reacted to Jordan Miller for a blog entry, Take Your Community to the Next Level With Content Curation   
    Community sharing is community caring.
    Take it from me: prominently curating your members’ content will profoundly accelerate growth. It’s also pretty darn fun. 
    I’ve run my company, BreatheHeavy, since 2004. While many online businesses shuttered because of social media’s looming presence, mine thrived because of the community. Full disclosure? I had no idea creating a community back in 2004 would become the not-so-secret ingredient to staying alive. Ahh, if only I knew then what I know now.
    Hindsight is 20/20 (that number gives me anxiety, am I right?), but I never fully understood or appreciated how immensely game-changing community building is. 
    Related: The Importance of Moderation, err... Community Guidance (New Video!)
    In the past, I focused my efforts on writing news articles (in Wordpress) while my Invision Community community ran rampant. I felt my presence needed to take center stage. That cast a shadow on my community and thus my members. I unintentionally muted their voices by exclusively promoting mine. 
    That was a colossal mistake, but the greatest learning lesson. 
    One year ago, I decided to pivot and shift all my energy towards fostering my community; the results were astounding! I saw more than a 100% increase in unique visits compared to the previous year. 


     
    The most powerful change I made was shining a light on the content my members created.
    My website went from being a news site to a community. 
    I constructed a new homepage that featured topics created by myself AND my members. This not only manifested a dynamic, constantly varied homepage, but also incentivized members to post thought-provoking and engaging topics in the hopes their content gets featured. 
    In my community, topics that are featured on the homepage are considerably more viewed and commented on than topics that aren’t. I suspect you’d find similar results.
    Here’s how I set up my new homepage:
    I utilized Invision Community’s custom blocks feature. It’s available with the Pages application.
    I created a new block plugin, selected “topic feed” from the list, then set the permissions in the Feed Configuration tab to only show “featured” topics from members. I also used @opentype's SuperTopics plugin to give a more-polished look. Might sound a bit complex, but it’s rather intuitive. 
    Community leaders can “feature” members’ content by selecting their topic and in the moderation panel, tap “Feature.” 
     


    Our Picks
    “Featuring” content isn’t the only powerful tool Invision Community has baked into its software to highlight your members’ content. We’ve also carefully crafted a promotion option to manually select content that’s included on the “Our Picks” page and corresponding block. This is another powerful method to curate community content. 
    We created a guide on how to set up promotion/our picks.


     
    With great power comes great responsibility
    The ability to “feature” content is a privilege only moderators in your community should have access to – at least in the beginning. Avoid giving any member the ability to freely feature their own content onto the homepage - instead, focus on manually curating the content. Be selective and choose what topics you want to represent your community. 
    By creating a standard, your homepage won’t feature any and all content. Instead, it’ll display items you believe will pack the greatest punch. 
    Featuring your members' content visibly shows your desire to embrace your community. It’s one thing to comment on members’ topics, it’s another to feature and promote them for all to see. That’s the secret sauce of curation. 
    Do you agree? Disagree? Have any suggestions? Curate content in your own community? How many questions can I ask in a row? Drop us a line in the comments below! 
  8. Thanks
    Ibai reacted to Rikki for a blog entry, Web push notifications, native sharing & offline support   
    As we approach the release of Invision Community 4.6, I wanted to take you through some improvements for using Invision Community on a mobile device.
    Web push notifications
    For some time, we've used the local browser notification API to show users notifications. There's a big drawback though: users had to have the site open in a tab for these to work. This is particularly problematic for mobile devices.
    In 4.6, we've added support for the WebPush API, which allows sites to push notifications to users' browsers & devices even if the site isn't open - or even if the device is asleep.
    We already have support baked in for push notifications via our beta mobile app, so we've piggy-backed on that system and expanded it to support browser-based push notifications.

    Choosing push notifications
    For users, it's a simple process. A little while after joining a community they will prompted to accept notifications from the site when they open the notification list dropdown (or they can opt-in any time from the notification settings screen). After accepting, they will be able to choose a "Notification List + Push" option for any of the available notification types.

    Push notifications enabled
    Existing users, who may have already granted permission to the site in the past, will be re-prompted to accept push notifications upon logging in after the 4.6 upgrade.
    Push notifications typically show on the homescreen of a phone or in the notification tray of a desktop computer, so receiving dozens of notifications could be overwhelming. For that reason, Invision Community will automatically merge related notifications - for example, multiple mentions from the same topic, or multiple new topics from the same forum.

    Grouped push notifications
    And, of course, users can stop push notifications across all of their devices with a single click if they want to opt out.
    We're excited about the engagement potential of push notifications, since they allow you to immediately reach users who aren't currently on your site - a job previously left to email alone.
    On the subject of notifications, one more thing: we've heard your feedback about notifications for new replies/mentions being merged with notifications for likes/quotes, and will be separating these two types into their own permissions in 4.6. We're acutely aware that making notifications annoying results in users turning them off, so we're always looking to ensure there is a reasonable balance.
    Splash Screen Images
    When you add a website to your phone's desktop, it appears like a native app. Tapping to launch the site can show a blank screen for a few seconds while the website is loaded. Fortunately, you can now set a 'splash' image in the Admin CP which is shown when launching the app.
     

    Sharing using native share options
    Another enhancement coming in 4.6 is the addition of the device share sheet when sharing content from within Invision Community. Users will now see a "More Sharing Options" button (providing their device/browser supports the underlying API) which, when tapped, will open the device share sheet. The options available depend on the device, but typically include actions like sharing links in WhatsApp, posting to Facebook or creating a note.

    Offline support
    With a larger share of users now using mobile devices for most of their browsing comes the problem of patchy phone signal and internet connections dropping out. For a dynamic web-based platform like Invision Community, it's difficult to offer much in the way of full offline support, but starting in 4.6 we will present a branded offline page to users when they have no internet connection and try to access the community.

     
    We hope that you are looking forward to these PWA improvements coming in Invision Community 4.6!
  9. Like
    Ibai reacted to Matt for a blog entry, 4.5: Private staff notes   
    Managing a community as a team makes internal communication an essential part of its successful management.
    There are times where you want to leave notes for other staff on specific topics that you're watching. Perhaps a member is close to breaking the rules, or it might be that you want to keep the topic focused and on point so wish to split off-topic posts into a different area.
    Whatever the reason, Invision Community 4.5 adds the ability to leave private staff notes on topics.

    For some time, Invision Community has had the ability for staff to leave public notes. Now, in 4.5, staff can choose between public and private notes.

    This change was made based on customer feedback, so thank you! We do read and listen to all the feedback you leave.
    Who is looking forward to Invision Community 4.5? Let us know below!
  10. Like
    Ibai reacted to Matt for a blog entry, 4.5: Identify Statistical Trends   
    One of the benefits of using Invision Community as your community platform is that you control and own your data.
    There are several ways to review this data. One of which is via the Admin Control Panel which offers a suite of statistic views which helps to convert the raw data into something easily understood.
    However, it's not always easy to determine trends and community sentiment from these singular views.
    Invision Community 4.5 adds two new interactive views for user and activity statistics.
    This new 'overview' view not only shows you a snapshot of your community but also allows you to compare time periods. In the video, you can see that I select different date ranges, such as "three months". This shows you the data of that time period, and also compares it against the previous three months.

    In this example, you can clearly see that we have 50% more registrations and 33% more contributors compared to the previous three month period.

    Likewise, in this example, you can clearly see that we have a 1200% increase in reactions given with a clear breakdown of the type of reaction given to help understand community sentiment.
    These interactive displays automatically update, so if you are so inclined, you could leave the statistic pages open and watch as the data changes live.
    We hope that you find these new views useful in identifying trends and help to inform strategic decisions within your community.
×
×
  • Create New...