function processRequest() { $this->assign('__action', 'livesearch'); $this->assign('searchText', $this->searchtext); $searchin = $this->expand ? array($this->expandTable) : $this->getGlobalOption('searchInTables', 'frontendhome'); if (!is_array($searchin) || count($searchin) == 0) { return array('message' => __('No search domain')); } $out = array(); foreach ($searchin as $table) { $obj = M_Office_Util::doForTable($table); if (method_exists($obj, 'livesearch')) { $obj->livesearch($this->searchtext); $out[$table] = $obj; } } foreach ($out as $table => $obj) { $cnt = 0; foreach ($obj as $rec) { $result = $rec->liveSearchText(); if (!is_array($result)) { $result = array('text' => $result); } $ret[$table][] = array_merge($result, array('url' => M_Office_Util::doURL($rec, $table, array(), array('livesearch', 'format')))); $cnt++; if ($cnt > 10) { break; } } if ($cnt == 0) { $ret[$table] = array(); } } $this->assign('output', $this->format($ret, $_GET['format'])); }
public function getLinkFromTableItem($linkTab, $linkField, $field) { $linkDo = DB_DataObject::factory($linkTab); if (PEAR::isError($linkDo)) { throw new Exception($linkTab . ' is not defined'); } $info = M_Office_Util::getModuleInfo($linkTab); if (!$info && !$linkDo->isNtable()) { return; } if ($nfield = $linkDo->isNtable()) { $nFields = $linkDo->links(); $ntableArray = explode(':', $nFields[$nfield]); $nDo = DB_DataObject::factory($ntableArray[0]); $linkDo->{$linkField} = $this->do->{$field}; $nDo->joinAdd($linkDo); $nbLinkedRecords = $nDo->count(); $parameters = array('module' => $nDo->tableName(), 'filternField' => $linkField, 'filternTable' => $linkTab, 'filternValue' => $this->do->{$field}); $removed = array('module', 'filternValue', 'filternField', 'record', '__record_ref'); $link = M_Office_Util::getQueryParams($parameters, $removed); $add = false; $tableName = __("modules.{$ntableArray['0']}.frontname") . ' <small>(n-n)</small>'; } else { $linkDo->{$linkField} = $this->do->{$field}; $nbLinkedRecords = $linkDo->count(); $parameters = array('module' => $linkTab, 'filterField' => $linkField, 'filterValue' => $this->do->{$field}); $removed = array('module', 'filterValue', 'filterField', 'record', '__record_ref'); if ($nbLinkedRecords == 1) { $keys = $linkDo->keys(); $key = $keys[0]; $linkDo->find(true); $link = M_Office_Util::doURL($linkDo, $linkTab, array('filterField' => $linkField, 'filterValue' => $this->do->{$field})); } else { $link = M_Office_Util::getQueryParams($parameters, $removed); } $tableName = __("modules.{$linkTab}.frontname"); $add = $this->getGlobalOption('add', 'showtable', $linkTab) ? true : false; } return array('table' => $linkTab, 'linkField' => $linkField, 'field' => $field, 'link' => $link, 'nb' => $nbLinkedRecords, 'tablename' => $tableName, 'add' => $add); }
<?php if ($edit) { ?> <td> <a href="<?php echo M_Office_Util::doURL($do, $_REQUEST['module']); ?> "><i class="icon-pencil"></i></a> </td> <?php }
public function filterFields(&$do) { if (isset($_REQUEST['filterField']) && isset($_REQUEST['filterValue'])) { if (is_array($_REQUEST['filterValue'])) { $db = $do->getDatabaseConnection(); $do->whereAdd($db->quoteIdentifier($do->tableName()) . '.' . $db->quoteIdentifier($_REQUEST['filterField']) . ' IN (' . $do->sqlin($_REQUEST['filterValue']) . ')'); } else { $do->{$_REQUEST['filterField']} = $_REQUEST['filterValue']; } $filterString = __('%s for %s', array($do->tableName(), $_REQUEST['filterField'])) . ' = '; $links = $do->links(); if (isset($links[$_REQUEST['filterField']])) { list($lTab, $lFld) = explode(':', $links[$_REQUEST['filterField']]); if ($lTab) { $linkedDo = DB_DataObject::factory($lTab); $linkedDo->get($lFld, $_REQUEST['filterValue']); $filterString .= '<a href="' . M_Office_Util::doURL($linkedDo, $lTab, array(), array('filterValue', 'filterField')) . '">' . MyFB::getDataObjectString($linkedDo) . ' (' . $_REQUEST['filterValue'] . ')</a>'; } } else { $filterString .= $_REQUEST['filterValue'] . '<br/>'; } $this->append('subActions', $filterString); } if (isset($_REQUEST['filternTable']) && isset($_REQUEST['filternField']) && isset($_REQUEST['filternValue'])) { $joinDo = DB_DataObject::factory($_REQUEST['filternTable']); $joinDo->{$_REQUEST['filternField']} = $_REQUEST['filternValue']; $do->joinAdd($joinDo); $joinDOlinks = $joinDo->links(); $targetTableArray = explode(':', $joinDOlinks[$_REQUEST['filternField']]); $targetDO = DB_DataObject::factory($targetTableArray[0]); $targetDO->get($_REQUEST['filternValue']); if (method_exists($targetDO, '__toString')) { $targetName = $targetDO->__toString(); } else { $targetName = $targetDO->pk(); } $filterString = __('%s linked to %s', array($do->tableName(), $targetTableArray[0])) . ' ' . $targetName; $this->append('subActions', $filterString); } if (isset($_REQUEST['ids']) && is_array($_REQUEST['ids'])) { $db = $do->getDatabaseConnection(); $ids = array(); foreach ($_REQUEST['ids'] as $id) { $ids[] = $db->quote($id); } $do->whereAdd($do->tableName() . '.id IN(' . implode(',', $ids) . ')'); } }