A Quick Update On The Overall Status

This side of the site has well been passive for quite some time. Generally, I've been sending project status updates on Twitter and Facebook, but never actually sat down to throw together the development bits into a blog post.

If you've been following Chyrp along the way then you may be aware of what's happening, however, this post is to poke the awareness of Chyrp users who don't really visit GitHub that much, neither follow Chyrp on Twitter, hence this text. Here, I've got couple of announcements to make.

Development Stage of Version 2.5

The past two months have been quite active on the development side of things. During September, there were some oscillations but all in all some bugs were fixed, couple of CSS tweaks on both Admin and Firecrest themes, etc. The most exiting part was (is) October. Why, I hear you ask! For one, due to the fact that more or less I've gone full-time with Chyrp since the beginning of the month. Yeah, it's hard to make full-time on an open-source product that doesn't generate income, but…, I've got financially backed up by a dude across the globe. He's a Godsend. A very kind and generous human being, even asked that I don't mention his neither his company's name on this blog.

Having nailed that contract, gave me enough time to slowly and progressively think stuff ahead, consider a proper project management approach, critically think Chyrp's development flow, take care of system-wide flaws (i.e., login problems), and bring up new functionality. It really can't get any more exciting than this. Having said that, just two days ago I've released version 2.5 Beta 3 (go get it buddy). This came out to be a very exciting release, since it brings with numerous bug fixes, a new refactored Update process and last but definitely not least, has a brand new WYSIWYG Editor inside. And that brings me to my next announcement.

The RedactorJS Sexiness

About a month ago, we've purchased RedactorJS; a very sexy WYSIWYG Text Editor for the masses. The content publishing experience sprang from here to there (if I could just draw a diagram here to depict it), and we've received compliments and words of encouragement for it. I must express my gratitude and appreciation to all those who donated and made it possible to enhance Chyrp's usefulness. If it wasn't for your $$, me, you and every other Chyrp user wouldn't be able to enjoy the new streamlined experience of writing. Now it meets the true meaning of the word itself.

Besides improving user experience, RedactorJS has had its other notable benefits too. First and foremost, within Text Feather (where most of the time is spent) now you have the possibility to insert as much images as you want into your posts. You can either insert an image by providing a link to it, or you can simply upload it. Yup, you read that correct. Upload images by using RedactorJS' Image Upload modal window. Note that this is not part of the 2.5b3, either you wait for say, v2.5b4 or go grab the current development zipball. Second important thing (which may only matter to me), with the advent of RedactorJS, Chyrp's package size drops down to around 500kb; the old WYSIWYG Markdown/Textile editor library is gone. Yay! I've also got rid of the SWFUpload Module, which was more of a security threat rather than nifty to anyone or anything (R.I.P. the Flash days).

About Me

I don't intend to provide an autobiography here. I just want to point out that I've moved to Vienna, Austria. Been here for one and half week to pursue a Master's degree in Social Studies (Science-Technology-Society). While I expect this change to open up opportunities for me and Chyrp, I'm also willing to experience things from a different (hopefully better) angle. There's a small (read: giant) gap in terms of perspective in a Kosovo vs. Austria opportunity match.

I love my country. I'm proud of my nation. I'm proud of my seven years in the Armed Forces. But I totally disapprove how the current geo-socio-politico-economico-military things are rolling there, so I just had to move on for a while.

Alright, I'm ending this post. You had enough of my psychobubble bullshit!

By the way, don't forget to follow Chyrp on Twitter and give a Like on Facebook.

Auf Wiedersehen!

Chyrp 2.5 Beta 2 Released

"This changes everything. Again!"

I'm just kidding, that's a quote taken from Apple when they introduced iPhone 4. However this release does indeed bring a lot improvements with it. We've been struggling to get this out earlier but failed. We acknowledge it and hope you forgive us, however, we're glad with what we've achieved so far and so should you. Chyrp 2.5 Beta 2 adds another layer of excitement by featuring the Firecrest new theme named after Chyrp 2.5. Along Firecrest I want to point out the newly developed Like module that is part of Chyrp now. For a full list of changes check out the changes log file.

Moving forward, first of all we hope you'll like Firecrest Theme. If there's a tiny chance you won't, good old Stardust will shortly be available for download from Extend/Themes and you can revert back to it. Second of all, we really count on your overall feedback. Keep in mind that all this progress wouldn't be possible if it wasn't for each and everyone of you sending over suggestions, reports addressing issues and last be certainly not the least, your emails commending our effort to keep this awesome blogging engine alive. I'm truly grateful to ya'll. Keep 'em coming.

Finally, the upgrade process for 2.5b1 users should be pretty straightforward. Normally you'll get the notification that there's a new version available. Before clicking that, make sure you backup your install just in case something goes bad. We fixed couple of issues in the Upgrader.php itself, hence we recommend you backup first.

Chyrp 2.1 users, if you haven't upgraded to 2.1.2 yet, please do so. If for any reason Firecrest may look too tempting you can easily upgrade to 2.5b2 though we would rather have you be patient for a little longer. Once 2.5 gets close to Final, you'll get your chance of trying Firecrest too. ;)

Now head over to download page and grab your Chyrp 2.5b2 copy.

Happy tumblogging!

• Arian

Here's What's Been Going On Recently!

Hey everyone,

It's amazing how fast time flies by and if we neglect it then we should put the blame upon our shoulders. This is not only related to Chyrp but it relates to every aspect of this life. There's an important thing I learned between the time when we released 2.5 Beta 1 and now, that is I should never again set a release date. Sometimes keeping a promise varies due to other life circumstances which mostly are out of our competences and there's nothing we can do about it. I will seriously try to remember this hint everytime a new Chyrp version is about to come out.

Though the delay has it's pros and cons, I strongly believe we could pull more advantages off it than critically judging. Chyrp 2.5 has been cooking for a while now but if you've followed along with development, you (should) have realized by now the exciting new stuff this release will bring with.

The beginning of this year was a great start. If you recall from the last blog post Jack talked about Chyrp possibly being added to certain instant installers and yes we got in. The first one to support Chyrp was Softaculous by adding it to the list of web apps shipping with their instant installation script. This is very important for us, and Chyrp in particular because Softaculous happens to be used by the majority of web hosting providers and this might just bring Chyrp close to users that are yet unaware of its existence.

The second event that made us even happier was the cool generous deed by AppFog to include Chyrp in their PHPFog Jumpstart web apps list. PHPFog is an extremely flexible PHP Cloud Hosting provider with an extremely user-friendly interface and very convenient prices. I mean, they didn't only add it but after fiddling a bit with Chyrp and working to get it up there, @phyre5 was impressed with Chyrp's simplicity and how lightweight it actually is.

@phyre5: You're quite welcome! Thank you for making such a lightweight blogging engine with a one-step setup process. It was fun!

This in return is a bonus point comment and pushes our morale up high to keep working even harder and bring great results eventually.

And many other cool things which closely relate with the 2.5 release but I'll leave them for the follow-up post since it's going to be a bit longer.

The release of Chyrp 2.1.2

Last but not least, the good guys over at High-Tech Bridge Security Research Lab in Switzerland found a tiny potential XSS issue on Chyrp. There's no need to panic tho, normally the attacker would need to gain login access to your admin panel in order to execute malicious code, but anyhow we take your and Chyrp's security close to our heart thus we fixed the issue.

If you're running whatever version of Chyrp we recommend you go ahead and update it. The easiest way to patch your installation would be to grab the only changed file below and replace it in your server, that would do just fine. When I say 'whatever Chyrp version' I mean 2.5 Beta 1 users should do the same if they don't want to wait for the next beta to come out. Newer Chyrp versions, starting with 2.5 Beta 2 (due this weekend) will already be patched so if you haven't tried the last beta yet, hold on to what you currently have, Beta 2 brings the new Firecrest theme along. Until then, download below and go patch your Chyrp powered site. See you again very soon.

Download Patched File

ajax.php

• Arian

Instant Installers

Theres been some great news in the community today. Arian has just found out via twitter that chyrp will be an app installable via phpFog, which is cloud hosting service that provides its own instant cms installers. This in addition to instant install will be the second instant installer chyrp is available on. This is terrific news, and I hope that users of phpFog see how easy to use chyrp is.

In other related news, more work has been going for getting chyrp available in instant installers. These installers include softaculous and installatron. In addition, if anyone is using dreamhost, we would greatly appreciate it if you would go to your cpanel, click where it says click here to become an app developer" and then submit Chyrp through the panel.

The other app installer that we need help with is bitnami. If everyone would consider voting at bitnami, then we may be able to get listed as a bitnami installable app as well, earning you the everlasting gratitude of the chyrp team. Thanks!

How To: Use twig

Thanks to Matt-SD MattSD.com for this tutorial, originally posted in the forums.

PART 1: BLOCKS

Open the layouts/default.twig in a theme of your choice (I'll be using stardust). Look in the head & you'll see this line:

{% block title %}$site.name{% if title %} » ${ title | escape }{% endif %}{% endblock %}

What that does the {% block title %} does is declare a block & {% endblock %} ends it (obviously) the stuff in the middle is the fallback content for that block. It's the same for {% block content %} which you'll see often.

Now, open pages/index.twig. At the top you'll see this:

{% extends "layouts/default.twig" %}

which basically says this file (index.twig) fills in the blocks from layouts/default.twig. Below that you'll see this:

{% block content %} {% for post in posts.paginated %} {% include "feathers/" ~ post.feather ~ ".twig" %} {% else %}

${ "No Posts" | translate }

${ "Nothing here yet!" | translate }

{% endfor %} {% endblock %}

what this does is fill in the content block from default.twig. You following me? The layout (default.twig) declares the blocks, & index.twig tells default.twig what's in them.

I'll continue writting this tutorial in the next post.

PART 2: VARIABLES

One variable you will use often is the $site.url variable. In PHP this would be $site['url'] or $site->url whichever tickles your fancy. What that variable outputs is the URL of your Chyrp installation. For example, if your site was located at http://example.com/blog/ then that's exactly what $site.url would output.

$site.name

Here's a list of the variables you'll most likely use

  • Theme:
    • $theme.url = the theme's directory
    • $theme.feeds = the RSS feeds associated with your blog in (uses a tag)
    • $theme.stylesheets = a for every CSS file in the stylesheets directory
    • $theme.javascripts = Same as above, but with javascripts
  • Post (obvious explanations omitted):
    • $post.feather
    • $post.id
    • $post.paginated = require the Pagination module.
      • $post.paginated.prev_link = Previous page of the paginated entry
      • $post.paginated.next_link
      • $post.paginated.pages = Number of pages
    • $post.created_at
    • $post.url
    • Text feather:
      • $post.title
      • $post.body
    • Audio:
      • $post.description
      • $post.audio_player
    • $post.dialogue = requires chat feather
    • Link:
      • $post.source = the link
      • $post.name = name for the link
      • $post.description
    • Photo:
      • ${ feathers['photo'].image_link(post, 434) } = outputs photo at a max width of 434
      • $post.caption
    • Quote:
      • $post.quote
      • $post.source = Who said it
    • Video:
      • ${ feathers['video'].embed_tag_for(post, 440) } = video player at 440 px wide
      • $post.caption
  • Flash: Don't know ANYTHING about this one
  • Trigger: See this page: https://github.com/chyrp/chyrp/wiki/Triggers-%28List%29
  • Modules: All the active modules
  • Feathers: All the active feathers
  • Title: The title of the current page or post
  • Site: (I've excluded comments for the obvious ones)
    • $site.url
    • $site.name = Your blogs title
    • $site.description
    • $site.feed_url = The URL entered in the General Settings, Feed URL box
    • $site.email
    • $site.timezone
    • $site.can_register = If users are allowed to register or not
    • $site.comments_per_page
  • Version: The version of Chyrp you are using
  • Now: the current timestamp. Equivalent to PHP's time()
  • Post: same as $_POST
  • Get: same as $_GET

Of course, there a more, but these are the one's you'll use the most. If think there's a variable that isn't listed here, just ask on the IRC channel (#chyrp on irc.freenode.net)

PART 3: FILTERS

A filter works by first getting the variable then applying the filters to it. For example, no make your blogs title capitalized, you would do this:

${ site.name | upper }

To get the current date in dd/mm/yyyy format, you'd do this:

${ "now" | date("d/m/Y") }

The Inspect filter is like PHP's print_r() or var_dump(). This would output the $site.url, $site.name, $site.description, etc:

${ site | inspect }

You can also have multiple filters. For pagination, you could do something like this:

${ "Page %d of %d" | translate | format(posts.page, posts.pages) }

which would output something like "Page 2 of 5". And because of the translate filter, you would see this: "Seite 2 von 5" if your language was set to german (from Google Translate. Sorry if it's wrong.)

For a full list of filters, & further reading on Twig, go here: https://github.com/chyrp/chyrp/wiki/Twig-Reference

- Matt-SD MattSD.com