I have decided to keep all iLance specific items in this catagory. Tidbits, realizations and information is available here, feel free to comment and ask questions.
If you are like me, you like to put your css changes in a file. That's my preference anyway. However I like to work with in the system as much as possible so instead of just dropping a <link> tag in my template, I am using the style_compute api hook.
Over a period of years I have migrated from developing iLance plugins with the normal XML plugin structure. For a look at iLance plugins read Your First iLance Plugin. It gives a nice intro into plugins and the manner in which they can be used to customize the way iLance works and renders your material.
Like everyone else I used to plop the php into the tags in the plugin xml file. The thing is, I use Netbeans to do all of my work. That IDE has a nice PHP implementation, but when developing your plugin in an XML file, Netbeans looses its ability to render the nice visual differences and indicators which are based on PHP rules, functions and included libraries.
The iLance Auction Platform is an extensive system designed to provide you with a professional level competition system to be hosted on your web server. Well, you already know this because you are reading this. AND – if you are reading this you are wondering : “How do I make changes and customize this system to suit my Web site and MY NEEDS??”.
iLance Pseudo-MVC Structure
iLance is a “Many Entry Point” application or platform. There are a number of files that take care of the ‘controller’ logic in the root directory, i.e. buying.php, main.php, etc. The logic in these is files is not delivered via a “class method” structure, where each piece of functionality is separated nicely into a method of the controlling class. The situation specific logic is perform via if statements in each of the files.
The “Model” like processing is perform via several class objects which are by default contained in the /functions/api directory with the file name class.class_name.inc.php where class_name exactly matches the class name as it appears in the file. i.e.
In auction expiry (class.auction_expiry.inc.php)
For the specific circumstances:
- An auction is expired.
- Is service auction
- The auction has been identified as having escrow associated with it.
- That escrow transaction is marked completed.
Then the auction status will be moved from 'expired' to 'finished'.
This is a quicky!
When a user is in there MyCP and they cancel a listing, it goes into the Delisited Tab. It cannot be reopened. The Tab serves as a record of items delisted by the Admin or the user (owner).
This differs from a the Ended tab ($ilance->GPC['sub'] == 'exprired') loads all projects where the status is expired. Upon the execution of each cron, the auction_expiry class is loaded and it moves all due open listings to expired, and then all expired listings to finished.
I think maybe finished items, should probably get their own tab, or be moved to the archive automatically.