Esempio n. 1
0
 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']));
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
<?php

if ($edit) {
    ?>
  <td>
    <a href="<?php 
    echo M_Office_Util::doURL($do, $_REQUEST['module']);
    ?>
"><i class="icon-pencil"></i></a>
  </td>
<?php 
}
Esempio n. 4
0
 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) . ')');
     }
 }