/** * Adds tag checkboxes to form passed as first parameter * 2nd parameter is the actual name of the fields used to add tags * @param HTML_QuickForm * @param string default _tags */ public function addTagsToForm(HTML_QuickForm $form, $fieldname, DB_DataObject $obj) { $tags = DB_DataObject::factory('tag'); $tags->archived = 0; // @todo add this field to tags table $tag_record = DB_DataObject::factory('tag_record'); $tags->joinAdd($tag_record); $tags->whereAdd("tag_record.tagged_table = '" . $obj->__table . "'"); $tags->selectAdd(); $tags->selectAdd('tag.*'); $tags->groupBy('tag.strip'); if ($tags->find()) { while ($tags->fetch()) { $taglist[$tags->id] = $tags->strip; } foreach ($taglist as $id => $strip) { $arr[] = MyQuickForm::createElement('checkbox', $fieldname . '[' . $id . ']', '', $strip); $arr2[] = MyQuickForm::createElement('checkbox', 'exc_' . $fieldname . '[' . $id . ']', '', $strip); } $grp = MyQuickForm::createElement('group', $fieldname, __('Including Tags'), $arr, null, false); $grp2 = MyQuickForm::createElement('group', 'exc_' . $fieldname, __('Excluding Tags'), $arr2, null, false); if ($form->elementExists('__submit__')) { $form->insertElementBefore($grp, '__submit__'); $form->insertElementBefore($grp2, '__submit__'); } else { $form->addElement($grp); $form->addElement($grp2); } } }