public function addAction()
 {
     $category = new MetadataBrowserCategory();
     $elementID = $this->_getParam('id');
     $element = $this->getTable('Element')->find($elementID);
     $category->element_id = $element->id;
     $category->display_name = $element->name;
     $category->slug = metadata_browser_generate_slug($element->name);
     $this->_processCategoryForm($category, 'add');
 }
function metadata_browser_generate_element_select()
{
    /* Used by "browse" view in admin views directory 
     * 
     * this function awkwardly reads the "ElementSet" and 
     * element tables in order to display all possible
     * browsing categories based on all available elements
     * including those that may been added to the set of 
     * available elements since the the initial installation of 
     * the plugin.
     * 
     */
    $db = get_db();
    $element_sets = $db->getTable('ElementSet')->findall();
    // alternate query to sort element element sets
    $setlist = "";
    foreach ($element_sets as $set) {
        // how do you do these queries?
        $setelements = $db->getTable('Element')->findBySet($set->name);
        foreach ($setelements as $element) {
            // get a category object if one exits with the element id in question
            $category = $db->getTable('MetadataBrowserCategory')->findByElementID($element->id);
            $setlist .= "<tr>";
            if ($category) {
                $setlist .= "<td>" . $category->display_name . "</td>";
                $setlist .= "<td>" . $category->slug . "</td>";
                $setlist .= "<td>" . $set->name . "</td>";
                $setlist .= "<td>" . metadata_browser_active_checkbox($category->id) . "</td>";
                $setlist .= "<td>[<a href='" . html_escape(uri('metadata-browser/index/show/' . $category->element_id)) . "'>View Assigned Values</a>]</td>";
                $setlist .= "<td><a class='edit' href='" . html_escape(uri("metadata-browser/index/edit/id/" . $category->id)) . "'>Edit</a></td>";
            } else {
                $setlist .= "<td>" . $element->name . "</td>";
                $setlist .= "<td>" . metadata_browser_generate_slug($element->name) . "</td>";
                $setlist .= "<td>" . $set->name . "</td>";
                $setlist .= "<td><a class='add' href='" . html_escape(uri("metadata-browser/index/add/id/" . $element->id)) . "'>Activate</a></td>";
                $setlist .= "<td>[<a href='" . html_escape(uri('metadata-browser/index/show/' . $element->id)) . "'>View Assigned Values</a>]</td>";
                $setlist .= "<td></td>";
            }
            $setlist .= "</tr>";
        }
    }
    return $setlist;
}