JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
metaform: use new syntax to show a template section
[wfpl.git] / misc.php
index 1e9a2b7..1045d45 100644 (file)
--- a/misc.php
+++ b/misc.php
 #  You should have received a copy of the GNU General Public License
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+# pass an integer, returns the suffix
+function ordinal_suffix($i) {
+       # teens are all __th
+       if(strlen($i) > 1 && substr($i, -2, 1) === '1') {
+               return 'th';
+       }
+       switch(substr($i, -1)) {
+               case '':
+                       return '';
+               case '1':
+                       return 'st';
+               case '2':
+                       return 'nd';
+               case '3':
+                       return 'rd';
+               default;
+                       return 'th';
+       }
+}
+
+# ordinalize(1) => "1st"
+# ordinalize(2) => "2nd"
+# ordinalize(3) => "3rd"
+# ordinalize(111) => "111th"
+# ordinalize("62") => "62nd"
+function ordinalize($i) {
+       return $i . ordinal_suffix($i);
+}
+
 # returns an array containing just the elements of $pipes that are readable (without blocking)
 # timeout 0 means don't wait, timeout NULL means wait indefinitely
 function readable_sockets($pipes, $timeout = 0){
@@ -105,7 +134,7 @@ function get_text_between($text, $start_text, $end_text) {
 # Make it easy to insert an array into the template data structure so that each
 # element of the array gets its own row.
 #
-# passed this: columnate(array('a', 'b', 'c'), 'k');
+# passed this: columnize(array('a', 'b', 'c'), 'k');
 # it returns: array(array('k' => 'a'),
 #                   array('k' => 'b'),
 #                   array('k' => 'c'));