Building ProcessWire with the best editing tools (2.5.21)

Before a few weeks ago, ProcessWire had the bare minimum when it comes to tools for inserting images and links into your content [from a rich text editor]. In fact, those tools were pretty much identical to how they'd been in the original release of ProcessWire 2.0 (more than 4 years ago now… has it been that long?). Most of you reading this are able to look past things like that and see that it doesn't matter too much because ProcessWire is so much more than this. Yet we can't lose sight of just how important these tools are in the bigger picture of the CMS world.

ProcessWire and the rich text editor (as an example)

If there's one field that our clients likely interact with more than any other, it's the rich text editor (CKEditor, TinyMCE etc.). And if there is one editing tool prospective users are likely to test out, it's also likely the rich text editor. Never mind the fact that the rich text editor (RTE) is not particularly important to ProcessWire in the technical sense… it's just one Inputfield plugin module of many. You and I know that, but what makes ProcessWire special is still unknown to most.

Some have suggested that ProcessWire shouldn't even come with an RTE. But look at WordPress (a CMS built around an RTE): it owns more than 60% of the CMS market share, and powers nearly 25% of all websites in the world. This audience is very much RTE-focused, and it's one of the reasons why I think our RTE tools need to be the best they can be–to help attract people that have outgrown or are moving on from WordPress… with a tool that is truly better in every respect. WordPress is so lacking relative to ProcessWire in almost every other way, yet that doesn't matter to most of the potential users of CMS products.

Disclaimer: ProcessWire is not WordPress and does not aim to be. ProcessWire does not aim to be Laravel either.

Our path for growth

It's always interesting to see what's happening in the framework scene, what's popular in the PHP world, or even what MODx, EE or Craft are doing. In fact, I'd love to sit back and focus on being a PHP aficionado, telling you a lot about PSR standards or PHP 7. I derive a lot of enjoyment from that for sure. But that's not how we scale ProcessWire to something truly big. We have to keep focused on what really matters now, and what will impact the experience of our users (and future users) the most. When we take a hard look at those current and future users, what really matters when it comes to growth? The current CMS landscape says a lot. We need to focus on the users of our product more than what's trending now or what our own coding passions are.

Our foundation is already strong (and we're always improving that too). Our primary focus is on making consistent and incremental improvements to ProcessWire each day, and in every way–better and better. ProcessWire will always be the professional web developers CMS of choice with the most rock solid foundation behind it. But it's also got to be a lot more than that. My view is that ProcessWire's growth comes not from people outgrowing their PHP framework (a relatively small group), but from people outgrowing less powerful CMS products (a massive group).

For these reasons, I've been trying to give a lot of attention to making sure our interactive editing tools are the best they can be to compete on every level. In this post, the RTE is used as an example, since it's received focus in the last couple off weeks. But you'll see plenty of other examples in almost every blog post here. This week our RTE link tool got a major upgrade, which I think you and your clients will like.

New RTE link tool highlights

  • Support for attributes: class, rel, title and target. Best of all, you can define what you want the options to be in the ProcessPageEditLink module configuration.
  • Link to pages by typing a few characters of the page name or title (for autocomplete linking).
  • Support for anchor links. If your editing area contains anchors, ProcessWire will find them and make them selectable in the link dialog.
  • Auto detection of external links, with auto-assignment of attributes to external links. If you want your external links to automatically add rel=nofollow and target=_blank for example, no problem! You can also configure this from the ProcessPageEditLink module configuration.
  • A live updated HTML preview of the link (for those like me that always go and click 'view source' after adding anything to an RTE). :)
  • Autodetection of email addresses for mailto links.

New RTE link tool screenshots

This is the module configuration screen where you can define what attributes you want to make available for selection:

Grab ProcessWire 2.5.21 dev and please let us know how the new link tools work for you! We will continue to keep working to make sure that ProcessWire has the best editing tools available both for you and your clients.

Comments

  • Mats

    Mats

    • 5 years ago
    • 73
    Great features! Will try it out asap.
  • ryan

    ryan

    • 5 years ago
    • 33
    Diogo, actually we already have easy linking to emails. Type in an email address and it will convert it to a mailto link. I forgot to mention that in the article, so I have just updated it.

    As for telephone number support, the rules for detecting that are a lot less clear. I will keep an eye out for methods of doing that though. If it's something that can be added to work reliability, I'll definitely add it. Thanks!

    • diogo

      diogo

      • 5 years ago
      • 23
      Maybe it can be done explicitly, like a dropdown where the client can choose from some types. This way you don't have to make any kind of assumption or crazy guesses and can be easily extended by developers to support links to skype, twitter, etc.
  • Marc

    Marc

    • 5 years ago
    • 63
    Whoa ho ho. That's really cool. Select Anchor is going to REALLY impress some of my anchor-lovin' clients (do we all have those?). Thanks for the update!
  • ryan

    ryan

    • 5 years ago
    • 53
    I agree styling should not be done in the RTE. I consider that to be making the editing tool worse, not better. Once style gets into the content, it's no longer portable across site redesigns.

    Though I don't see anything wrong with making your client's typographic experience in the RTE similar to what it is on the front-end (by making typefaces and colors appear similar, etc.). That's something that is already supported (see the example files in /site/modules/InputfieldCKEditor). Though my personal preference is to keep the editor purely focused on the semantics of the content. And one of the best ways to do that is to isolate the content completely from the view its presented in.

  • pwired

    pwired

    • 5 years ago
    • 34
    All that talk about making processwire big, how to make it grow and then in the same breath mention how big and how well known wordpress is. Processwire doesn't work like wordpress so you have to go another way. First make processwire known in the field of designers and coders. As for end users, bundle processwire with a pack of tuto's on "how do I ..." That will show the end user how fast you can pick up the unique concept of processwire. And that will be talked about and spread around.
    • ryan

      ryan

      I agree with regard to tutorials. I also agree that PW doesn't work like WordPress (and like my disclaimer said, PW is not WP and doesn't aim to be). But when you've got one CMS out there that is so overwhelmingly successful relative to all other CMS products in existence, and by such a huge margin, for years and years, you have to analyze it and see what you can learn from it if you want to grow.

      For context, the blog post is partly a response to questions that other posed to me during the week. I'm suggesting that there's more growth to be found by looking at what's already been successful than there is in following trends or our own individual passions. What this all points to is a focus on you, the users and future users of ProcessWire. You are the focus. That's why these updates and posts cover incremental improvements that you can start using now, and will continue to do so.

      Lets take the planned PSR-3 support as an example. This provides a common logger interface, something that I think is great and fully intend to support in the near future. But lets be honest, what will bring more benefits to most PW users: PSR-3 or the incremental link tool upgrades presented in the above post? The PSR-3 support will be great for a small group, but for the vast majority it simply won't matter. So I have to sometimes set aside my personal interest in these things (at least temporarily) and really focus on what matters to PW's growth. Both things are important, but users come first.

  • pwired

    pwired

    • 5 years ago
    • 25
    How far do you want to go with this in the end ? Is styling going to be included ? Things like Styling should be done in the CSS and not in the RTE.
    The focus should be on the unique concept of processwire and finding ways on how to make end users aware of this and start using it. I don't think it is in expanding the RTE but in expanding tuto's on how to quickly access processwire from the inside. Because in there lies the uniqueness and power of processwire.
    • diogo

      diogo

      • 5 years ago
      • 33
      Ryan, this is great!

      Since you're at it, please consider also easy linking to emails an phone numbers (mailto: and tel:)

       

      Twitter updates

      • This post covers a few of the bigger updates in ProcessWire 3.0.154+3.0.155. This includes new live replacement of text in core and modules, a new method for creating canonical URLs, and some major upgrades to our input->urlSegment() method! More
        24 April 2020
      • A brief look at what's new in ProcessWire 3.0.154 in this forum post: More
        17 April 2020
      • This week we’ve got a few new and interesting core updates in progress, though none quite ready to release just yet. So rather than releasing version 3.0.154 today, I thought we'd instead take a brief look at what’s coming over the next few weeks… More
        3 April 2020

      Latest news

      • ProcessWire Weekly #312
        In the 312th issue of ProcessWire Weekly we're going to check out the latest core updates, a couple of new third party modules, and a brand new site of the week. Read on!
        Weekly.pw / 2 May 2020
      • ProcessWire 3.0.154 and 3.0.155 core updates
        This post covers a few of the bigger updates in ProcessWire 3.0.154 and 3.0.155 on the dev branch. This includes a new function for live replacement of text in core and modules, a new method for creating canonical URLs, and some major upgrades to our $input->urlSegment() method that I think you’ll like!
        Blog / 24 April 2020
      • Subscribe to weekly ProcessWire news

      I just love the easy and intuitive ProcessWire API. ProcessWire rocks!” —Jens Martsch, Web developer