本文整理汇总了PHP中Tinebase_Model_Filter_FilterGroup::getModelName方法的典型用法代码示例。如果您正苦于以下问题:PHP Tinebase_Model_Filter_FilterGroup::getModelName方法的具体用法?PHP Tinebase_Model_Filter_FilterGroup::getModelName怎么用?PHP Tinebase_Model_Filter_FilterGroup::getModelName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tinebase_Model_Filter_FilterGroup
的用法示例。
在下文中一共展示了Tinebase_Model_Filter_FilterGroup::getModelName方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _getRecords
/**
* get records and resolve fields
*
* @return Tinebase_Record_RecordSet
*/
protected function _getRecords()
{
$pagination = !empty($this->_options['sortInfo']) ? new Tinebase_Model_Pagination($this->_options['sortInfo']) : new Tinebase_Model_Pagination();
if ($this->_recordIds === NULL) {
// need to fetch record ids first because filtered fields can change during iteration step
if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Getting record ids using filter: ' . print_r($this->_filter->toArray(), TRUE) . ' and pagination: ' . print_r($pagination->toArray(), true));
}
$this->_recordIds = $this->_controller->search($this->_filter, $pagination, FALSE, TRUE, $this->_options['searchAction']);
$this->_totalCount = count($this->_recordIds);
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Found ' . $this->_totalCount . ' total records to process.');
}
if (empty($this->_recordIds)) {
return new Tinebase_Record_RecordSet($this->_filter->getModelName());
}
}
// get records by filter (ensure acl)
$filterClassname = get_class($this->_filter);
$recordIdsForIteration = array_splice($this->_recordIds, 0, $this->_options['limit']);
$idFilter = new $filterClassname(array(array('field' => isset($this->_options['idProperty']) || array_key_exists('idProperty', $this->_options) ? $this->_options['idProperty'] : 'id', 'operator' => 'in', 'value' => $recordIdsForIteration)));
$records = $this->_controller->search($idFilter, $pagination, $this->_options['getRelations']);
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Got ' . count($records) . ' for next iteration.');
}
return $records;
}
示例2: factory
/**
* get export object for given filter and format
*
* @param Tinebase_Model_Filter_FilterGroup $_filter
* @param string|array $_options format (as string) or export definition id (array)
* @param Tinebase_Controller_Record_Interface $_controller (optional)
* @param array $_additionalOptions (optional)
* @return Tinebase_Export_Abstract
* @throws Tinebase_Exception_NotFound
*/
public static function factory($_filter, $_options, $_controller = NULL, $_additionalOptions = array())
{
if (!is_array($_options)) {
$_options = array('format' => $_options);
}
if (array_key_exists('definitionId', $_options)) {
$definition = Tinebase_ImportExportDefinition::getInstance()->get($_options['definitionId']);
$exportClass = $definition->plugin;
// export plugin needs the definition id
$_additionalOptions = array_merge($_additionalOptions, $_options);
} else {
if (array_key_exists('format', $_options) && !empty($_options['format'])) {
$appName = $_filter->getApplicationName();
$model = $_filter->getModelName();
$exportClass = $appName . '_Export_' . ucfirst(strtolower($_options['format']));
if (!@class_exists($exportClass)) {
// check for model specific export class
list($a, $b, $modelPart) = explode('_', $model);
$exportClass = $exportClass . '_' . $modelPart;
if (!@class_exists($exportClass)) {
throw new Tinebase_Exception_NotFound('No ' . $_options['format'] . ' export class found for ' . $appName . ' / ' . $model);
}
}
} else {
throw new Tinebase_Exception_InvalidArgument('Export definition ID or format required in options');
}
}
if (preg_match('/pdf/i', $exportClass)) {
// legacy
$result = new $exportClass($_additionalOptions);
} else {
$result = new $exportClass($_filter, $_controller, $_additionalOptions);
}
return $result;
}
示例3: factory
/**
* get export object for given filter and format
*
* @param Tinebase_Model_Filter_FilterGroup $_filter
* @param string|array $_options format (as string) or export definition id (array)
* @param Tinebase_Controller_Record_Interface $_controller (optional)
* @param array $_additionalOptions (optional)
* @return Tinebase_Export_Abstract
* @throws Tinebase_Exception_NotFound
*/
public static function factory($_filter, $_options, $_controller = NULL, $_additionalOptions = array())
{
if (!is_array($_options)) {
$_options = array('format' => $_options);
}
// always merge options? this needs to be refactored!
$_additionalOptions = array_merge($_additionalOptions, $_options);
if (isset($_options['definitionId']) || array_key_exists('definitionId', $_options)) {
$definition = Tinebase_ImportExportDefinition::getInstance()->get($_options['definitionId']);
$exportClass = $definition->plugin;
} else {
if ((isset($_options['format']) || array_key_exists('format', $_options)) && !empty($_options['format'])) {
$appName = $_filter->getApplicationName();
$model = $_filter->getModelName();
$exportClass = $appName . '_Export_' . ucfirst(strtolower($_options['format']));
// start output buffering to catch errors, append them to log and exception
ob_start();
if (!class_exists($exportClass)) {
$ob = ob_get_length() > 0 ? ob_get_clean() : '';
// check for model specific export class
list($a, $b, $modelPart) = explode('_', $model);
$exportClass2 = $exportClass . '_' . $modelPart;
if (Tinebase_Core::isLogLevel(Zend_Log::NOTICE)) {
Tinebase_Core::getLogger()->log(__METHOD__ . '::' . __LINE__ . ' Could not find class ' . $exportClass . ' trying ' . $exportClass2 . '. Output Buffer: ' . PHP_EOL . $ob, Zend_Log::NOTICE);
}
if (!class_exists($exportClass2)) {
$ob = ob_get_length() > 0 ? ob_get_clean() : NULL;
ob_end_flush();
throw new Tinebase_Exception_NotFound('No ' . $_options['format'] . ' export class found for ' . $appName . ' / ' . $model . '. ClassName: ' . $exportClass2 . ($ob ? 'Output: ' . $ob : ''));
} else {
$exportClass = $exportClass2;
}
}
ob_end_flush();
} else {
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Export options: ' . print_r($_options, TRUE));
}
throw new Tinebase_Exception_InvalidArgument('Export definition ID or format required in options');
}
}
if (preg_match('/pdf/i', $exportClass)) {
// legacy
$result = new $exportClass($_additionalOptions);
} else {
$result = new $exportClass($_filter, $_controller, $_additionalOptions);
}
return $result;
}
示例4: checkFilterACL
/**
* Removes containers where current user has no access to
*
* @param Tinebase_Model_Filter_FilterGroup $_filter
* @param string $_action get|update
*/
public function checkFilterACL(Tinebase_Model_Filter_FilterGroup $_filter, $_action = 'get')
{
if (!$this->_doContainerACLChecks) {
if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Container ACL disabled for ' . $_filter->getModelName() . '.');
}
return TRUE;
}
$aclFilters = $_filter->getAclFilters();
if (!$aclFilters) {
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Force a standard containerFilter (specialNode = all) as ACL filter.');
}
$containerFilter = $_filter->createFilter('container_id', 'specialNode', 'all', array('applicationName' => $_filter->getApplicationName()));
$_filter->addFilter($containerFilter);
}
if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Setting filter grants for action ' . $_action);
}
switch ($_action) {
case 'get':
$_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_READ, Tinebase_Model_Grants::GRANT_ADMIN));
break;
case 'update':
$_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_EDIT, Tinebase_Model_Grants::GRANT_ADMIN));
break;
case 'export':
$_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_EXPORT, Tinebase_Model_Grants::GRANT_ADMIN));
break;
case 'sync':
$_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_SYNC, Tinebase_Model_Grants::GRANT_ADMIN));
break;
default:
throw new Tinebase_Exception_UnexpectedValue('Unknown action: ' . $_action);
}
}
示例5: detachTagsFromMultipleRecords
/**
* detach tag from multiple records identified by a filter
*
* @param Tinebase_Model_Filter_FilterGroup $_filter
* @param mixed $_tag string|array|Tinebase_Model_Tag with existing and non-existing tag
* @return void
*
* @todo maybe this could be done in a more generic way (in Tinebase_Controller_Record_Abstract)
*/
public function detachTagsFromMultipleRecords($_filter, $_tag)
{
list($appName, $i, $modelName) = explode('_', $_filter->getModelName());
$appId = Tinebase_Application::getInstance()->getApplicationByName($appName)->getId();
$controller = Tinebase_Core::getApplicationInstance($appName, $modelName);
// only get records user has update rights to
$controller->checkFilterACL($_filter, 'update');
$recordIds = $controller->search($_filter, NULL, FALSE, TRUE);
foreach ((array) $_tag as $dirtyTagId) {
try {
$transactionId = Tinebase_TransactionManager::getInstance()->startTransaction($this->_db);
$this->_detachSingleTag($recordIds, $dirtyTagId, $appId, $controller);
Tinebase_TransactionManager::getInstance()->commitTransaction($transactionId);
} catch (Exception $e) {
Tinebase_TransactionManager::getInstance()->rollBack();
Tinebase_Core::getLogger()->err(__METHOD__ . '::' . __LINE__ . ' ' . print_r($e->getMessage(), true));
throw $e;
}
}
}
示例6: __construct
/**
* the constructor
*
* @param Tinebase_Model_Filter_FilterGroup $_filter
* @param Tinebase_Controller_Record_Interface $_controller (optional)
* @param array $_additionalOptions (optional) additional options
*/
public function __construct(Tinebase_Model_Filter_FilterGroup $_filter, Tinebase_Controller_Record_Interface $_controller = NULL, $_additionalOptions = array())
{
// init member vars
$this->_modelName = $_filter->getModelName();
$this->_filter = $_filter;
$this->_controller = $_controller !== NULL ? $_controller : Tinebase_Core::getApplicationInstance($this->_applicationName, $this->_modelName);
$this->_translate = Tinebase_Translation::getTranslation($this->_applicationName);
$this->_config = $this->_getExportConfig($_additionalOptions);
$this->_locale = Tinebase_Core::get(Tinebase_Core::LOCALE);
}
示例7: __construct
/**
* the constructor
*
* @param Tinebase_Model_Filter_FilterGroup $_filter
* @param Tinebase_Controller_Record_Interface $_controller (optional)
* @param array $_additionalOptions (optional) additional options
*/
public function __construct(Tinebase_Model_Filter_FilterGroup $_filter, Tinebase_Controller_Record_Interface $_controller = NULL, $_additionalOptions = array())
{
$this->_modelName = $_filter->getModelName();
$this->_filter = $_filter;
$this->_controller = $_controller !== NULL ? $_controller : Tinebase_Core::getApplicationInstance($this->_applicationName, $this->_modelName);
$this->_translate = Tinebase_Translation::getTranslation($this->_applicationName);
$this->_config = $this->_getExportConfig($_additionalOptions);
$this->_locale = Tinebase_Core::get(Tinebase_Core::LOCALE);
if (isset($_additionalOptions['sortInfo'])) {
if (isset($_additionalOptions['sortInfo']['field'])) {
$this->_sortInfo['sort'] = $_additionalOptions['sortInfo']['field'];
$this->_sortInfo['dir'] = isset($_additionalOptions['sortInfo']['direction']) ? $_additionalOptions['sortInfo']['direction'] : 'ASC';
} else {
$this->_sortInfo = $_additionalOptions['sortInfo'];
}
}
}
示例8: detachTagsFromMultipleRecords
/**
* detach tag from multiple records identified by a filter
*
* @param Tinebase_Model_Filter_FilterGroup $_filter
* @param mixed $_tag string|array|Tinebase_Model_Tag with existing and non-existing tag
* @return void
*/
public function detachTagsFromMultipleRecords($_filter, $_tag)
{
list($appName, $i, $modelName) = explode('_', $_filter->getModelName());
$appId = Tinebase_Application::getInstance()->getApplicationByName($appName)->getId();
$controller = Tinebase_Core::getApplicationInstance($appName, $modelName);
if (!is_array($_tag)) {
$_tag = array($_tag);
}
foreach ($_tag as $dirtyTagId) {
$tag = $this->getTagsById($dirtyTagId, Tinebase_Model_TagRight::USE_RIGHT)->getFirstRecord();
if (empty($tag)) {
Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__ . ' No use right for tag, detaching not possible.');
return;
}
$tagId = $tag->getId();
// only get records user has update rights to
$controller->checkFilterACL($_filter, 'update');
$recordIds = $controller->search($_filter, NULL, FALSE, TRUE);
$recordIdList = '\'' . implode('\',\'', $recordIds) . '\'';
$attachedIds = array();
$select = $this->_db->select()->from(array('tagging' => SQL_TABLE_PREFIX . 'tagging'), 'record_id')->where($this->_db->quoteIdentifier('application_id') . ' = ?', $appId)->where($this->_db->quoteIdentifier('tag_id') . ' = ? ', $tagId)->where($this->_db->quoteIdentifier('record_id') . ' IN ( ' . $recordIdList . ' ) ');
foreach ($this->_db->fetchAssoc($select) as $tagArray) {
$attachedIds[] = $tagArray['record_id'];
}
if (empty($attachedIds)) {
Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__ . ' There are no records we could detach the tag(s) from');
return;
}
Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . ' Detaching 1 Tag from ' . count($attachedIds) . ' records.');
foreach ($attachedIds as $recordId) {
$this->_db->delete(SQL_TABLE_PREFIX . 'tagging', 'tag_id=\'' . $tagId . '\' AND record_id=\'' . $recordId . '\' AND application_id=\'' . $appId . '\'');
}
$controller->concurrencyManagementAndModlogMultiple($attachedIds, array('tags' => array($tag->toArray())), array('tags' => array()));
$this->_deleteOccurrence($tagId, count($attachedIds));
}
}