Commit graph

587 commits

Author SHA1 Message Date
Josh Sherman
7fb8265998 Distance class
Moved the convert unit logic out of the Convert class. Added a method to calculate distances between 2 points
2012-12-14 15:55:49 -05:00
Josh Sherman
bf95e07591 Set up database factory to bail is no driver is defined
Solves the issue with having a site not using the built in PDO (case in point, I'm building a site entirely on Redis with a separate vendor library that isn't part of PICKLES)
2012-12-04 12:09:14 -05:00
Josh Sherman
344e685035 Added meters to miles conversion method
Rearranged methods as well, they needed to be in alphabetical order. In the case that I need more distance related conversions, I'll move that method to it's own class.
2012-12-03 12:04:25 -05:00
Josh Sherman
3290ee0135 Added cache purging post-execution for multiple row UPDATEs 2012-12-02 13:08:36 -05:00
Josh Sherman
50664a22ac Added support for multiple UPDATEs
Also added a new parameter to allow for PDO to handle this correctly as Postgres doesn't allow for multiple row updates in a prepared statement
2012-12-02 12:58:06 -05:00
Josh Sherman
864b44b13b Started scaffolding a database init script 2012-11-30 17:37:47 -05:00
Josh Sherman
f812971395 Merge branch 'master' of github.com:joshtronic/pickles 2012-11-30 17:36:43 -05:00
Josh Sherman
f75862fabd Added dot notation magic for URIs
Used to be very rigid in that each URI had to map to a single module. Now the inclusion of dots in the URI allow you to have multiple end points in a single file. /user/edit and /user/edit.save both resolve to /modules/user/edit.php
2012-11-30 17:33:53 -05:00
Josh Sherman
e73f074a54 Fold was missing a close marker 2012-11-27 11:37:40 -05:00
Josh Sherman
29c0dbad1f Added number utility class and a method to add ordinal indicators to a number (and without the need of PHP 5.3 which has some new class for that) 2012-11-17 12:27:00 -05:00
Josh Sherman
6f80fb51df Added a way to queue records and do a mass INSERT 2012-11-16 17:48:05 -05:00
Josh Sherman
dbcf427616 Added string method to generate a URL slug 2012-11-13 22:40:09 -05:00
Josh Sherman
de89ef85d1 Disabled debug_backtrace logging for PHP < 5.3.6 2012-11-08 13:54:35 -05:00
Josh Sherman
6c7d48278c REPLACE syntax was still using SET even though the way variables were set has changed 2012-11-07 19:53:09 -05:00
Josh Sherman
a36d51bb1a Fixed Cache::delete() when passing an array of keys
Since get() allows you to pass an array and get all of the keys back, I assumed delete worked the same way. It does not.
2012-11-07 19:28:44 -05:00
Josh Sherman
a0ad85e8e9 Added ability to turn off database auto-cache from the config
Probably should make it a part of the model as well, assuming it doesn't already do that, pretty sure it doesn't. Would help me as one of my sites I need to migrate a ton of code, so being able to flip models on one by one would be excellent.
2012-11-06 11:21:02 -05:00
Josh Sherman
b41f2c12e9 Updated to check if the supposed column names are integers
Simplified logic by only checking one variable. Since "1" is a string but also returns true for being an integer, I swapped the is_string out for an !is_int
2012-11-06 09:13:55 -05:00
Josh Sherman
b2037343d9 Added ability to pass in an array of integers assumed to be ID's
Previously new Model(array(1, 2, 3)); would results in a query like SELECT * FROM table WHERE 1 AND 2 AND 3; which would typically result in an out of memory error depending on the number of rows in the table (as all would be returned). Added detection for an array of integers and forces that to be considered new Model(array('id' => array(1, 2, 3))). As I type this I think I need to go back and make an additional change.
2012-11-06 09:03:03 -05:00
Josh Sherman
8da54b14ea Added home page template
Used the simple marketing template supplied by Twitter Bootstrap
2012-11-06 08:37:13 -05:00
Josh Sherman
e420e3ad72 Moved Gravatar hash function to a dedicated Gravatar class 2012-11-06 08:32:09 -05:00
Josh Sherman
8e7a8f15c7 Fixed issue with pulling multiple keys
Namespace / uppercasing the key wasn't taking into consideration that sometimes array's can be present.
2012-10-23 23:55:57 -04:00
Josh Sherman
99aa78b6fa Built in caching for primary key queries
Selects done against a primary key will automatically cache to Memcached (haven't tried it, but it should fail gracefully) indexed by the model name and the primary key ([NAMESPACE-]MODEL-PKEY). Any updates or deletes against the same primary key will purge the cache automatically. The major caveat here is the case of mass updates which would result in stale data. As it stands the data is being cached for a mere 5 minutes, so this multiple row update scenario would be short lived but ideally, I'll be pushing back the time to live on the cache and/or making it something that's configurable. If you have to do mass updates, you're probably doing them with a cronjob and should just be flushing all of the cache in that scenario (as it would be nearly impossible to detect the affected keys and purge them all).
2012-10-23 23:30:04 -04:00
Josh Sherman
dc0d98906f Added Model and configuration overrides for the column mapping
Also obliterated the getters and setters in the Database class after running some tests against their speed in comparison to getting and setting the variables directly
2012-10-22 10:23:10 -04:00
Josh Sherman
92d7b0adce Got nginx configured and tweaked the fluid variables 2012-10-20 16:12:07 -04:00
Josh Sherman
1e0be63a7b Added gitignore for bootstrap 2012-10-20 15:50:36 -04:00
Josh Sherman
8e0fe3dc3d Added sanity check to class index of backtrace return
Seems there's a scenario within PICKLES that provides a backtrace report that lacks a class name (even though the file being referenced is a class). If no class is set it's simply omitted.
2012-10-15 22:36:03 -04:00
Josh Sherman
4a41a07635 Added namespace/prefix to the caching class
Closes #3 taking the issues down to zero :-O
2012-10-15 21:51:56 -04:00
Josh Sherman
1154a1d901 LESSed up the minification logic 2012-10-14 20:05:03 -04:00
Josh Sherman
b31746b1c2 Added role based default methods
One of @geoffoliver's suggestions, default methods that are exclusive to the user's permission level. Named __default_ROLE(). No more conditionals in the code since you can now isolate the logic
2012-10-14 18:46:29 -04:00
Josh Sherman
8fb7622061 If the module doesn't return anything, pass the return array instead
Now you can set variables in the module itself and have them returned to the template instead of needing to explicitly return the data. Will come in handy in scenarios where you've extended another module and want to retain it's return data. Previously you had to set a variable and then add to that and return it from the child class.
2012-10-14 18:08:27 -04:00
Josh Sherman
3c2c936cee Added fluid variable to the Module class
As a developer you still need to code for it (it's shown at work in the bootstrap) but you can use the variable to toggle fluid and fixed right from the module itself
2012-10-14 17:53:23 -04:00
Josh Sherman
b05a1691f2 Added support for LESS
Dynamic class detects less files, compiles them to CSS then minifies it
2012-10-14 16:33:48 -04:00
Josh Sherman
353e96094b Added less.js as a submodule 2012-10-14 14:26:19 -04:00
Josh Sherman
c72a4b76a3 Dropped PECL files
I never use them, there's a link for the JSON one in the convert class if anyone really needed it. Mongo support's been dropped for a while so there was no need for that one either.
2012-10-14 14:22:28 -04:00
Josh Sherman
a766ced68c Regenerated documentation as a new class was added 2012-10-14 14:02:30 -04:00
Josh Sherman
2795abf531 Added isMobile() function to the Browser class 2012-10-14 14:01:56 -04:00
Josh Sherman
ed52ebe529 Added Browser Utility class
Only 2 methods right now, redirect() and status().
2012-10-14 13:56:59 -04:00
Josh Sherman
553f70fdb8 Fixed issue with setting the template to false
Magic getter was overwriting the value because it was == null. Updated Module to check if the value isset() and if not, try to load from the config or set to false.
2012-10-13 12:04:02 -04:00
Josh Sherman
7660ddc768 Added Google Analytics as a site level configuration variable 2012-10-13 11:07:58 -04:00
Josh Sherman
521deddc44 Added injection of is_deleted when doing a query 2012-10-13 11:02:02 -04:00
Josh Sherman
d76e2e71e9 Implemented created, updated, deleted logic.
Automatically inject the creation, update, and delete timestamps as well as which user performed the action. Rows can now be logically deleted and there are no more named parameters just question mark syntax.
2012-10-13 10:18:07 -04:00
Josh Sherman
91332b059c Added a placeholder about page 2012-10-12 15:35:36 -04:00
Josh Sherman
482f77c10b Set _REQUEST['request'] by default
Should alleviate some redundant isset()s throughout a site's code
2012-10-11 22:50:32 -04:00
Josh Sherman
e05dd7c79e Added check that the table variable is actually set 2012-10-11 21:35:28 -04:00
Josh Sherman
ce61f797f3 Added automatic injection of timestamps 2012-10-11 21:27:22 -04:00
Josh Sherman
a595d85857 Dropped ID variable for Columns
The ID variable was used to map the table's UID so the model could inject it in properly. Added a new variable named columns that is an array of the key columns. Currently contains ID, Created at and Updated at columns. The timestamp columns will soon be injected into the queries and if the value is set to false, will skip it.
2012-10-11 18:56:15 -04:00
Josh Sherman
fb4c8c1a5a Added new class documentation 2012-10-11 18:55:33 -04:00
Josh Sherman
c0afa08026 Updated email in core file, updated docs 2012-10-11 18:39:45 -04:00
Josh Sherman
252ad2fe7b Dropped MongoDB support
There wasn't much to drop as it was never fully integrated. Unfortunately the only things that end up being fully integrated are the things that I actually use. Maybe someday MongoDB, maybe someday.
2012-10-11 17:35:02 -04:00
Josh Sherman
e14e848f77 Gittin' my ignore on 2012-10-11 15:38:42 -04:00