/** * @see sfValidatorBase */ protected function doClean($value) { if (preg_match('#^\\d{4}-\\d{2}-\\d{2}$#', Dateable::convertForDb($value))) { $clean = Dateable::convertForDb($value); } else { throw new sfValidatorError($this, 'invalid'); } return $clean; }
static function getDisplayName($ref) { if ($ref['name']) { $display = $ref['name']; } else { $display = $ref['source']; } if ($ref['publication_date']) { $display .= ', ' . Dateable::convertForDisplay($ref['publication_date']); } if ($ref['source_detail']) { $display .= ' (' . $ref['source_detail'] . ')'; } return $display; }
static function convertValueForDisplay($value, $field, $excerpt = 40) { if (is_null($value)) { return 'NULL'; } if (!($mod = self::loadModification($field))) { return $value; } $table = Doctrine::getTable($mod['object_model']); $columns = $table->getColumns(); if ($mod['object_model'] == 'Entity') { if (!array_key_exists($field['field_name'], $columns)) { if ($extensionName = EntityTable::getExtensionNameByFieldName($field['field_name'])) { $table = Doctrine::getTable($extensionName); } } } elseif ($mod['object_model'] == 'Relationship') { if (!array_key_exists($field['field_name'], $columns)) { $table = Doctrine::getTable(RelationshipTable::getCategoryNameByFieldName($field['field_name'])); } } if ($alias = self::getFieldNameAlias($field)) { $class = $table->getRelation($alias)->getClass(); if ($record = Doctrine::getTable($class)->find($value, Doctrine::HYDRATE_ARRAY)) { if ($class == 'Entity') { sfLoader::loadHelpers('Ls'); return entity_link($record, null); } elseif ($class == 'sfGuardUser') { sfLoader::loadHelpers('Ls'); return user_link($record); } return $record; } } if (in_array($field['field_name'], array('start_date', 'end_date'))) { return Dateable::convertForDisplay($value); } $def = $table->getColumnDefinition($field['field_name']); switch ($def['type']) { case 'integer': return (double) $value; break; case 'boolean': return $value ? 'yes' : 'no'; break; } if ($excerpt) { $short = LsString::excerpt($value, $excerpt); return $short == $value ? $value : '<span title="' . strip_tags($value) . '">' . $short . '</span>'; } return $value; }
<?php $data[ucfirst($desc1)] = entity_link($relationship['Entity1']); ?> <?php } ?> <?php if ($desc2 = $relationship['description2']) { ?> <?php $data[' ' . ucfirst($desc2)] = entity_link($relationship['Entity2']); ?> <?php } } ?> <?php $data = array_merge($data, array('Start date' => Dateable::convertForDisplay($relationship['start_date']), 'End date' => Dateable::convertForDisplay($relationship['end_date']), 'Is current' => LsLogic::nullOrBoolean($relationship['is_current']), 'Notes' => $relationship['notes'] ? nl2br($relationship['notes']) : null)); ?> <?php include_partial('global/section', array('title' => 'Details')); ?> <div class="padded"> <?php include_partial('global/datatable', array('data' => $data)); ?> </div>
<?php if ($str = Dateable::getRecordDatespan($relationship, false)) { ?> (<?php echo $str; ?> ) <?php }
public function setEndDate($str) { $this->_set('end_date', Dateable::convertForDb($str)); }
<tr class="text_small hover<?php echo $shaded ? ' shaded' : ''; ?> "> <td><?php echo Dateable::convertForDisplay($object['start_date']); ?> </td> <td><?php echo LsNumber::makeReadable($object['amount'], '$'); ?> </td> <td> <?php $agencies = array(); ?> <?php foreach (LobbyFilingTable::getAgenciesQuery($object)->setHydrationMode(Doctrine::HYDRATE_ARRAY)->execute() as $agency) { ?> <?php $agencies[] = entity_link($agency, null); ?> <?php } ?> <?php echo implode('<br /> ', $agencies); ?> </td> <td>
public function executeAddBulk($request) { $this->checkEntity($request, false, false); $this->reference_form = new ReferenceForm(); $this->reference_form->setSelectObject($this->entity); $this->add_bulk_form = new AddBulkForm(); //get possible default categories $this->categories = LsDoctrineQuery::create()->select('c.name, c.name')->from('RelationshipCategory c')->orderBy('c.id')->fetchAll(PDO::FETCH_KEY_PAIR); array_unshift($this->categories, ''); if ($request->isMethod('post') && in_array($request->getParameter('commit'), array('Begin', 'Continue'))) { if ($request->hasParameter('ref_id')) { $this->ref_id = $request->getParameter('ref_id'); } else { $refParams = $request->getParameter('reference'); $this->reference_form->bind($refParams); $restOfParams = (array) $request->getParameterHolder(); $restOfParams = array_shift($restOfParams); $this->add_bulk_form->bind($restOfParams, $request->getFiles()); if (!$this->reference_form->isValid() || !$this->add_bulk_form->isValid()) { return; } if ($this->ref_id = $refParams['existing_source']) { $ref = Doctrine::getTable('Reference')->find($this->ref_id); $url = $ref->source; } else { $ref = new Reference(); $ref->object_model = 'Entity'; $ref->object_id = $this->entity->id; $ref->source = $refParams['source']; $ref->name = $refParams['name']; $ref->source_detail = $refParams['source_detail']; $ref->publication_date = $refParams['publication_date']; $ref->save(); } $this->ref_id = $ref->id; $this->reference = $ref; } $verify_method = $request->getParameter('verify_method'); if ($this->add_method = $request->getParameter('add_method')) { if ($this->add_method == 'scrape') { //scrape ref url //set names to confirm $browser = new sfWebBrowser(); $entity_types = $request->getParameter('entity_types'); //FIND NAMES AT URL USING COMBO OF OPENCALAIS & LS CUSTOM HTML PARSING if (!$browser->get($ref->source)->responseIsError()) { $text = $browser->getResponseText(); $this->names = LsTextAnalysis::getHtmlEntityNames($text, $entity_types); $text = LsHtml::findParagraphs($text); $this->text = preg_replace('/<[^b][^>]*>/is', " ", $text); $this->confirm_names = true; return; } else { $request->setError('csv', 'problems finding names at that url'); } } else { if ($this->add_method == 'upload') { $file = $this->add_bulk_form->getValue('file'); $filename = 'uploaded_' . sha1($file->getOriginalName()); $extension = $file->getExtension($file->getOriginalExtension()); $filePath = sfConfig::get('sf_temp_dir') . '/' . $filename . $extension; $file->save($filePath); if ($filePath) { if ($spreadsheetArr = LsSpreadsheet::parse($filePath)) { $names = $spreadsheetArr['rows']; if (!in_array('name', $spreadsheetArr['headers'])) { $request->setError('file', 'The file you uploaded could not be parsed properly because there is no "name" column.'); return; } if (in_array('summary', $spreadsheetArr['headers'])) { foreach ($names as &$name) { $name['summary'] = str_replace(array('?', "'"), "'", $name['summary']); $name['summary'] = str_replace(array('?', '?', '"'), '"', $name['summary']); if (isset($name['title'])) { $name['description1'] = $name['title']; } } unset($name); } } else { $request->setError('file', 'The file you uploaded could not be parsed properly.'); return; } } else { $request->setError('file', 'You need to upload a file.'); return; } } else { if ($this->add_method == 'summary') { //parse summary for names $this->text = $this->entity->summary; $entity_types = $request->getParameter('entity_types'); $this->names = LsTextAnalysis::getTextEntityNames($this->text, $entity_types); $this->confirm_names = true; return; } else { if ($this->add_method == 'text') { $manual_names = $request->getParameter('manual_names'); if ($manual_names && $manual_names != "") { $manual_names = preg_split('#[\\r\\n]+#', $manual_names); $manual_names = array_map('trim', $manual_names); $names = array(); foreach ($manual_names as $name) { $names[] = array('name' => $name); } } else { $request->setError('csv', 'You did not add names properly.'); return; } } else { if ($this->add_method == 'db_search') { $this->db_search = true; } } } } } } //intermediate scrape page -- takes confirmed names, builds names arr if ($confirmed_names = $request->getParameter('confirmed_names')) { $restOfParams = (array) $request->getParameterHolder(); $restOfParams = array_shift($restOfParams); $this->add_bulk_form->bind($restOfParams, $request->getFiles()); if (!$this->add_bulk_form->isValid()) { $this->reference = Doctrine::getTable('reference')->find($this->ref_id); $this->names = unserialize(stripslashes($request->getParameter('names'))); $this->confirm_names = true; return; } $names = array(); foreach ($confirmed_names as $cn) { $names[] = array('name' => $cn); } $manual_names = $request->getParameter('manual_names'); if ($manual_names && $manual_names != "") { $manual_names = preg_split('#[\\r\\n]+#', $manual_names); $manual_names = array_map('trim', $manual_names); foreach ($manual_names as $name) { $names[] = array('name' => $name); } } } // LOAD IN RELATIONSHIP DEFAULTS if (isset($verify_method)) { $defaults = $request->getParameter('relationship'); if ($verify_method == 'enmasse') { $this->default_type = $request->getParameter('default_type'); $this->order = $request->getParameter('order'); $category_name = $request->getParameter('relationship_category_all'); $this->extensions = ExtensionDefinitionTable::getByTier(2, $this->default_type); $extensions_arr = array(); foreach ($this->extensions as $ext) { $extensions_arr[] = $ext->name; } } else { $category_name = $request->getParameter('relationship_category_one'); } if ($category_name) { $this->category_name = $category_name; if (!($category = Doctrine::getTable('RelationshipCategory')->findOneByName($category_name))) { $request->setError('csv', 'You did not select a relationship category.'); return; } $formClass = $category_name . 'Form'; $categoryForm = new $formClass(new Relationship()); $categoryForm->setDefaults($defaults); $this->form_schema = $categoryForm->getFormFieldSchema(); if (in_array($category_name, array('Position', 'Education', 'Membership', 'Donation', 'Lobbying', 'Ownership'))) { $this->field_names = array('description1', 'start_date', 'end_date', 'is_current'); } else { $this->field_names = array('description1', 'description2', 'start_date', 'end_date', 'is_current'); } $extraFields = array('Position' => array('is_board', 'is_executive'), 'Education' => array('degree_id'), 'Donation' => array('amount'), 'Transaction' => array('amount'), 'Lobbying' => array('amount'), 'Ownership' => array('percent_stake', 'shares')); if (isset($extraFields[$category_name])) { $this->field_names = array_merge($this->field_names, $extraFields[$category_name]); } } $this->matches = array(); // BOOT TO TOOLBAR OR LOOK FOR MATCHES FOR ENMASSE ADD if (isset($names) && count($names) > 0 || isset($this->db_search)) { if ($verify_method == 'onebyone') { if (isset($category_name)) { $defaults['category'] = $category_name; } $toolbar_names = array(); foreach ($names as $name) { $toolbar_names[] = $name['name']; } $this->getUser()->setAttribute('toolbar_names', $toolbar_names); $this->getUser()->setAttribute('toolbar_entity', $this->entity->id); $this->getUser()->setAttribute('toolbar_defaults', $defaults); $this->getUser()->setAttribute('toolbar_ref', $this->ref_id); $this->redirect('relationship/toolbar'); } else { $this->category_name = $category_name; if (isset($this->db_search)) { $num = $request->getParameter('num', 10); $page = $request->getParameter('page', 1); $q = LsDoctrineQuery::create()->from('Entity e')->where('(e.summary rlike ? or e.blurb rlike ?)', array('[[:<:]]' . $this->entity->name . '[[:>:]]', '[[:<:]]' . $this->entity->name . '[[:>:]]')); foreach ($this->entity->Alias as $alias) { $q->orWhere('(e.summary rlike ? or e.blurb rlike ?)', array('[[:<:]]' . $alias->name . '[[:>:]]', '[[:<:]]' . $alias->name . '[[:>:]]')); } $q->setHydrationMode(Doctrine::HYDRATE_ARRAY); $cat_id = constant('RelationshipTable::' . strtoupper($category_name) . '_CATEGORY'); $q->whereParenWrap(); $q->andWhere('NOT EXISTS (SELECT DISTINCT l.relationship_id FROM Link l ' . 'WHERE l.entity1_id = e.id AND l.entity2_id = ? AND l.category_id = ?)', array($this->entity['id'], $cat_id)); $summary_matches = $q->execute(); foreach ($summary_matches as $summary_match) { $aliases = array(); foreach ($this->entity->Alias as $alias) { $aliases[] = LsString::escapeStringForRegex($alias->name); } $aliases = implode("|", $aliases); $summary_match['summary'] = preg_replace('/(' . $aliases . ')/is', '<strong>$1</strong>', $summary_match['summary']); $this->matches[] = array('search_results' => array($summary_match)); } } else { for ($i = 0; $i < count($names); $i++) { if (isset($names[$i]['name']) && trim($names[$i]['name']) != '') { $name = $names[$i]['name']; $name_terms = $name; if ($this->default_type == 'Person') { $name_parts = preg_split('/\\s+/', $name); if (count($name_parts) > 1) { $name_terms = PersonTable::nameSearch($name); } $terms = $name_terms; $primary_ext = "Person"; } else { if ($this->default_type == 'Org') { $name_terms = OrgTable::nameSearch($name); $terms = $name_terms; $primary_ext = "Org"; } else { $terms = $name_terms; $primary_ext = null; } } $pager = EntityTable::getSphinxPager($terms, $page = 1, $num = 20, $listIds = null, $aliases = true, $primary_ext); $match = $names[$i]; $match['search_results'] = $pager->execute(); if (isset($names[$i]['types'])) { $types = explode(',', $names[$i]['types']); $types = array_map('trim', $types); $match['types'] = array(); foreach ($types as $type) { if (in_array($type, $extensions_arr)) { $match['types'][] = $type; } } } $this->matches[] = $match; } } } } } } } else { if ($page = $this->getRequestParameter('page')) { $this->page = $page; $this->num = $this->getRequestParameter('num', 50); } else { if ($request->isMethod('post') && $request->getParameter('commit') == 'Submit') { $this->ref_id = $this->getRequestParameter('ref_id'); $entity_ids = array(); $relationship_category = $this->getRequestParameter('category_name'); $order = $this->getRequestParameter('order'); $default_type = $request->getParameter('default_type'); $default_ref = Doctrine::getTable('Reference')->find($request->getParameter('ref_id')); for ($i = 0; $i < $this->getRequestParameter('count'); $i++) { if ($entity_id = $request->getParameter('entity_' . $i)) { $selected_entity_id = null; $relParams = $request->getParameter("relationship_" . $i); if ($relParams['ref_name']) { $ref['source'] = $relParams['ref_source']; $ref['name'] = $relParams['ref_name']; } if ($entity_id == 'new') { $name = $request->getParameter('new_name_' . $i); if ($default_type == 'Person') { $new_entity = PersonTable::parseFlatName($name); } else { $new_entity = new Entity(); $new_entity->addExtension('Org'); $new_entity->name = trim($name); } $new_entity->save(); $new_entity->blurb = $request->getParameter('new_blurb_' . $i); $new_entity->summary = $request->getParameter('new_summary_' . $i); if (!$ref) { $ref = $default_ref; } $new_entity->addReference($ref['source'], null, null, $ref['name']); if ($types = $request->getParameter('new_extensions_' . $i)) { foreach ($types as $type) { $new_entity->addExtension($type); } } $new_entity->save(); $selected_entity_id = $new_entity->id; } else { if ($entity_id > 0) { $selected_entity_id = $entity_id; LsCache::clearEntityCacheById($selected_entity_id); } } if ($selected_entity_id) { $startDate = $relParams['start_date']; $endDate = $relParams['end_date']; unset($relParams['start_date'], $relParams['end_date'], $relParams['ref_name'], $relParams['ref_url']); $rel = new Relationship(); $rel->setCategory($relationship_category); if ($order == '1') { $rel->entity1_id = $this->entity['id']; $rel->entity2_id = $selected_entity_id; } else { $rel->entity2_id = $this->entity['id']; $rel->entity1_id = $selected_entity_id; } //only set dates if valid if ($startDate && preg_match('#^\\d{4}-\\d{2}-\\d{2}$#', Dateable::convertForDb($startDate))) { $rel->start_date = Dateable::convertForDb($startDate); } if ($endDate && preg_match('#^\\d{4}-\\d{2}-\\d{2}$#', Dateable::convertForDb($endDate))) { $rel->end_date = Dateable::convertForDb($endDate); } $rel->fromArray($relParams, null, $hydrateCategory = true); if ($request->hasParameter('add_method') && $request->getParameter('add_method') == 'db_search') { $refs = EntityTable::getSummaryReferences($selected_entity_id); if (count($refs)) { $ref = $refs[0]; } else { $refs = EntityTable::getAllReferencesById($selected_entity_id); if (count($refs)) { $ref = $refs[0]; } } } if (!$ref) { $ref = $default_ref; } $rel->saveWithRequiredReference(array('source' => $ref['source'], 'name' => $ref['name'])); $ref = null; } } } $this->clearCache($this->entity); $this->redirect($this->entity->getInternalUrl()); } else { if ($request->isMethod('post') && $request->getParameter('commit') == 'Cancel') { $this->redirect($this->entity->getInternalUrl()); } } } } }
<?php use_helper('LsNumber'); ?> <?php $data = array('Types' => implode(', ', array_keys(EntityTable::getExtensionsForDisplay($entity, false))), 'Start Date' => Dateable::convertForDisplay($entity['start_date']), 'End Date' => Dateable::convertForDisplay($entity['end_date']), 'Partner 1' => $entity['partner1'] ? entity_link($entity['partner1']) : null, 'Partner 2' => $entity['partner2'] ? entity_link($entity['partner2']) : null); ?> <?php include_partial('global/datatable', array('data' => $data, 'label_width' => isset($label_width) ? $label_width : '80px'));
<?php slot('share_text'); echo entity_link($relationship['Entity1']); ?> <?php echo $current === NULL ? "is/was" : ($current == '1' ? "is" : "was"); ?> a student of <?php echo entity_link($relationship['Entity2']); end_slot(); echo get_slot('share_text'); slot('share_text', RelationshipTable::formatSentenceForShare(get_slot('share_text'))); ?> </span> <br /> <br /> <?php $data = array('Type' => $relationship['description1'], 'Start date' => Dateable::convertForDisplay($relationship['start_date']), 'End date' => Dateable::convertForDisplay($relationship['end_date']), 'Is current' => LsLogic::nullOrBoolean($relationship['is_current']), 'Degree' => RelationshipTable::getDegreeNameById($relationship['id']), 'Field' => $relationship['field'], 'Is dropout' => LsLogic::nullOrBoolean($relationship['is_dropout']), 'Notes' => $relationship['notes'] ? nl2br($relationship['notes']) : null); ?> <?php include_partial('global/section', array('title' => 'Details')); ?> <div class="padded"> <?php include_partial('global/datatable', array('data' => $data)); ?> </div>
<?php use_helper('LsNumber'); $data = array('Types' => implode(', ', array_keys(EntityTable::getExtensionsForDisplay($entity, false))), 'Start Date' => Dateable::convertForDisplay($entity['start_date']), 'End Date' => Dateable::convertForDisplay($entity['end_date']), 'Website' => $entity['website'] ? link_to(excerpt($entity['website'], 25, '...', false), $entity['website']) : null, 'Employees' => readable_number($entity['employees']), 'Revenue' => readable_number($entity['revenue'], '$')); ?> <?php include_partial('global/datatable', array('data' => $data, 'label_width' => isset($label_width) ? $label_width : '80px'));
<?php echo RelationshipTable::getDisplayDescription($relationship) ? '(' . RelationshipTable::getDisplayDescription($relationship) . ')' : ''; ?> <?php echo $relationship['Entity2']['primary_ext'] == 'Person' ? 'under' : 'at'; ?> <?php echo entity_link($relationship['Entity2']); end_slot(); echo get_slot('share_text'); slot('share_text', RelationshipTable::formatSentenceForShare(get_slot('share_text'))); ?> </span> <br /> <br /> <?php $data = array('Title' => $relationship['description1'], 'Start date' => Dateable::convertForDisplay($relationship['start_date']), 'End date' => Dateable::convertForDisplay($relationship['end_date']), 'Is current' => LsLogic::nullOrBoolean($relationship['is_current']), 'Board member' => LsLogic::nullOrBoolean($relationship['is_board']), 'Executive' => LsLogic::nullOrBoolean($relationship['is_executive']), 'Employee' => LsLogic::nullOrBoolean($relationship['is_employee']), 'Compensation' => readable_number($relationship['compensation'], '$'), 'Notes' => $relationship['notes'] ? nl2br($relationship['notes']) : null); ?> <?php include_partial('global/section', array('title' => 'Details')); ?> <div class="padded"> <?php include_partial('global/datatable', array('data' => $data)); ?> </div>
public function executeToolbar($request) { $this->checkToolbarCredentials(true); if ($request->isMethod('post')) { //if user wants to skip this relationship if ($request->getParameter('commit') == 'Skip') { $names = $this->getUser()->getAttribute('toolbar_names'); array_shift($names); if (count($names)) { $this->getUser()->setAttribute('toolbar_names', $names); $this->redirect('relationship/toolbar'); } else { $entityId = $this->getUser()->getAttribute('toolbar_entity'); $entity = Doctrine::getTable('Entity')->find($entityId); $this->getUser()->setAttribute('toolbar_names', null); $this->getUser()->setAttribute('toolbar_ref', null); $this->getUser()->setAttribute('toolbar_entity', null); $this->getUser()->setAttribute('toolbar_defaults', null); $this->redirect($entity->getInternalUrl()); } } //if user wants to clear bulk queue if ($request->getParameter('commit') == 'Clear') { $entityId = $this->getUser()->getAttribute('toolbar_entity'); $entity = Doctrine::getTable('Entity')->find($entityId); $this->getUser()->setAttribute('toolbar_names', null); $this->getUser()->setAttribute('toolbar_ref', null); $this->getUser()->setAttribute('toolbar_entity', null); $this->getUser()->setAttribute('toolbar_defaults', null); $this->redirect($entity->getInternalUrl()); } $entity1Id = $request->getParameter('entity1_id'); $entity2Id = $request->getParameter('entity2_id'); $categoryName = $request->getParameter('category_name'); $refSource = $request->getParameter('reference_source'); $refName = $request->getParameter('reference_name'); $categoryParams = $request->getParameter('relationship'); $startDate = $categoryParams['start_date']; $endDate = $categoryParams['end_date']; unset($categoryParams['start_date'], $categoryParams['end_date']); if (!$entity1Id || !$entity2Id || !$categoryName || !$refSource || !$refName) { $this->forward('error', 'invalid'); } if (!($entity1 = EntityApi::get($entity1Id))) { $this->forward('error', 'invalid'); } if (!($entity2 = EntityApi::get($entity2Id))) { $this->forward('error', 'invalid'); } $db = Doctrine_Manager::connection(); $sql = 'SELECT name FROM relationship_category ' . 'WHERE (entity1_requirements IS NULL OR entity1_requirements = ?) ' . 'AND (entity2_requirements IS NULL OR entity2_requirements = ?)'; $stmt = $db->execute($sql, array($entity1['primary_ext'], $entity2['primary_ext'])); $validCategoryNames = $stmt->fetchAll(PDO::FETCH_COLUMN); if (!in_array($categoryName, $validCategoryNames)) { $request->setError('category', 'Invalid relationship; try changing the category or switching the entity order'); //check session for bulk names if ($bulkEntityId = $this->getUser()->getAttribute('toolbar_entity')) { if ($this->entity1 = Doctrine::getTable('Entity')->find($bulkEntityId)) { if ($names = $this->getUser()->getAttribute('toolbar_names')) { $this->entity2_name = array_shift($names); if ($refId = $this->getUser()->getAttribute('toolbar_ref')) { $this->ref = Doctrine::getTable('Reference')->find($refId); $request->getParameterHolder()->set('title', $this->ref->name); $request->getParameterHolder()->set('url', $this->ref->source); } if ($defaults = $this->getUser()->getAttribute('toolbar_defaults')) { if (isset($defaults['category'])) { $this->category = $defaults['category']; } } } } } if ($createdId = $request->getParameter('created_id')) { $this->created_rel = Doctrine::getTable('Relationship')->find($createdId); } return sfView::SUCCESS; } if (!preg_match('/^http(s?)\\:\\/\\/.{3,193}/i', $refSource)) { $this->forward('error', 'invalid'); } //all's well, create relationship! $rel = new Relationship(); $rel->setCategory($categoryName); $rel->entity1_id = $entity1['id']; $rel->entity2_id = $entity2['id']; //only set dates if valid if ($startDate && preg_match('#^\\d{4}-\\d{2}-\\d{2}$#', Dateable::convertForDb($startDate))) { $rel->start_date = Dateable::convertForDb($startDate); } if ($endDate && preg_match('#^\\d{4}-\\d{2}-\\d{2}$#', Dateable::convertForDb($endDate))) { $rel->end_date = Dateable::convertForDb($endDate); } $rel->fromArray($categoryParams, null, $hydrateCategory = true); $rel->save(); //create reference $ref = new Reference(); $ref->name = $refName; $ref->source = $refSource; $ref->object_id = $rel->id; $ref->object_model = 'Relationship'; $ref->save(); $redirect = 'relationship/toolbar?url=' . $refSource . '&title=' . $refName . '&created_id=' . $rel->id; //if there's a bulk queue, remove one from the start if ($isBulk = $request->getParameter('is_bulk')) { $names = $this->getUser()->getAttribute('toolbar_names'); array_shift($names); if (count($names)) { $this->getUser()->setAttribute('toolbar_names', $names); //keep track of entity order while in queue $this->getUser()->setAttribute('toolbar_switched', $request->getParameter('is_switched', 0)); $redirect = 'relationship/toolbar?created_id=' . $rel->id; } else { //queue is finished; go to entity profile $entityId = $this->getUser()->getAttribute('toolbar_entity'); $entity = Doctrine::getTable('Entity')->find($entityId); $redirect = $entity->getInternalUrl(); $this->getUser()->setAttribute('toolbar_names', null); $this->getUser()->setAttribute('toolbar_ref', null); $this->getUser()->setAttribute('toolbar_entity', null); $this->getUser()->setAttribute('toolbar_defaults', null); $this->getUser()->setAttribute('toolbar_switched', null); } } LsCache::clearEntityCacheById($entity1['id']); LsCache::clearEntityCacheById($entity2['id']); $this->redirect($redirect); } //check session for bulk names if ($bulkEntityId = $this->getUser()->getAttribute('toolbar_entity')) { if ($this->entity1 = Doctrine::getTable('Entity')->find($bulkEntityId)) { if ($names = $this->getUser()->getAttribute('toolbar_names')) { $this->entity2_name = array_shift($names); if ($refId = $this->getUser()->getAttribute('toolbar_ref')) { $this->ref = Doctrine::getTable('Reference')->find($refId); $request->getParameterHolder()->set('title', $this->ref->name); $request->getParameterHolder()->set('url', $this->ref->source); } if ($defaults = $this->getUser()->getAttribute('toolbar_defaults')) { if (isset($defaults['category'])) { $this->category = $defaults['category']; } } } } $this->is_switched = $this->getUser()->getAttribute('toolbar_switched', 0); } if ($createdId = $request->getParameter('created_id')) { $this->created_rel = Doctrine::getTable('Relationship')->find($createdId); } $this->setLayout($bulkEntityId ? 'layout' : 'toolbar'); }
<?php slot('share_text'); echo entity_link($relationship['Entity1']); ?> <?php echo $current === NULL ? "is/was" : ($current == '1' ? "is" : "was"); ?> a member of <?php echo entity_link($relationship['Entity2']); end_slot(); echo get_slot('share_text'); slot('share_text', RelationshipTable::formatSentenceForShare(get_slot('share_text'))); ?> </span> <br /> <br /> <?php $data = array('Title' => $relationship['description1'], 'Start date' => Dateable::convertForDisplay($relationship['start_date']), 'End date' => Dateable::convertForDisplay($relationship['end_date']), 'Is current' => LsLogic::nullOrBoolean($relationship['is_current']), 'Dues' => readable_number($relationship['dues'], '$'), 'Notes' => $relationship['notes'] ? nl2br($relationship['notes']) : null); ?> <?php include_partial('global/section', array('title' => 'Details')); ?> <div class="padded"> <?php include_partial('global/datatable', array('data' => $data)); ?> </div>
<?php use_helper('LsNumber'); ?> <?php $person = EntityTable::getPersonById($entity['id']); $legalName = PersonTable::getLegalName($person); $data = array('Types' => implode(', ', array_keys(EntityTable::getExtensionsForDisplay($entity, false))), 'Legal Name' => $entity['name'] == $legalName ? null : $legalName, 'Birthplace' => $person['birthplace'], 'Date of Birth' => Dateable::convertForDisplay($entity['start_date']), 'Date of Death' => Dateable::convertForDisplay($entity['end_date']), 'Gender' => PersonTable::getGenderName($person)); ?> <?php include_partial('global/datatable', array('data' => $data, 'label_width' => isset($label_width) ? $label_width : '80px'));
public function setPublicationDate($str) { $this->_set('publication_date', Dateable::convertForDb($str)); }
public function convertValueForDisplay($value) { if (is_null($value)) { return '<span class="text_small">NULL</span>'; } if (!($record = $this->Modification->getObject(true))) { return $value; } $table = $record->getTable(); if ($record instanceof Entity) { $data = $record->getData(); if (!array_key_exists($this->field_name, $data)) { if ($extensionName = EntityTable::getExtensionNameByFieldName($this->field_name)) { $table = Doctrine::getTable($extensionName); } } } elseif ($record instanceof Relationship) { $data = $record->getData(); if (!array_key_exists($this->field_name, $data)) { $table = Doctrine::getTable(RelationshipTable::getCategoryNameByFieldName($this->field_name)); } } if ($alias = $this->getFieldNameAlias()) { $class = $table->getRelation($alias)->getClass(); if ($record = Doctrine::getTable($class)->find($value)) { if ($record instanceof Entity) { sfLoader::loadHelpers('Ls'); return entity_link($record, null); } return $record; } } if (in_array($this->field_name, array('start_date', 'end_date'))) { return Dateable::convertForDisplay($value); } $def = $table->getColumnDefinition($this->field_name); switch ($def['type']) { case 'integer': return (string) $value; break; case 'boolean': return $value ? 'yes' : 'no'; break; } return LsString::excerpt($value); }