Blog

Instant search for your sites with Algolia

Algolia is a pretty neat hosted indexing/search service, it's a bit like Lucene in the cloud, but extremely fast. Now it's available for all DotNest sites! Lombiq created the Orchard Algolia Search module, so now using Algolia search in Orchard is just a matter of installing and configuring a module. This module is also available now on DotNest, so you just need an Algolia registration to start! So if you want to play with the module, just create a free DotNest site! Oh, and what if you're even lazier then this? Then check out the Orchard Algolia Search Demo site here on DotNest!

Multi-user blog with proofreading tools and automated content sharing - Microsoft Student Partners case study

There is a blog for the Hungarian Microsoft Student Partners developed by Márk Bartha and Dominik Földi here on DotNest which is a great proof of how far you can get using only the built-in DotNest features and Media Theme for theming. Microsoft Student Partners are a group of university students who are enthusiastic about Microsoft technologies, regularly organizing meetups and workshops in their country. This blog has been written in Hungarian but it's still a really good example of a nice and heavily customized DotNest website. This is a guest post by Márk Bartha, software engineer at Lombiq. Click here to open the repository page of the theme project. Requirements Authenticated users who are using the website are in different roles. For example, the Student Partner role makes the user able to create a blog post, however, they are unable to publish it. Student Partner Mentors are proofreading the blog posts and hit the Publish button. Also, there are the Administrators who are able to create static pages (e.g. about page), event announcements or forms for contacting student partners. Let's see what features are implemented on this site hosted on DotNest. Create blog posts by student partners Publish blog posts by student partner mentors Set the status of blog posts (e.g. "Done", "Proofreading" or "Editing") Highlight a blog post on the home page Set header images for blog posts Create user profile pages to let the authors introduce themselves Create and publish event announcements and static pages by administrators Send emails to the student partners if a comment has been added anywhere on the site Create a contact page where the users can send a message to the student partners via email Share the blog posts on Facebook, Twitter, and Google+ automatically after a blog post has been published Other stuff like listing the posts and events in widgets and also be fancy using a nice customized Bootstrap theme Some of these features are pretty trivial to achieve in Orchard. To keep this case study exciting only the most interesting implementations will be described in-depth. Creating and displaying blog posts with proofreading possibility Fields as placeholders First of all, the BlogPost content type has been updated with a few additional fields. Most of these fields are functioning as placeholders (ie. their shapes has been overridden to display some data). For example, there are social share buttons displayed on the blog post detail page. To achieve this, an InputField has been added and overridden in the theme in the Fields.Input-Social-ContentSharing.liquid file containing the various share buttons. There is another field to display the author's name and profile link on both summary and detail pages. This one is in the Fields.Input-AuthorPart-ContentAuthor.liquid file that contains this code: <span class="content-author {{ Model.ContentItem.ContentType }}-author"> <a href="{% Href "~/Profile", Model.ContentItem.CommonPart.Owner.UserName %}">{{ Model.ContentItem.CommonPart.Owner.ProfilePart.FullName.Value }}</a> </span> Note, that these fields are on custom content parts to be able to reuse them on the Event content type. Highlighting a blog post To make it possible a BooleanField has been added to the BlogPost content type. Using this, the editor or the mentor can mark the post highlighted. There is a Query that fetches the posts with this field set ON and orders them by CreateDateUtc descending. It's using an unordered HTML list with a custom display type to render the items. Finally, a ProjectionWidget using this Query has been placed into the BeforeMain zone (can be Featured zone or anything) and only the first item has been displayed. Proofreading blog posts As mentioned above, the student partners are not authorized to publish blog posts. They can mark a blog post as "Done" by updating an EnumerationField attached to the BlogPost content type. After a mentor has logged in they see these posts and can review their content and publish them. If the post is not ready, they can mark it as "To be fixed". But how can the users see what status has a blog post been set to? The display shape of this field has been overridden in the Fields.Enumeration-StatusPart-Status.liquid that has been made visible in the admin summary from Placement.info. Since the theme stylesheets have no impact on Dashboard pages, this shape contains a liquid switch for assigning a background color for the status text container. Note, that it is possible to include static resources using the Liquid Markup. The following code section has been updated to show English status descriptions. {% if Model.ContentItem.VersionRecord.Published == false %} {% case Model.ContentField.Value %} {% when "In progress" %} {% assign bgColor = "gray" %} {% when "Waiting for proofreading" %} {% assign bgColor = "#fa6800" %} {% when "Proofreading in progress" %} {% assign bgColor = "#6a00ff" %} {% when "Can be published" %} {% assign bgColor = "#008a00" %} {% when "Has to be fixed" %} {% assign bgColor = "red" %} {% else %} {% assign bgColor = "transparent" %} {% endcase %} <div style="padding: 5px; background-color: {{ bgColor }}; width: auto; display: table-cell; color: white; font-weight: bold; width: 110px; text-align: center;"> {{ Model.ContentField.Value }} </div> {% endif %} Using workflows to send emails After a user commented on a blog post or an event announcement the student partners need to be notified about it. There is a pretty easy solution for this by using a workflow that is triggered by the Created Comment content item and followed by an Email activity. The Email activity is using tokens to display the author and their email address of the comment and the text itself. The visitors on the site may want to send a message to the student partners. DynamicForms feature is the best solution for this since it has a Workflows activity that is fired after a dynamic form has been submitted. One can use this activity as a workflow trigger followed by an Email activity that can send the form values via email to the student partners. Managing and displaying user profiles The authors need to have a profile page where they can show a bio and other personal details like social profile links and their roles at Microsoft. Also, they want to list the posts they have already created on the site. The Contrib.Profile module provides two pages where the users can edit and view their profiles outside the Orchard Dashboard. The User needs to have a ProfilePart where some fields have been attached to like FullName, Email, Bio and the social profile URLs. To be able to list the blog posts created by the user a ProjectionWidget is used. The Query has a filter that selects the content items matched by a search query in a search index. The query string is a token which gets the username from the route: {Request.Route:username}. Sharing blog posts on the social networks automatically To reach the followers and notify them the posts has to be announced on Facebook and Twitter. To make this happen automatically the well-known IFTTT has been used. It polls the RSS feed of the blog, and if it detects a new content it shares a post on Facebook and Twitter using the title and the URL of the content. Nice and simple. If you liked this case study and realized how cool features you have to create a nice website, just create your own site on DotNest for free. If you have any questions, then leave a comment below.

The DotNest idea board is now on GitHub

After introducing our (yet small) Support page the most important thing you'll notice that we retired the forum and introduced GitHub! More specifically you can add feature request and other ideas, ask questions, and post bugreports under the DotNest Support GitHub repository. Most of you will be already quite familiar with GitHub and its ticketing system; for the others: It's much better than the old forum and you'll like it! Under our GitHub repository now you can see what we have in mind currently for DotNest, what new things we'll introduce in the future. You can let your voice be heard there, add your ideas or concerns, anything you want to steer DotNest into a direction you want it to be headed. Sounds cool? Check out the existing issues to see what's in for DotNest!

Orchard Tricks case study: Create your personal blog on DotNest

George Roubie, an Orchard developer from Greece runs his personal development blog on DotNest as Orchard Tricks. Now he has summarized how he has created his site in this detailed case study. Enjoy! This is a guest post by George Roubie. Choose a template You can create your custom theme from scratch and upload with the Media Theme Deployment. On the other hand, if you don’t want to write everything yourself, you can choose one theme from the built-in ones. In Orchard Tricks I am using the PJS.ReTouch. Basic customization of the template Theme Options Some themes like PJS.ReTouch or other PJS themes have their own settings so you can change the appearance as you like. Change the favicon After you change the options of your theme you should change the favicon of your blog. Upload your favicon in the media folder. Go to Theme Override Settings and add your favicon URL. Features Analytics Every site needs Google Analytics, so if you want to track your users you have to enable the Simple Analytics module. After this you need to go to Settings and add the code that Google gave to you. Contact form A contact form is required if you want to have some feedback from your users. You have to enable the Dynamic Forms module so you can create a form with drag-and-drop. If you want to prevent bots from submitting your contact form you have to add a Re-Captcha element to your form, but first you have to enable the Anti-Spam Elements feature. The problem at this point is that you have to sign in to the dashboard every day to check if someone has sent you a message. This problem is solved if you create a workflow that notifies you with an email on form submit. You have to enable the Email Messaging and the Email Workflow Activities features for this. You don’t need to fill the STMP settings because DotNest has already filled that for you. Your workflow will look like this: Search form Every site needs one and the installation is so easy. Go to Modules > Recipes > Search and click Execute. The Search is now working but you can go to content definition and add more content that will appear in the search results. The final step is to go to Widgets and add the Search Form Widget. Useful Widgets The most useful widgets for a blog are: Recent Blog Posts Tag Cloud These I also added on Orchard Tricks. Customize blog posts Styling You can easily overwrite the styling of the blog post, by enabling the Theme Override feature, then going to Theme Override Settings and adding your CSS to Styles > Custom Styles. This stylesheet will be included last, so you can override any styling. Comments I actually don’t like Orchard Comments and I always remove the Comment Part from Blog Posts. Instead I add Disqus comments. You will have to enable Liquid Markup Templates module so that you can override how Blog Posts are displayed. I prefer to add the comments after the Body so I am overriding the Blog Post Body Part. You have to create a template with the name Parts_Common_Body__BlogPost: Your template should look like this: Liquid Markup is very powerful and you can do a lot of content customization. You can check out the public blog at https://orchardtricks.dotnest.com/. Go ahead and create your DotNest site for free to build your own blog!

You can easily build image carousels/sliders now!

It was a recurring request we received from all of you people running Orchard sites on DotNest that it should be easier to build image carousels/sliders. So we listened and added a module to allow just that! The newly released Lombiq Layouts module is now available for all DotNest sites. The module contains a Slider Element feature which, not too surprisingly, adds a slider/carousel Element to the Layouts editor. So now you can use the familiar layout editor you've already seen when editing pages to drag-and-drop a Slider Element onto the canvas. Then you can go on and drop Image Elements or really any other Element onto the Slider to build a configurable, easy to use carousel. Sounds good, right? So go ahead and add some kick-ass sliders!

Indian Orchard community site launched on DotNest

As announced recently a theme for Orchard community sites, as well as free custom domain usage for them is now available on DotNest. The first such community site to be moved to DotNest is the Orchard Project Indian Community website: Abhishek migrated the website from Azure to DotNest very quickly. You can read about his experiences in this blogpost!

Orchard community websites welcome: New theme and free custom domain usage!

If you run a local Orchard community website or want to launch one there's some good news for you: on DotNest there's a built-in theme for you as well as the treat that you don't need to pay for custom domain usage! Abhishek Luv (Indian Orchard community member and Orchard Dojo Trainer) asked us about moving the Orchard Project India website to DotNest. So we added the freshly released Orchard Community Theme to the DotNest selection: If you run an Orchard community site (like we do it ourselves with Orchard Hungary) then get in touch with us and we'll enable the theme for you as well as you'll get to use your custom domain with your site for free. So where is your local Orchard community?

Even better theming for DotNest sites

After some other recent improvements theming a DotNest site is now even closer to writing standard Orchard themes: with some complicated fixes around how URLs are handled (you don't want to know details, trust me!) writing a Media Theme is now a lot better experience. Templates and URL helpers in them will behave like you're used to, not to mention they will work in the same way locally during development as on DotNest. So go on and write a theme for that DotNest site of yours!

Theming a DotNest site just got better

As you surely know you have complete control over theming your DotNest site, including using custom templates written in the Liquid language. The latter got some important updates now: If you have errors in your template then it will be shown in place of the template and also logged with the Reports feature (which entries you can view from your site's admin). No more ugly generic error pages, you'll know in an instant if something went wrong with the template. You can now select if a template is rendered on the frontend, the admin or both. Media Themes that you can deploy from source control will behave like a standard theme and thus their templates will be only active for the frontend. Before this they were also displayed on the admin which caused quite some confusion. So do some theming!

DotNest sites now run Orchard 1.10.1!

The latest version of Orchard, 1.10.1 was released not long ago (just very little after the latest major version, 1.10) and now all DotNest sites are also upgraded: so DotNest is fully 1.10.1! It took us some time to apply this upgrade, but hey, if you have almost 1000 sites to care about it's a delicate process! So what's new in Orchard 1.10.1? In short: lots of smaller improvements, tons of bugfixes and a heap of changes that aren't visible for users but improve Orchard a lot as a software framework. So while probably this time you won't be astonished by some completely brand new features like Layouts or Audit Trail you'll notice that Orchard still got better and faster - not to mention it's now also an improved foundation for us to build a better DotNest for you. Also see the official release notes on what is new. So if you already have sites on DotNest, good news for you! If you don't, why don't you head over and give the 1.10.1-powered DotNest a test drive?