Bumuckl.com - development & design since 2005Bumuckl is my name. And I am a tech addict. And a passionate geek. And an enthusiastic coder. Now and again a hacker. Sometimes a designer. I am devoted to Lua. I love Apple and Mac OS. I used to be active in the PSP Hacking Scene. Now I waste my time with webdevelopment. And maybe more. Actually I dabble into everything. But just call me coder.
Photon Gallery is a gallery and photomanagement plugin for Croogo CMS, originally based on Edinei L. Cipriani's gallery plugin. However it offers much more features and capabilities - it is heavily extended. Photon's administration is AJAX-powered and integrates flawlessly into your existing Croogo install. A new Tab is added to your nodes which allows you to upload pictures via Ajax - those pictures are directly related to that specific node. Doing so, Photon features four different preconfigured ways of displaying your photos: either in an Image Replacement gallery, in a Slider gallery, in JQuery Popeye gallery or just as single images. A seperate set of administration-views allows you to have full control over all your gallery stuff.
Once again, to point out the most special feature, the so called "NodeAlbum"-feature: For each node a specific album is automatically created. Thus, you can upload photos directly when creating nodes!
Installation
Install this plugin via the extension management of Croogo or upload the folder "photon" to /app/plugins
Activate the plugin: the tables will be created and initial settings be saved
Add new albums & upload photos
Enjoy (hopefully) :)
You can access the gallery via yoururl.tld/gallery. If you want to display photos or galleries inside your nodes, just put code like this at the desired location in your node:
[Gallery:slug]
[Popeye:slug]
[Slider:slug]
[Image:id]
When running your Croogo with markdown, please make sure you first activate markdown, and photon afterwards. Otherwise your galleries wont be rendered.
Thanks to...
Big thanks to "mherb" (https://github.com/mherb) for fixing tons of bugs and adding nice features such as single picture management!
TheBigTrunk is a "plug and play" filebrowser based on my MVC-Structure of the kirby PHP Toolkit. It is easily customizable and provides support for custom themes. Just upload the whole webapplication to your server, adapt the configuration-file according to your needs and there you go.
Features
Works out of the box ("Plug and Play")
Fully and easily customizable
Custom and multiple theme-support
built-in JSON-API for AJAX-Requests and Cross-Site-Requests
totally lightweight: Just a filebrowser, nothing more
How does it work?
Somewhere on your server you should set up a folder that later contains all of your files and directories you want to be rendered by TheBigTrunk. By default, any contents of the folder "repos" will be rendered by the filebrowser. You can change that to any directory you want by customizing the "config.php"-file located inside the folder "includes".
Using the API
Using the API is pretty much straightforward as well: In order to request JSON-Data, just add the extension .json to the requested URL; and you will receive all data in a huge JSON-Array.
Demo
Default version Live Demo: http://files.bumuckl.com
API Demo: On the bottom-right of this website, just click on "Switch to files" - anything you can see there is powered by AJAX
Codebase is a code/math repository and a fast collaboration tool for script sharing, math sharing and developing purposes. It is released under the GPL License which means that you are allowed to make any changes and you may use it for yourself, but in case you want to publish your modification, you need to release it again under the GPL License. You can download Codebase below.
What exactly is "Codebase"?
"Codebase" is a fast collaboration tool for scripts and codes. It is written in PHP and uses a MySQL database. At the beginning it was meant to be an easier-to-use and easier-to-install alternative to the famous pastebin, but its emphasis changed a little bit. "Codebase" offers more of an integration to social networks, auto-generates a Google-sitemap for SEO and also includes math tools.
**Where can I try it? Is there a demo? **
A while ago I was hosting Codebase at http://www.parabela.org. Due to spamming I decided to stop providing that service.
How does it work in general?
You enter your code or mathematical expression in the textarea, fill out some further information and press the "+ Add this ..." button. Your submission will now be encrypted and stored in the database. You will be given a special URL that you have to use in order to view your submission again (you can share it, too).
In order to install Parabella Codebase or any older versions on your webspace, just load everything up. Then make sure to create a new MySQL database, if you haven't done so yet. At last, you have to edit the configuration file. There you specify the name of your Codebase, the MySQL database/user/password and some other values.
You can edit the theme and the FAQ, but also the "core" of your Codebase version if you've got some further knowlege in PHP-programming.
Hi fellow bakers,
this is meant to be a tiny tutorial on how to pass data from your own plugin to an existing admin view, e.g. your plugin adds an additional tab to the Users edit view, and you want to provide the data displayed in that tab.
I've been searching for the answer on how to achieve this myself for months, and I couldn't believe how easy it actually was. I'm gonna show you how to do that right now.
What you need
You need an element that shall serve as an admin tab, and you need to tell Croogo that it indeed is. I added a new tab to the User admin add and User admin edit views inside the plugins bootstrap file.
Everything you want to be displayed inside that tab. For testing purposes I think the following piece of cake, er code is good enough:
data); ?>
This will display all data that is available to be displayed - really handy in combination with the form helper!
Now that's just the preparation, now we're going into it. We need a behavior, and we need to bind that behavior to an existing model, which is done inside the plugin bootstrap as well:
Here you can see how you can bind a behavior, which is part of your plugin, to an existing model provided by Croogo. But that's by far not all: As the third argument an array containing a relationship (this is not limited to just one association, you can set up as many as you want to) is supplied. This array is passed to the behavior and actually serves as an array containing custom data for your personal needs inside the behavior. This also means, that until now, nothing would happen. There is no functionality implemented in your behavior that could handle this tiny array containing the definition of a relationship. Luckily, we can do that ;)
And it might look like this:
<?php class ExtendedUserBehavior extends ModelBehavior {
function setup(&$model, $config = array()) {
//Merging the specified (or not specified) config array with an array containing default values
$config = Set::merge(array(
'relationship' => false,
'joins' => false,
'enabled' => true,
), $config);
//Each Model($model->alias) gets its own key containing the specific config array
$this->settings[$model->alias] = $config;
//Now let's setup any desired relationships
$this->_setupRelationships($model, $config);
}
function _setupRelationships(&$model, $config = array()) {
if (!empty($this->settings[$model->alias]['relationship'])) {
//Here we add the specified relationship to our model ON THE FLY
$model->bindModel($config['relationship'], false);
//To make sure we really get all the desired data, we need to set the recursive level!
//This really drove me mad, don't forget to adapt this according to your needs
$model->recursive = 2;
}
}
function beforeFind(&$model, $query) {
//Needs to be done!
return $query;
}
function afterFind(&$model, $results, $primary) {
return $results;
//Here we just merge all available fields with the ones the user already has filled out, and return that as a new array
}
function beforeSave(&$model, $query) {
//Since save() wont save any associated data, we got to do this on our own
$temp_data = $model->data['UsersExtendedField'];
$model->UsersExtended->saveAll($temp_data);
return $query;
} ?>
What this behavior actually does is pretty simple. It fetches the array 'relationships' out of the configuration array specified in the plugin bootstrap and binds those relationships on the fly to the model. Easy, huh?!