We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 7231
    • 4,205 Posts
    Smashingred’s recent post on MODx blogging experiences got me thinking about what features a modern blog should have.

    Here is the feature list I was able to compile based on what I see on almost every blog.
    Front-end:
    1) Blog Posts
    2) Comments
    3) Cross-blog communications (PingBack and TrackBack)
    4) Spam Protection (askemit)
    5) Tagging / Categories
    6) Archive
    7) Gravatars

    Front-end Extras:
    1) Tag Cloud
    2) Search
    3) Social Networking widgets

    Administration:
    1) Comment Moderation
    2) Web User management
    3) Author / Contributor management
    4) Publishing interface + Media management
    5) XML-RPC interface
    6) Dashboard

    Admin extras:
    1) Add / banner management
    2) Analytics / Stats
    3) Posting to Twitter

    MODx is staking up well with this feature list. Only the Pingback / Trackback solution is not fully addressed (although there is a solution available in Japanese) and the XML-RPC (which already exists is Revolution I think).

    Did I miss any must-have blog features? What could MODx do better (if anything) to be more Blog friendly?
      [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

      Something is happening here, but you don't know what it is.
      Do you, Mr. Jones? - [bob dylan]
      • 27708 MODX Staff
      • 2,502 Posts
      Shane,

      Your featureset is very good and I would add these as feature/benefits to add

      Easy Installation/Initial setup
      XML-RPC server and Blogger API/MT API Extensions, for trackbacks/pingbacks and remote editing using tools such as Qumana, DeskJet, Scribefire and others. (Don’t gimme no crap about security as this seems to never be vulnerable exploit on the major blog platforms).
      Akismet or Spam Assasin integration with Jot

      Other Common Features that MODx does that many blogs can do is:
      Ad management, GoogleAdsense, etc. via chunks.
      Blogrolls (via resources and a parent (TV taggable and can be output via Wayfinder or Ditto),


      One final addition would be import processors for WP, MT, Blogger, EE and TypePad.
        Author of zero books. Formerly of many strange things. Pairs well with meats. Conversations are magical experiences. He's dangerous around code but a markup magician. Blog ✦ Twitter ✦ LinkedIn ✦ GitHub
        • 33372
        • 1,611 Posts
        I don’t really focus on blogs myself, but I would think that for some folks posting by Twitter and similar methods would be important.
          "Things are not what they appear to be; nor are they otherwise." - Buddha

          "Well, gee, Buddha - that wasn't very helpful..." - ZAP

          Useful MODx links: documentation | wiki | forum guidelines | bugs & requests | info you should include with your post | commercial support options
          • 27708 MODX Staff
          • 2,502 Posts
          Posting to twitter is an easy plugin to create. I have a php api wrapper class for twitter that works well. It would be easy to create the plugin to post to twitter using onDocPublished (correct call?).


          Other social additions such as gravatars for Jot (there is an addon already) I am going to build out one that uses twitter avatars too.
            Author of zero books. Formerly of many strange things. Pairs well with meats. Conversations are magical experiences. He's dangerous around code but a markup magician. Blog ✦ Twitter ✦ LinkedIn ✦ GitHub
            • 7231
            • 4,205 Posts
            Posting to Twitter (or any other social network) would be a very cool plug-in.

            I updated my original list to include some of the suggestions. It would be cool to have a map attaching each function to the corresponding MODx method. I can’t wait for your article.
              [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

              Something is happening here, but you don't know what it is.
              Do you, Mr. Jones? - [bob dylan]
              • 3749
              • 24,544 Posts
              Did anyone find a pingback/trackback solution? I found some PHP pingback code that looks pretty clean. It shouldn’t be too hard to snippetize. I’ve never had a blog so I don’t fully understand linkbacks.

              I think it would be great to have a fully self-installing blog package for Revolution.

              Here’s the pingback code:

              function pingback($text, $sourceURI, $sameSite = False) {
                  $targets = getTargets($text);
                  foreach($targets as $targetURI) {
                      preg_match("/X-Pingback: (\S+)/i", http_req($targetURI, "HEAD"), $matches);
                      if(isset($matches[1])) {
                          $pingbackserver = $matches[1];
                      } else {
                          preg_match("/<link rel=\"pingback\" href=\"([^\"]+)\" ?\/?>/i", http_req($targetURI), $matches);
                          $pingbackserver = $matches[1];
                          if(!$pingbackserver) {
                              continue;
                          }
                      }
                      if ($sameSite !== False) {
                          preg_match("/^http:\/\/([^\/]+)(.*)$/", $sourceURI, $matches);
                          $hostname1 = $matches[1];
                          preg_match("/^http:\/\/([^\/]+)(.*)$/", $targetURI, $matches);
                          $hostname2 = $matches[1];
                          if ($hostname2 == $hostname) {
                              continue;
                          }
                      }
                      ping($pingbackserver, $sourceURI, $targetURI);
                  }
                  return true;
              }
              function getTargets($text) {
                  preg_match_all("/<a[^>]+href=.(http:\/\/[^'\"]+)/i", $text, $matches);
                  return array_unique($matches[1]);
              }
              function http_req($uri, $method = "GET", $add_header = '', $payload =  '') {
                  preg_match("/^http:\/\/([^\/]+)(.*)$/", $uri, $matches);
                  $hostname = $matches[1];
                  $script = $matches[2];
                  if(empty($hostname)) {
                      return;
                  }
                  $fp = fsockopen($hostname, 80, $errno, $errstr, 30);
                  if(!$fp) {
                      return;
                  }
                  fwrite($fp, "$method $script HTTP/1.1
              Host: $hostname
              User-Agent: pingback
              $add_header
              
              $payload
              ");
                  stream_set_timeout($fp, 5);
                  $res = stream_get_contents($fp);
                  fclose($fp);
                  return $res;
              }
              function ping($pingbackserver, $sourceURI, $targetURI) {
                  $payload = <<<ENDE
                  <?xml version="1.0"?>
                  <methodCall>
                      <methodName>pingback.ping</methodName>
                      <params>
                      <param>
                      <value>$sourceURI</value>
                      </param>
                      <param>
                      <value>$targetURI</value>
                      </param>
                      </params>
                  </methodCall>
              ENDE;
                  $length = strlen($payload);
                  $request_head = "Content-Type: text/xml\r\nContent-length: $length";
                  return http_req($pingbackserver, "POST", $request_head, $payload);
              }
              
                Did I help you? Buy me a beer
                Get my Book: MODX:The Official Guide
                MODX info for everyone: http://bobsguides.com/modx.html
                My MODX Extras
                Bob's Guides is now hosted at A2 MODX Hosting
                • 7231
                • 4,205 Posts
                Actualy there is a fantastic Trackback module/plugin/snippet combo that is very cool. I first heard about this a while back but put it off and ended up forgetting about it until now. tkfm did a fantastic job with the translation and the author soushi also did a great job since this is a full featured and fully configurable trackback system for sending and receiving trackbacks. I am sorry that I did not check it out at the time.

                Anyway I urge you to check it out, it is worth the effort.

                First go to this post and download the zip file. Then go to this post and get the translated readme and the english language file (thanks tkfm). Don’t expect to get it all at first but once you do be ready for one of those "I wish I knew about this before" moments wink
                  [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

                  Something is happening here, but you don&#39;t know what it is.
                  Do you, Mr. Jones? - [bob dylan]