Squiz Matrix Asset Listing Last Position Custom Formatting

4 weeks ago by Nicholas Hubbard

Have you ever had an Asset Listing and wanted to customize the layout of the very last item listed? Here is a tip that is probably hidden deep in the Squiz Matrix Manuals, but all you have to do is use -1 as the position format.

  • Listing

By setting -1 as the position, it creates a new Bodycopy asset that can be used to format the very last asset listed. This can be super helpful for many things such as creating valid JSON by removing th comma at the end or giving the last item a different class.

Squiz Matrix WYSIWYG Editor inside of iOS!

Over the last year I have been working on Squiz Matrix for iOS. Things have really been moving along recently, and I have been able to release three beta versions so far. I have received overwhelming feedback and support, and I am using all of these to make it into an even better app.

Up until recently, there was one thing that it was lacking. There was no rich text editing. No WYSIWYG editor. So, what were users suppose to do that were accustomed to having a WYSIWYG to enter content? I decided that I needed to provide a solution for this. Not many people want to write raw HTML on their iPhone or iPad. So, with that, I present, the Squiz Matrix iOS WYSIWYG editor (not feature complete).

Squiz Matrix iOS WYSIWYG Editor

The main view of the editor lists all of the controls at top (iPhone version will be slightly different, but same functionality). It will contain all of the standard controls that one would expect from a WYSIWYG editor such as bold, italic, insert link, insert image, etc.

  • Listing

The editor will also have the option to insert a keyword, just like Squiz Matrix in the browser has.

  • Listing

There is an option to view the source code, which is also editable. It also features a very nice code formatting engine that keeps your HTML cleanly structured. No more unstructured code like the browser Squiz Matrix WYSIWYG editor does.

  • Listing

There are plenty of additional features not yet implement or shown above. The insert image and insert link features are going to be quite a bit of work, but I will post an update about the progress on those.

I think that this is going to be an amazing addition to Squiz Matrix for iOS, and I am thrilled to get this into users hands as soon as possible.

Questions or comments are welcome!

Squiz Matrix for iOS Beta 1 Released

Today saw the release of Squiz Matrix iOS beta 1. This is the first round of beta testing for all users that signed up.

  • Beta
  • Beta

The beta version includes the following features.

Features:

  • Add multiple site configurations
  • Asset Map Browsing
  • Status Colors
  • Importing of files in app
  • Management of Imported Files
  • Asset creation of selected assets
  • Asset creation from imported files
  • Viewing of selected asset screens
  • Asset Details
  • Viewing/changing Asset Status
  • Viewing/changing Asset Attributes
  • Viewing/changing Asset Metadata
  • Viewing Asset Webpaths
  • Preview Assets including all file types
  • Asset Map sorting
  • Deleting of assets
  • Pull to refresh

Squiz Matrix 3.28.0 is required.

Note: Since this is a beta there will be issues, things not finished, and bugs. Make sure you contact us with any of these issues that you might find.

Tripometer for iOS has just been released!

3 months ago by Nicholas Hubbard

We just released a new iOS app called, Tripometer. Tripometer is a simple and beautiful odometer. It tracks a users distance just like a car's odometer does. It works in the background as well so that you can set it and forget about it.

Interested? Check it out on the app store.

  • Tripometer Icon

Description

Tripometer is a beautifully designed odometer. Need to know how far you have traveled? Need to know when 20 miles has been reached? Just start it and forget about it.

Great for road trips, bike rides, running, and any other motion activity!

Features:

  • Works in the background, leave the app and let Tripometer continue to track how far you have traveled.
  • Metric or Imperial

Note: Using Tripometer inside a building will not work very well as it is hard to get a GPS fix. Please use outside or in a car. Continued use of GPS running in the background can dramatically decrease battery life.

Squiz Matrix for iOS: An Update

I just did a guest blog over on the Squiz Advocate blog about the status of my Squiz Matrix iOS app. Head over there to read the full post:

Squiz Matrix for iOS: An Update, on the Squiz Advocate Blog website

Retemodo Our Newest iOS Release

4 months ago by Nicholas Hubbard in #iOS #Objective-C

Apple just approved our newest iOS app, Retemodo. Retemodo is a reverse odometer, which counts down from a distance that you set. It is a great, easy to use utility app. All you have to do is start up the app, swipe or touch the numbers to set your distance, then click start. Then you can either watch the beautifully animated digits flip, or you can just forget about it. It works in the background and will alert you when your distance has been reached.

  • Retemodo Main View
  • Retemodo Back View

Want to support us?

ZSPinAnnotation: Custom MKMapView pin images from UIColor

5 months ago by Nicholas Hubbard in #iOS #Objective-C

Have you ever felt limited by the three Annotation pin colors that Apple provides with MapKit? Have you ever thought it was a pain to have to create custom images in photoshop every time you wanted to change the color? ZSPinAnnotation solves these problems by building the pin image on the fly. All you have to do is specify a UIColor and you get back a UIImage.

  • ZSImageView

If you want to create a ZSPinAnnotation you simply do the following:

UIImage *img = [ZSPinAnnotation pinAnnotationWithColor:[UIColor blueColor]];

The full implementation in mapView:viewForAnnotation:

- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation {

    if(![annotation isKindOfClass:[Annotation class]]) // Don't mess user location
        return nil;

    static NSString *defaultPinID = @"StandardIdentifier";
    MKAnnotationView *pinView = (MKAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
    if (pinView == nil){
        pinView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];
        //pinView.animatesDrop = YES;
    }

    // Build our annotation
    if ([annotation isKindOfClass:[Annotation class]]) {
        Annotation *a = (Annotation *)annotation;
        pinView.image = [ZSPinAnnotation pinAnnotationWithColor:a.color];// ZSPinAnnotation Being Used
        pinView.annotation = a;
        pinView.enabled = YES;
        pinView.calloutOffset = CGPointMake(-11,0);
    }

    pinView.canShowCallout = YES;

    return pinView;

}//end

iOS Beta Testers Wanted!

As time gets closer to some of our iOS app releases we are looking for individuals who are interested in being Beta Testers! Those special people will have a chance to play with beta versions as well as have input on new features and UI.

If anyone is interested we would be very grateful. Just follow the button below to come on board.

Squiz Matrix and Using Complex Keyword Modifiers

7 months ago by Nicholas Hubbard in #Matrix #PUC

Today I was working on creating a .ics file for Pacific Union College and I ran into a problem. Because I wasn't using an asset listing (using a Rolling Calendar Page) I wasn't able to use conditional keywords in order to change some of my output.

The problem was, iCal files are picky. They have to validate just like an RSS feed would. The DTSTART property must be printed differently if it doesn't contain a time. I wanted to check the results of a keyword to see if it didn't contain a time, which shows up as --:--:--. I also needed it to write some extra text if it didn't contain time. Here is what I came up with:

%asset_attribute_start_date^contains:--^replace:3:;VALUE=DATE^replace:0:%

Breaking It Down

Here is how this keyword works. It will be printing the date/time in two different ways. Assets that have a time will print like 20110122T111500 while another might just print 20110122, which is without a time. If I don't have a time, I need to also add ;VALUE=DATE, this tells the file it is only a date.

The keyword modifier looks at the result of the asset_attribute_start_date keyword and checks to see if it contains any --, if it does, it will return the number of times it find that, in my case, 3. So, I want to replace that number 3 with ;VALUE=DATE but if it returns 0 (meaning it found nothing) then we just want to replace it with a blank string.

It seems complicated but it actually is really logical and works really well. Very powerful stuff!

I found a bug in Matrix that prevents keyword modifiers from being used on event keywords such as %event_start_time_12h%, so if that had worked there would have been more than one way to accomplish this.

Squiz Matrix Asset Name: Two Ways To Do It

7 months ago by Nicholas Hubbard in #Matrix

One thing that people might not realize is that asset names can be printed in two ways. The first converts the ampersand into HTML entities and the second one does not. Both cases are useful for their own purposes.

%asset_name% 

// This automatically turns & into &amp;
// This is always useful when printing for HTML
%asset_attribute_name% 

// This will NOT convert & to &amp;
// This can be used if you are creating a different format, such as a .csv or .ics file