public function execute(Git_Hook_PushDetails $push_details, $commit_sha1) { $rev_id = $push_details->getRepository()->getFullName() . '/' . $commit_sha1; $text = $this->git_exec->catFile($commit_sha1); $GLOBALS['group_id'] = $push_details->getRepository()->getProject()->getId(); $this->reference_manager->extractCrossRef($text, $rev_id, Git::REFERENCE_NATURE, $push_details->getRepository()->getProject()->getId(), $push_details->getUser()->getId()); }
public function assertCommitMessageIsValid(Project $project, $commit_message) { if ($project->isSVNMandatoryRef()) { // Marvelous, extractCrossRef depends on globals group_id to find the group // when it's not explicit... yeah! $GLOBALS['group_id'] = $project->getID(); if (!$this->reference_manager->stringContainsReferences($commit_message, $project)) { throw new Exception('Commit message must contains a reference'); } } }
private function removePreviousCrossReferences(Project $project, $revision, $old_commit_message) { $GLOBALS['group_id'] = $project->getID(); $references = $this->reference_manager->extractReferences($old_commit_message, $project->getID()); foreach ($references as $reference_instance) { /* @var $reference Reference */ $reference = $reference_instance->getReference(); if ($reference) { $cross_reference = new CrossReference($revision, $project->getID(), ReferenceManager::REFERENCE_NATURE_SVNREVISION, '', $reference_instance->getValue(), $reference->getGroupId(), $reference->getNature(), '', ''); $this->reference_manager->removeCrossReference($cross_reference); } } }
/** * Return a reference that match keyword and value * @param Project $project * @param String $keyword * @param String $value * @return Reference */ public function getReference(Project $project, $keyword, $value) { $reference = false; list($repository_name, $sha1) = $this->splitRepositoryAndSha1($value); $repository = $this->repository_factory->getRepositoryByPath($project->getId(), $project->getUnixName() . '/' . $repository_name . '.git'); if ($repository) { $args = array($repository->getId(), $sha1); $reference = $this->reference_manager->loadReferenceFromKeywordAndNumArgs($keyword, $project->getID(), count($args), $value); if ($reference) { $reference->setLink($reference->getLink() . '&p=' . $repository_name); $reference->replaceLink($args); } } return $reference; }
/** * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved * * * */ function service_create_service($arr, $group_id, $template, $force_enable = false) { // Convert link to real values // NOTE: if you change link variables here, change them also in src/www/project/admin/servicebar.php and src/www/include/Layout.class.php $link = $arr['link']; $pm = ProjectManager::instance(); if ($template['system']) { $link = str_replace('$projectname', $pm->getProject($group_id)->getUnixName(), $link); $link = str_replace('$sys_default_domain', $GLOBALS['sys_default_domain'], $link); $link = str_replace('$group_id', $group_id, $link); if ($GLOBALS['sys_force_ssl']) { $sys_default_protocol = 'https'; } else { $sys_default_protocol = 'http'; } $link = str_replace('$sys_default_protocol', $sys_default_protocol, $link); } else { //for non-system templates $link = service_replace_template_name_in_link($link, $template, $pm->getProject($group_id)); } $is_used = isset($template['is_used']) ? $template['is_used'] : $arr['is_used']; $server_id = isset($template['server_id']) ? $template['server_id'] : $arr['server_id']; $sql = "INSERT INTO service (group_id, label, description, short_name, link, is_active, is_used, scope, rank, location, server_id, is_in_iframe) VALUES (" . db_ei($group_id) . ", '" . db_es($arr['label']) . "', '" . db_es($arr['description']) . "', '" . db_es($arr['short_name']) . "', '" . db_es($link) . "', " . db_ei($arr['is_active']) . ", " . ($force_enable ? 1 : db_ei($is_used)) . ", '" . db_es($arr['scope']) . "', " . db_ei($arr['rank']) . ", '" . db_es($arr['location']) . "', " . db_ei($server_id) . ", " . db_ei($arr['is_in_iframe']) . ")"; $result = db_query($sql); if ($result) { // activate corresponding references $reference_manager =& ReferenceManager::instance(); if ($arr['short_name'] != "") { $reference_manager->addSystemReferencesForService($template['id'], $group_id, $arr['short_name']); } return true; } else { return false; } }
private function doCreate() { $projectCreator = new ProjectCreator($this->project_manager, ReferenceManager::instance()); $data = $this->creation_request->getProjectValues(); $creationData = ProjectCreationData::buildFromFormArray($data); return $projectCreator->build($creationData); }
private function initTrackerV3ModuleFromTemplate(Group $group, Group $template_group, $ugroup_mapping) { $group_id = $group->getID(); $tracker_mapping = array(); $report_mapping = array(); if (TrackerV3::instance()->available()) { $atf = new ArtifactTypeFactory($template_group); //$tracker_error = ""; // Add all trackers from template project (tracker templates) that need to be instanciated for new trackers. $res = $atf->getTrackerTemplatesForNewProjects(); while ($arr_template = db_fetch_array($res)) { $ath_temp = new ArtifactType($template_group, $arr_template['group_artifact_id']); $report_mapping_for_this_tracker = array(); $new_at_id = $atf->create($group_id, $template_group->getID(), $ath_temp->getID(), db_escape_string($ath_temp->getName()), db_escape_string($ath_temp->getDescription()), $ath_temp->getItemName(), $ugroup_mapping, $report_mapping_for_this_tracker); if (!$new_at_id) { $GLOBALS['Response']->addFeedback('error', $atf->getErrorMessage()); } else { $report_mapping = $report_mapping + $report_mapping_for_this_tracker; $tracker_mapping[$ath_temp->getID()] = $new_at_id; // Copy all the artifacts from the template tracker to the new tracker $ath_new = new ArtifactType($group, $new_at_id); // not now. perhaps one day //if (!$ath_new->copyArtifacts($ath_temp->getID()) ) { //$GLOBALS['Response']->addFeedback('info', $ath_new->getErrorMessage()); //} // Create corresponding reference $ref = new Reference(0, strtolower($ath_temp->getItemName()), $GLOBALS['Language']->getText('project_reference', 'reference_art_desc_key'), '/tracker/?func=detail&aid=$1&group_id=$group_id', 'P', 'tracker', ReferenceManager::REFERENCE_NATURE_ARTIFACT, '1', $group_id); $result = $this->reference_manager->createReference($ref, true); // Force reference creation because default trackers use reserved keywords } } } return array($tracker_mapping, $report_mapping); }
/** * @return ProjectCreator */ private function GivenAProjectCreator() { $projectManager = new MockProjectManager(); $creator = TestHelper::getPartialMock('ProjectCreator', array('createProject')); $creator->__construct($projectManager, ReferenceManager::instance()); return $creator; }
function generate() { global $Language; $request =& HTTPRequest::instance(); if ($data = $request->get('data')) { if (isset($data['users']['generate']) && $data['users']['generate']) { $um = UserManager::instance(); $nb_wanted = isset($data['users']['nb']) ? (int) $data['users']['nb'] : 1; $users = $this->_getUsersData(); reset($users); $nb_done = 0; while ((list(, $user) = each($users)) && $nb_wanted > $nb_done) { if (!$um->getUserByUserName($user['name'])) { require_once 'account.php'; account_create($user['name'], 'codendi', '', $user['realname'], '', '*****@*****.**', 'A', '', 0, 0, 'Europe/Paris', 'en_US', 'A'); $nb_done++; } } } if (isset($data['projects']['generate']) && $data['projects']['generate']) { $nb_wanted = isset($data['projects']['nb']) ? (int) $data['projects']['nb'] : 1; $projects = $this->_getProjectsData(); reset($projects); $nb_done = 0; while ((list(, $project) = each($projects)) && $nb_wanted > $nb_done) { if (!group_get_object_by_name($project['name'])) { $projectCreator = new ProjectCreator(ProjectManager::instance(), ReferenceManager::instance()); $projectCreator->create(array('project' => array('form_unix_name' => $project['name'], 'form_full_name' => $project['name'], 'form_short_description' => $project['description'], 'form_purpose' => $project['description'], 'form_required_sw' => '', 'form_patents' => '', 'form_comments' => '', 'built_from_template' => 100, 'is_test' => false, 'is_public' => true, 'trove' => array()))); $nb_done++; } } } } }
public static function onOutputPageBeforeHTML(OutputPage &$out, &$text) { global $wgTuleapArtLinksGroupId; $reference_manager = ReferenceManager::instance(); $reference_manager->insertReferences($text, $wgTuleapArtLinksGroupId); return true; }
public function itCreatesAProject() { $projectCreator = new ProjectCreator(ProjectManager::instance(), ReferenceManager::instance()); $projectCreator->create('short-name', 'Long name', array('project' => array('form_short_description' => '', 'is_test' => false, 'is_public' => false, 'services' => array(), 'built_from_template' => 100))); ProjectManager::clearInstance(); $project = ProjectManager::instance()->getProjectByUnixName('short-name'); $this->assertEqual($project->getPublicName(), 'Long name'); }
public function __construct(EventManager $event_manager, ProjectManager $project_manager, XML_RNGValidator $xml_validator, UGroupManager $ugroup_manager, User\XML\Import\IFindUserFromXMLReference $user_finder, Logger $logger) { $this->event_manager = $event_manager; $this->project_manager = $project_manager; $this->xml_validator = $xml_validator; $this->ugroup_manager = $ugroup_manager; $this->user_finder = $user_finder; $this->logger = $logger; $this->project_creator = new ProjectCreator($this->project_manager, ReferenceManager::instance(), true); }
/** * Récupérer une liste d'articles en fonction de critères * @param array $params tableau associatif contenant les critères de sélection. clé : nom du paramètre, valeur : valeur du paramètre * @param array $infosPages tableau associatif contenant des indications sur le nombre de pages, la liste des numéros de pages disponibles, etc. * @return array liste des articles * @see Manager::getIndexPages * @see Manager::_getListPage * @see Manager::_getCount */ function getListPage($params, &$infosPages) { // Construction de la requête en fonction des paramètres $sql = 'SELECT a.doc_id as id, doc_auteurs, doc_titre as titre, doc_etat as etat, doc_date_publication, doc_date_enregistrement, doc_date_modification, u.uti_nom as nom, u.uti_prenom as prenom '; $from = ' FROM uti_utilisateur u, doc_document a'; $where = ' WHERE u.uti_id = a.uti_id_soumis '; if (isset($params['uti']) && intval($params['uti']) > 0) { $where .= ' AND uti_id_soumis = ' . intval($params['uti']); } if (isset($params['status']) && is_numeric($params['status'])) { $where .= ' AND doc_etat = ' . trim($params['status']); } if (isset($params['type']) && strlen($params['type']) == 1) { $where .= ' AND typ_id = \'' . trim($params['type']) . '\''; } $ref = new ReferenceManager($this->db); $i = 0; foreach ($params as $clef => $val) { if (strpos($clef, 'cri_') === 0 && $val != 'none') { $crit = $ref->getCriterionInfos(substr($clef, 4)); $crit = $crit['id']; $tmpsql = 'SELECT doc_id FROM doc_document WHERE doc_repertoire = ' . $this->db->quote($val); $res = $this->_getRow($tmpsql); $intro = $res['doc_id']; $from .= ", document_criteres c{$i}"; $where .= " AND a.doc_id = c{$i}.doc_id AND c{$i}.cri_id = " . intval($crit) . " AND c{$i}.intro_id = " . intval($intro); $i++; } } if (isset($params['pg'])) { $page = intval($params['pg']); } else { $page = 0; } $nombreLigneTotal = $this->_getCount($from . $where); $infosPages = $this->getIndexPages($page, $this->nbParPage, $nombreLigneTotal, $this->nbLiensMax); $sql = $sql . $from . $where . " ORDER BY doc_date_enregistrement DESC"; return $this->_getListPage($sql, $page, $this->nbParPage); }
/** * @return Tracker_Artifact_XMLImport */ public function build(User\XML\Import\IFindUserFromXMLReference $user_finder) { $artifact_factory = Tracker_ArtifactFactory::instance(); $formelement_factory = Tracker_FormElementFactory::instance(); $fields_validator = new Tracker_Artifact_Changeset_AtGivenDateFieldsValidator($formelement_factory); $changeset_dao = new Tracker_Artifact_ChangesetDao(); $changeset_comment_dao = new Tracker_Artifact_Changeset_CommentDao(); $logger = new Log_ConsoleLogger(); $send_notifications = false; $artifact_creator = new Tracker_ArtifactCreator($artifact_factory, $fields_validator, new Tracker_Artifact_Changeset_InitialChangesetAtGivenDateCreator($fields_validator, $formelement_factory, $changeset_dao, $artifact_factory, EventManager::instance())); $new_changeset_creator = new Tracker_Artifact_Changeset_NewChangesetAtGivenDateCreator($fields_validator, $formelement_factory, $changeset_dao, $changeset_comment_dao, $artifact_factory, EventManager::instance(), ReferenceManager::instance()); return new Tracker_Artifact_XMLImport(new XML_RNGValidator(), $artifact_creator, $new_changeset_creator, Tracker_FormElementFactory::instance(), $user_finder, new Tracker_FormElement_Field_List_Bind_Static_ValueDao(), $logger, $send_notifications); }
function getReferencesTable($groupId) { $html = ''; $html .= '<h3>' . $GLOBALS['Language']->getText('project_showdetails', 'references') . '</h3>'; $title_arr[] = $GLOBALS['Language']->getText('project_reference', 'r_keyword'); $title_arr[] = $GLOBALS['Language']->getText('project_reference', 'r_desc'); $title_arr[] = $GLOBALS['Language']->getText('project_reference', 'r_link'); $html .= html_build_list_table_top($title_arr, false, false, true); $referenceManager =& ReferenceManager::instance(); $references =& $referenceManager->getReferencesByGroupId($groupId); // References are sorted by scope first $row_num = 0; foreach ($references as $ref) { $html .= getReferenceRow($ref, $row_num); $row_num++; } $html .= '</table>'; return $html; }
/** for a certain set of users being part of the same ugroups * create the mail body containing only fields that they have the permission to read */ function createMailForUsers($ugroups, $changes, $group_id, $group_artifact_id, &$ok, &$subject) { global $art_field_fact, $art_fieldset_fact, $Language; $fmt_len = 40; $fmt_left = sprintf("%%-%ds ", $fmt_len - 1); $fmt_right = "%s"; $artifact_href = get_server_url() . "/tracker/?func=detail&aid=" . $this->getID() . "&atid={$group_artifact_id}&group_id={$group_id}"; $used_fields = $art_field_fact->getAllUsedFields(); $art_fieldset_fact = new ArtifactFieldsetFactory($this->ArtifactType); $used_fieldsets = $art_fieldset_fact->getAllFieldSetsContainingUsedFields(); $ok = false; $body = ''; //generate the field permissions (TRACKER_FIELD_READ, TRACKER_FIEDL_UPDATE or nothing) //for all fields of this tracker given the $ugroups the user is part of $field_perm = false; if ($ugroups) { $field_perm = $this->ArtifactType->getFieldPermissions($ugroups); } $summ = ""; if ($field_perm === false || isset($field_perm['summary']) && $field_perm['summary'] && permission_can_read_field($field_perm['summary'])) { $summ = util_unconvert_htmlspecialchars($this->getValue('summary')); } $subject = '[' . $this->ArtifactType->getCapsItemName() . ' #' . $this->getID() . '] ' . $summ; //echo "<br>......... field_perm for "; print_r($ugroups); echo " = "; print_r($field_perm); // artifact fields // Generate the message preamble with all required // artifact fields - Changes first if there are some. if ($changes) { $body = $GLOBALS['sys_lf'] . "============= " . strtoupper(SimpleSanitizer::unsanitize($this->ArtifactType->getName())) . " #" . $this->getID() . ": " . $Language->getText('tracker_include_artifact', 'latest_modif') . " =============" . $GLOBALS['sys_lf'] . $artifact_href . $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . $this->formatChanges($changes, $field_perm, $visible_change) . $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . ""; if (!$visible_change) { return; } } $ok = true; $visible_snapshot = false; $full_snapshot = ""; // We write the name of the project $pm = ProjectManager::instance(); $full_snapshot .= sprintf($fmt_left . $GLOBALS['sys_lf'] . "", $Language->getText('tracker_include_artifact', 'project') . ' ' . util_unconvert_htmlspecialchars($pm->getProject($group_id)->getPublicName())); // Write all the fields, grouped by fieldsetset and ordered by rank. $left = 1; $visible_fieldset = false; // fetch list of used fieldsets for this artifact foreach ($used_fieldsets as $fieldset_id => $fieldset) { $fieldset_snapshot = ''; $used_fields = $fieldset->getAllUsedFields(); // fetch list of used fields and the current field values // for this artifact while (list($key, $field) = each($used_fields)) { $field_name = $field->getName(); if ($field_perm === false || isset($field_perm[$field_name]) && $field_perm[$field_name] && permission_can_read_field($field_perm[$field_name])) { $field_html = new ArtifactFieldHtml($field); $visible_fieldset = true; $visible_snapshot = true; // For multi select box, we need to retrieve all the values if ($field->isMultiSelectBox()) { $field_value = $field->getValues($this->getID()); } else { $field_value = $this->getValue($field->getName()); } $display = $field_html->display($group_artifact_id, $field_value, false, true, true, true); $item = sprintf($left ? $fmt_left : $fmt_right, $display); if (strlen($item) > $fmt_len) { if (!$left) { $fieldset_snapshot .= "" . $GLOBALS['sys_lf'] . ""; } $fieldset_snapshot .= sprintf($fmt_right, $display); $fieldset_snapshot .= "" . $GLOBALS['sys_lf'] . ""; $left = 1; } else { $fieldset_snapshot .= $item; $left = !$left; if ($left) { $fieldset_snapshot .= "" . $GLOBALS['sys_lf'] . ""; } } } } // while if ($visible_fieldset) { $full_snapshot .= "" . $GLOBALS['sys_lf'] . ""; $full_snapshot .= $left ? "" : "" . $GLOBALS['sys_lf'] . ""; $full_snapshot .= '--- ' . SimpleSanitizer::unsanitize($fieldset->getLabel()) . ' ---'; $full_snapshot .= "" . $GLOBALS['sys_lf'] . ""; $full_snapshot .= $fieldset_snapshot; } } if ($visible_snapshot) { $full_snapshot .= "" . $GLOBALS['sys_lf'] . ""; } $body .= "============= " . strtoupper(SimpleSanitizer::unsanitize($this->ArtifactType->getName())) . " #" . $this->getID() . ": " . $Language->getText('tracker_include_artifact', 'full_snapshot') . " =============" . $GLOBALS['sys_lf'] . ($changes ? '' : $artifact_href) . $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . $full_snapshot; if (!$left) { $body .= "" . $GLOBALS['sys_lf'] . ""; } // Now display other special fields // Then output the history of bug comments from newest to oldest $body .= $this->showFollowUpComments($group_id, 0, self::OUTPUT_MAIL_TEXT); // Then output the CC list $body .= "" . $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . $this->showCCList($group_id, $group_artifact_id, true); // Then output the dependencies $body .= "" . $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . $this->showDependencies($group_id, $group_artifact_id, true); // Then output the history of attached files from newest to oldest $body .= "" . $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . $this->showAttachedFiles($group_id, $group_artifact_id, true); // Extract references from the message $referenceManager =& ReferenceManager::instance(); $ref_array = $referenceManager->extractReferencesGrouped($body, $group_id); if (count($ref_array) > 0) { $body .= $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . $Language->getText('tracker_include_artifact', 'references') . $GLOBALS['sys_lf']; } foreach ($ref_array as $description => $match_array) { $body .= $GLOBALS['sys_lf'] . $description . ":" . $GLOBALS['sys_lf']; foreach ($match_array as $match => $ref_instance) { $reference =& $ref_instance->getReference(); $body .= ' ' . $ref_instance->getMatch() . ': ' . $ref_instance->getFullGotoLink() . $GLOBALS['sys_lf']; } } // Finally output the message trailer $body .= "" . $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . $Language->getText('tracker_include_artifact', 'follow_link'); $body .= "" . $GLOBALS['sys_lf'] . $artifact_href; if ($ok) { $mail = new Mail(); $mail->setBody($body); return $mail; } else { return null; } }
$oRef->ref_emb_vlm_ctn = $_REQUEST['refEmbVlmCtn']; $oRef->ref_emb_dim_lng = $_REQUEST['refEmbDimLng']; $oRef->ref_emb_dim_lrg = $_REQUEST['refEmbDimLrg']; $oRef->ref_emb_dim_ht = $_REQUEST['refEmbDimHt']; $oRef->ref_emb_dim_diam = $_REQUEST['refEmbDimDiam']; $oRef->ref_com = $_REQUEST['refCom']; $oRef->ref_code = strtoupper($_REQUEST['refCode']); $oRef->ref_mrq = $_REQUEST['refMrq']; $oRef->ref_code_douane = $_REQUEST['refCodeDouane']; $resPhoto = Tool::uplImg($imgPath, $imgMiniPath, $imgExtension, $imgMaxSize); if (count($resPhoto) > 0 && $resPhoto[0] != '') { $oRef->ref_photos = implode(',', $resPhoto); $oRef->ref_photos_pref = $resPhoto[0]; } //Tool::printAnyCase($oRef); $resAddRef = ReferenceManager::addReference($oRef); $idRef = Connection::dernierId(); if (isset($_REQUEST['pvePer']) && !empty($_REQUEST['pvePer']) || isset($_REQUEST['pveEnt']) && !empty($_REQUEST['pveEnt'])) { require $path . '/model/PrixVente.php'; require $path . '/model/PrixVenteManager.php'; $oPve = new PrixVente(); $oPve->ref_id = $idRef; $oPve->pve_ent = $_REQUEST['pveEnt']; $oPve->pve_per = $_REQUEST['pvePer']; $resPv = PrixVenteManager::addPrixVente($oPve); } $cnx->commit(); $msg = "<p class='info'>" . date('H:i:s') . " La référence " . $oRef->ref_lbl . " a été enregistré" . " avec succès</p>"; $_SESSION['token'] = $_REQUEST['token']; $sAction = 'ref_list'; require $path . '/controler/control_ref_list.php';
function getHTMLDisplayCrossRefs($with_links = true, $condensed = false, $isBrowser = true) { global $Language; /** * Array of cross references grouped by nature (to easy cross reference display) * Array has the form: * ['nature1'] => array ( * ['both'] => array ( * CrossReference1, * CrossReference2, * ...) * ['source'] => array ( * CrossReference3, * CrossReference4, * ...) * ['target'] => array ( * CrossReference3, * CrossReference4, * ...) * ['nature2'] => array ( * ['both'] => array ( * CrossReference5, * CrossReference6, * ...) * ['source'] => array ( * CrossReference7, * CrossReference8, * ...) * ['target'] => array ( * CrossReference9, * CrossReference10, * ...) * ... */ $crossRefArray = $this->getCrossReferences(); $reference_manager = ReferenceManager::instance(); $available_natures = $reference_manager->getAvailableNatures(); $user = UserManager::instance()->getCurrentUser(); $itemIsReferenced = false; if ($isBrowser && ($user->isSuperUser() || $user->isMember($this->entity_gid, 'A'))) { $can_delete = true; } else { $can_delete = false; } $classes = array('both' => 'cross_reference', 'source' => 'referenced_by', 'target' => 'reference_to'); $img = array('both' => array('both_arrows', 'cross_referenced'), 'source' => array('left_arrow', 'referenced_in'), 'target' => array('right_arrow', 'reference_to')); $message = addslashes($GLOBALS['Language']->getText('cross_ref_fact_include', 'confirm_delete')); // HTML part (stored in $display) $display = ''; if (!$condensed) { $display .= '<p id="cross_references_legend">' . $Language->getText('cross_ref_fact_include', 'legend') . '</p>'; } // loop through natures foreach ($crossRefArray as $nature => $refArraySourceTarget) { $display .= '<div class="nature">'; if (!$condensed) { $display .= "<p><b>" . $available_natures[$nature]['label'] . "</b>"; } // loop through each type of target $display .= '<ul class="cross_reference_list">'; foreach (array('both', 'target', 'source') as $key) { if (array_key_exists($key, $refArraySourceTarget)) { // one li for one type of ref (both, target, source) $display .= '<li class="' . $classes[$key] . '">'; $display .= $GLOBALS['HTML']->getImage('ic/' . $img[$key][0] . '.png', array('alt' => $Language->getText('cross_ref_fact_include', $img[$key][1]), 'align' => 'top-left', 'hspace' => '5', 'title' => $Language->getText('cross_ref_fact_include', $img[$key][1]))); // the refs $spans = array(); foreach ($refArraySourceTarget[$key] as $currRef) { $span = ''; if ($key === 'source') { $id = $currRef->getRefSourceKey() . "_" . $currRef->getRefSourceId(); $ref = $currRef->getRefSourceKey() . " #" . $currRef->getRefSourceId(); $url = $currRef->getRefSourceUrl(); } else { $id = $currRef->getRefTargetKey() . "_" . $currRef->getRefTargetId(); $ref = $currRef->getRefTargetKey() . " #" . $currRef->getRefTargetId(); $url = $currRef->getRefTargetUrl(); } $span .= '<span id="' . $id . '" class="link_to_ref">'; if ($with_links) { $span .= '<a class="cross-reference" title="' . $available_natures[$nature]['label'] . '" href="' . $url . '">'; $span .= $ref . '</a>'; } else { $span .= $ref; } if ($with_links && $can_delete && !$condensed) { $params = $this->getParams($currRef); $span .= '<a class="delete_ref" href="/reference/rmreference.php' . $params . '" onClick="return delete_ref(\'' . $id . '\', \'' . $message . '\');">'; $span .= $GLOBALS['HTML']->getImage('ic/cross.png', array('alt' => $Language->getText('cross_ref_fact_include', 'delete'), 'title' => $Language->getText('cross_ref_fact_include', 'delete'))); $span .= '</a>'; } $spans[] = $span; } $display .= implode(', </span>', $spans) . '</span>'; $display .= '</li>'; } } $display .= "</ul>"; $display .= "</p>"; $display .= "</div>"; } return $display; }
function frs_process_release_form($is_update, $request, $group_id, $title, $url) { global $frspf, $frsrf, $frsff; $pm = ProjectManager::instance(); //get and filter all inputs from $request $release = array(); $res = $request->get('release'); $vName = new Valid_String(); $vPackage_id = new Valid_UInt(); $vStatus_id = new Valid_UInt(); if ($vName->validate($res['name']) && $vPackage_id->validate($res['package_id']) && $vStatus_id->validate($res['status_id'])) { $release['status_id'] = $res['status_id']; $release['name'] = $res['name']; $release['package_id'] = $res['package_id']; } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_update_failed')); $GLOBALS['Response']->redirect('/file/showfiles.php?group_id=' . $group_id); } $um = UserManager::instance(); $user = $um->getCurrentUser(); $vDate = new Valid_String(); if ($vDate->validate($res['date'])) { $release['date'] = $res['date']; } else { $release['date'] = ""; } $vRelease_notes = new Valid_Text(); if ($vRelease_notes->validate($res['release_notes'])) { $release['release_notes'] = $res['release_notes']; } else { $release['release_notes'] = ""; } $vChange_log = new Valid_Text(); if ($vChange_log->validate($res['change_log'])) { $release['change_log'] = $res['change_log']; } else { $release['change_log'] = ""; } if ($request->valid(new Valid_String('js'))) { $js = $request->get('js'); } else { $js = ""; } if ($request->validArray(new Valid_String('ftp_file'))) { $ftp_file = $request->get('ftp_file'); } else { $ftp_file = array(); } if ($request->validArray(new Valid_UInt('file_processor'))) { $file_processor = $request->get('file_processor'); } else { $file_processor = array(); } if ($request->validArray(new Valid_UInt('file_type'))) { $file_type = $request->get('file_type'); } else { $file_type = array(); } if ($request->validArray(new Valid_String('reference_md5'))) { $reference_md5 = $request->get('reference_md5'); } else { $reference_md5 = array(); } if ($request->validArray(new Valid_String('comment'))) { $comment = $request->get('comment'); } else { $comment = array(); } if ($request->validArray(new Valid_UInt('ftp_file_processor'))) { $ftp_file_processor = $request->get('ftp_file_processor'); } else { $ftp_file_processor = array(); } if ($request->validArray(new Valid_UInt('ftp_file_type'))) { $ftp_file_type = $request->get('ftp_file_type'); } else { $ftp_file_type = array(); } if ($request->validArray(new Valid_String('ftp_reference_md5'))) { $ftp_reference_md5 = $request->get('ftp_reference_md5'); } else { $ftp_reference_md5 = array(); } if ($request->valid(new Valid_String('release_news_subject'))) { $release_news_subject = $request->get('release_news_subject'); } else { $release_news_subject = ""; } if ($request->valid(new Valid_Text('release_news_details'))) { $release_news_details = $request->get('release_news_details'); } else { $release_news_details = ""; } if ($request->valid(new Valid_WhiteList('private_news', array(0, 1)))) { $private_news = $request->get('private_news'); } else { $private_news = 0; } if ($request->validArray(new Valid_UInt('ugroups'))) { $ugroups = $request->get('ugroups'); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_update_failed')); $GLOBALS['Response']->redirect('/file/showfiles.php?group_id=' . $group_id); } if ($request->valid(new Valid_WhiteList('release_submit_news', array(0, 1)))) { $release_submit_news = (int) $request->get('release_submit_news'); } else { $release_submit_news = 0; } if ($request->valid(new Valid_WhiteList('notification', array(0, 1)))) { $notification = $request->get('notification'); } else { $notification = 0; } if ($is_update) { if ($request->validArray(new Valid_UInt('release_files_to_delete'))) { $release_files_to_delete = $request->get('release_files_to_delete'); } else { $release_files_to_delete = array(); } if ($request->validArray(new Valid_UInt('release_files'))) { $release_files = $request->get('release_files'); } else { $release_files = array(); } if ($request->validArray(new Valid_UInt('release_file_processor'))) { $release_file_processor = $request->get('release_file_processor'); } else { $release_file_processor = array(); } if ($request->validArray(new Valid_UInt('release_file_type'))) { $release_file_type = $request->get('release_file_type'); } else { $release_file_type = array(); } if ($request->validArray(new Valid_String('release_reference_md5'))) { $release_reference_md5 = $request->get('release_reference_md5'); } else { $release_reference_md5 = array(); } if ($request->validArray(new Valid_UInt('new_release_id'))) { $new_release_id = $request->get('new_release_id'); } else { $new_release_id = array(); } if ($request->validArray(new Valid_String('release_time'))) { $release_time = $request->get('release_time'); } else { $release_time = array(); } if ($request->validArray(new Valid_String('reference_md5'))) { $reference_md5 = $request->get('reference_md5'); } else { $reference_md5 = array(); } if ($request->validArray(new Valid_Text('release_comment'))) { $release_comment = $request->get('release_comment'); } else { $release_comment = array(); } if ($request->valid(new Valid_UInt('id'))) { $release['release_id'] = $request->get('id'); } else { exit; } } $validator = new frsValidator(); if ($is_update) { $valid = $validator->isValidForUpdate($release, $group_id); } else { $valid = $validator->isValidForCreation($release, $group_id); } if ($valid) { //uplaod release_notes and change_log if needed $data_uploaded = false; if (isset($_FILES['uploaded_change_log']) && !$_FILES['uploaded_change_log']['error']) { $code = addslashes(fread(fopen($_FILES['uploaded_change_log']['tmp_name'], 'r'), file_utils_get_size($_FILES['uploaded_change_log']['tmp_name']))); if (strlen($code) > 0 && strlen($code) < $GLOBALS['sys_max_size_upload']) { //size is fine $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'data_uploaded')); $data_uploaded = true; $release['change_log'] = $code; } else { //too big or small $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('file_admin_editreleases', 'length_err', $GLOBALS['sys_max_size_upload'])); } } if (isset($_FILES['uploaded_release_notes']) && !$_FILES['uploaded_release_notes']['error']) { $code = addslashes(fread(fopen($_FILES['uploaded_release_notes']['tmp_name'], 'r'), file_utils_get_size($_FILES['uploaded_release_notes']['tmp_name']))); if (strlen($code) > 0 && strlen($code) < $GLOBALS['sys_max_size_upload']) { //size is fine if (!$data_uploaded) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'data_uploaded')); } $release['release_notes'] = $code; } else { //too big or small $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('file_admin_editreleases', 'length_err', $GLOBALS['sys_max_size_upload'])); } } if ($is_update) { // make sure that we don't change the date by error because of timezone reasons. // eg: release created in India (GMT +5:30) at 2004-06-03. // MLS in Los Angeles (GMT -8) changes the release notes // the release_date that we showed MLS is 2004-06-02. // with mktime(0,0,0,2,6,2004); we will change the unix time in the database // and the people in India will discover that their release has been created on 2004-06-02 $rel =& $frsrf->getFRSReleaseFromDb($release['release_id']); if (format_date('Y-m-d', $rel->getReleaseDate()) == $release['date']) { // the date didn't change => don't update it $unix_release_time = $rel->getReleaseDate(); } else { $date_list = split("-", $release['date'], 3); $unix_release_time = mktime(0, 0, 0, $date_list[1], $date_list[2], $date_list[0]); } } else { //parse the date $date_list = split("-", $release['date'], 3); $unix_release_time = mktime(0, 0, 0, $date_list[1], $date_list[2], $date_list[0]); } //now we create or update the release $array = array('release_date' => $unix_release_time, 'name' => $release['name'], 'status_id' => $release['status_id'], 'package_id' => $release['package_id'], 'notes' => $release['release_notes'], 'changes' => $release['change_log']); if ($is_update) { $array['release_id'] = $release['release_id']; } if ($is_update) { $res = $frsrf->update($array); if (!$res) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_update_failed')); //insert failed - go back to definition screen } else { //release added - now show the detail page for this new release $release_id = $array['release_id']; $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_updated', $release['name'])); } } else { $res = $frsrf->create($array); if (!$res) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language'] > getText('file_admin_editreleases', 'add_rel_fail')); //insert failed - go back to definition screen } else { //release added - now show the detail page for this new release $release_id = $res; $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_added')); } } if ($res) { // extract cross references $reference_manager =& ReferenceManager::instance(); $reference_manager->extractCrossRef($release['release_notes'], $release_id, ReferenceManager::REFERENCE_NATURE_RELEASE, $group_id); $reference_manager->extractCrossRef($release['change_log'], $release_id, ReferenceManager::REFERENCE_NATURE_RELEASE, $group_id); //set the release permissions list($return_code, $feedbacks) = permission_process_selection_form($group_id, 'RELEASE_READ', $release_id, $ugroups); if (!$return_code) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editpackages', 'perm_update_err')); $GLOBALS['Response']->addFeedback('error', $feedbacks); } //submit news if requested if ($release_id && user_ismember($group_id, 'A') && $release_submit_news) { news_submit($group_id, $release_news_subject, $release_news_details, $private_news, 3); } // Send notification if ($notification) { $rel = $frsrf->getFRSReleaseFromDb($release_id); $count = $frsrf->emailNotification($rel); if ($count === false) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'mail_failed', array($GLOBALS['sys_email_admin']))); } else { if ($count > 0) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'email_sent', $count)); } } } $group = $pm->getProject($group_id); $group_unix_name = $group->getUnixName(false); $project_files_dir = $GLOBALS['ftp_frs_dir_prefix'] . '/' . $group_unix_name; if ($is_update) { $files =& $rel->getFiles(); //remove files foreach ($release_files_to_delete as $rel_file) { $res =& $frsff->getFRSFileFromDb($rel_file); $fname = $res->getFileName(); $res = $frsff->delete_file($group_id, $rel_file); if ($res == 0) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'f_not_yours', basename($fname))); } else { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'file_deleted', basename($fname))); } } //update files $index = 0; foreach ($release_files as $rel_file) { if (!$release_files_to_delete || !in_array($rel_file, $release_files_to_delete)) { $package_id = $release['package_id']; $fname = $files[$index]->getFileName(); $list = split('/', $fname); $fname = $list[sizeof($list) - 1]; if ($new_release_id[$index] != $release_id) { //changing to a different release for this file //see if the new release is valid for this project $res2 = $frsrf->getFRSReleaseFromDb($new_release_id[$index], $group_id); if (!$res2 || count($res2) < 1) { //release not found for this project $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_not_yours', $fname)); } else { $package_id = $res2->getPackageID(); } } if ($new_release_id[$index] == $release_id || $res2) { if (!ereg("[0-9]{4}-[0-9]{2}-[0-9]{2}", $release_time[$index])) { $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('file_admin_editreleases', 'data_not_parsed_file', $fname)); } else { $res2 =& $frsff->getFRSFileFromDb($rel_file); if (format_date('Y-m-d', $res2->getReleaseTime()) == $release_time[$index]) { $unix_release_time = $res2->getReleaseTime(); } else { $date_list = split("-", $release_time[$index], 3); $unix_release_time = mktime(0, 0, 0, $date_list[1], $date_list[2], $date_list[0]); } $array = array('release_id' => $new_release_id[$index], 'release_time' => $unix_release_time, 'type_id' => $release_file_type[$index], 'processor_id' => $release_file_processor[$index], 'file_id' => $rel_file, 'comment' => $release_comment[$index], 'filename' => 'p' . $package_id . '_r' . $new_release_id[$index] . '/' . $fname, 'filepath' => 'p' . $package_id . '_r' . $new_release_id[$index] . '/' . $fname . '_' . $unix_release_time); if ($release_reference_md5[$index] && $release_reference_md5[$index] != '') { $array['reference_md5'] = $release_reference_md5[$index]; } $res = $frsff->update($array); if ($res) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'file_updated', $fname)); } } } } $index++; } } //add new files //files processing $http_files_list = array(); $processor_type_list = array(); $file_type_list = array(); $http_files_processor_type_list = array(); $ftp_files_processor_type_list = array(); if (isset($js) && $js == 'no_js') { //if javascript is not allowed, there is maximum one file to upload // TODO : fix warnings due to array instead of string for "file_processor", "file_type" & "reference_md5" if ($ftp_file[0] != -1) { $ftp_files_processor_type_list[] = array('name' => $ftp_file[0], 'processor' => $file_processor, 'type' => $file_type, 'reference_md5' => $reference_md5, 'comment' => $comment); } else { if (trim($_FILES['file']['name'][0]) != '') { $http_files_processor_type_list[] = array('error' => $_FILES['file']['error'][0], 'name' => stripslashes($_FILES['file']['name'][0]), 'tmp_name' => $_FILES['file']['tmp_name'][0], 'processor' => $file_processor, 'type' => $file_type, 'reference_md5' => $reference_md5, 'comment' => $comment); } } } else { //get http files with the associated processor type and file type in allowed javascript case $nb_files = isset($_FILES['file']) ? count($_FILES['file']['name']) : 0; for ($i = 0; $i < $nb_files; $i++) { if (trim($_FILES['file']['name'][$i]) != '') { $http_files_processor_type_list[] = array('error' => $_FILES['file']['error'][$i], 'name' => stripslashes($_FILES['file']['name'][$i]), 'tmp_name' => $_FILES['file']['tmp_name'][$i], 'processor' => $file_processor[$i], 'type' => $file_type[$i], 'reference_md5' => $reference_md5[$i], 'comment' => $comment[$i]); } } //remove hidden ftp_file input (if the user let the select boxe on --choose file) $tmp_file_list = array(); $index = 0; foreach ($ftp_file as $file) { if (trim($file) != '') { $ftp_files_processor_type_list[] = array('name' => $file, 'processor' => $ftp_file_processor[$index], 'type' => $ftp_file_type[$index], 'reference_md5' => $ftp_reference_md5[$index]); $index++; } } } if (count($http_files_processor_type_list) > 0 || count($ftp_files_processor_type_list) > 0) { //see if this release belongs to this project $res1 =& $frsrf->getFRSReleaseFromDb($release_id, $group_id); if (!$res1 || count($res1) < 1) { //release not found for this project $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_not_yours')); } else { $now = time(); $addingFiles = false; //iterate and add the http files to the frs_file table foreach ($http_files_processor_type_list as $file) { $filename = $file['name']; if (isset($file['error'])) { switch ($file['error']) { case UPLOAD_ERR_OK: // all is OK break; case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'error_upload_size', $file['error'])); break; case UPLOAD_ERR_PARTIAL: $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'error_upload_partial', $file['error'])); break; case UPLOAD_ERR_NO_FILE: $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'error_upload_nofile', $file['error'])); break; default: $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'error_upload_unknown', $file['error'])); } } if (is_uploaded_file($file['tmp_name'])) { $uploaddir = $frsff->getSrcDir($request->getProject()); $uploadfile = $uploaddir . "/" . basename($filename); if (!file_exists($uploaddir) || !is_writable($uploaddir) || !move_uploaded_file($file['tmp_name'], $uploadfile)) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'not_add_file') . ": " . basename($filename)); } else { $newFile = new FRSFile(); $newFile->setRelease($res1); $newFile->setFileName($filename); $newFile->setProcessorID($file['processor']); $newFile->setTypeID($file['type']); $newFile->setReferenceMd5($file['reference_md5']); $newFile->setUserId($user->getId()); $newFile->setComment($file['comment']); try { $frsff->createFile($newFile); $addingFiles = true; } catch (Exception $e) { $GLOBALS['Response']->addFeedback('error', $e->getMessage()); } } } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'not_add_file') . ": " . basename($filename)); } } //iterate and add the ftp files to the frs_file table foreach ($ftp_files_processor_type_list as $file) { $filename = $file['name']; $newFile = new FRSFile(); $newFile->setRelease($res1); $newFile->setFileName($filename); $newFile->setProcessorID($file['processor']); $newFile->setTypeID($file['type']); $newFile->setReferenceMd5($file['reference_md5']); $newFile->setUserId($user->getId()); try { $frsff->createFile($newFile, ~FRSFileFactory::COMPUTE_MD5); $addingFiles = true; $em = EventManager::instance(); $em->processEvent(Event::COMPUTE_MD5SUM, array('fileId' => $newFile->getFileID())); $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'offline_md5', $filename)); } catch (Exception $e) { $GLOBALS['Response']->addFeedback('error', $e->getMessage()); } } } if ($addingFiles) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'add_files')); } } //redirect to files $GLOBALS['Response']->redirect('/file/?group_id=' . $group_id); } } else { $GLOBALS['Response']->addFeedback('error', $validator->getErrors()); } frs_display_release_form($is_update, $release, $group_id, $title, $url); }
$lotBon = BonLigneManager::getBonLignesFromLot($lotId); //Si le tableau est définie, au moins une occurence est trouvé if (is_array($lotBon)) { //Dans ce cas on stock l'id du lot dans le tableau, //dans le formulaire si on trouve l'id du lot dans le tableau //on désactive la checkbox de suppression $resAllLotsBons[] = $lotId; } //On récupére les infos du lot $lot = LotManager::getLotForUpd($lotId); //On ajoute le lot retourné au tableau de lot $resAllLots[] = $lot; //On récupére l'id de la référence $refId = $lot->ref_id; //On récupére les infos de la référence $ref = ReferenceManager::getReference($refId); //On ajoute la référence retournée au tableau de référence $resAllRefs[] = $ref; //On récupére l'id du droit de douane $ddId = $ref->dd_id; //On récupére les infos du droit de douane $dd = DroitDouaneManager::getDroitDouaneById($ddId); //On ajoute le droit de douane retournée au tableau de droit douane $resAllDds[] = $dd; } } } catch (MySQLException $e) { $msg = $resEr[1]; Tool::addMsg($msg); } }
* along with Tuleap. If not, see <http://www.gnu.org/licenses/>. */ require_once 'pre.php'; $git_dao = new GitDao(); $user_manager = UserManager::instance(); $git_repository_factory = new GitRepositoryFactory($git_dao, ProjectManager::instance()); $system_event_manager = new Git_SystemEventManager(SystemEventManager::instance(), $git_repository_factory); $git_plugin = PluginManager::instance()->getPluginByName('git'); $logger = $git_plugin->getLogger(); if ($argv[1] == "--init") { $repository_path = $argv[2]; $user_name = $argv[3]; $repository = $git_repository_factory->getFromFullPath($repository_path); if ($repository) { $system_event_manager->queueGrokMirrorManifestFollowingAGitPush($repository); } } else { $repository_path = $argv[1]; $user_name = $argv[2]; $old_rev = $argv[3]; $new_rev = $argv[4]; $refname = $argv[5]; try { $git_exec = new Git_Exec($repository_path, $repository_path); $post_receive = new Git_Hook_PostReceive(new Git_Hook_LogAnalyzer($git_exec, $logger), $git_repository_factory, $user_manager, new Git_Ci_Launcher(new Jenkins_Client(new Http_Client()), new Git_Ci_Dao(), $logger), new Git_Hook_ParseLog(new Git_Hook_LogPushes($git_dao), new Git_Hook_ExtractCrossReferences($git_exec, ReferenceManager::instance()), $logger)); $post_receive->execute($repository_path, $user_name, $old_rev, $new_rev, $refname); } catch (Exception $exception) { $logger->error("[git post-receive] {$repository_path} {$user_name} {$refname} {$old_rev} {$new_rev} " . $exception->getMessage()); exit(1); } }
/** * @return ReferenceManager */ protected function getReferenceManager() { return ReferenceManager::instance(); }
/** * @return ReferenceManager */ public function getReferenceManager() { return ReferenceManager::instance(); }
/** * Update MetadataValue in database. */ function update($mdv) { $dao =& $this->getDao(); switch ($mdv->getType()) { case PLUGIN_DOCMAN_METADATA_TYPE_LIST: // First delete all previous values $dao->delete($mdv->getFieldId(), $mdv->getItemId()); // Now create new one $pret = $this->create($mdv); if ($pret === false) { //$this->setError('Unable to bind this item to the value "'.$val.'" for metadata "'.$mdv->getName().'"'); $ret = false; } else { $ret = true; } break; case PLUGIN_DOCMAN_METADATA_TYPE_TEXT: case PLUGIN_DOCMAN_METADATA_TYPE_STRING: case PLUGIN_DOCMAN_METADATA_TYPE_DATE: $ret = $dao->updateValue($mdv->getItemId(), $mdv->getFieldId(), $mdv->getType(), $mdv->getValue()); // extract cross references $reference_manager =& ReferenceManager::instance(); $reference_manager->extractCrossRef($mdv->getValue(), $mdv->getItemId(), ReferenceManager::REFERENCE_NATURE_DOCUMENT, $this->groupId); break; default: $this->setError($GLOBALS['Language']->getText('plugin_docman', 'mdv_bo_errbadtype')); $ret = false; } return $ret; }
<?php include_once '../config/symbini.php'; include_once $serverRoot . '/classes/ReferenceManager.php'; $refId = array_key_exists('refid', $_REQUEST) ? $_REQUEST['refid'] : 0; $formSubmit = array_key_exists('formsubmit', $_POST) ? $_POST['formsubmit'] : ''; $refManager = new ReferenceManager(); $refArr = ''; $statusStr = ''; if ($formSubmit) { if ($formSubmit == 'Create Reference') { $statusStr = $refManager->createReference($_POST); $refId = $refManager->getRefId(); } elseif ($formSubmit == 'Edit Reference') { if ($_POST['refGroup'] == 1) { $statusStr = $refManager->editBookReference($_POST); } elseif ($_POST['refGroup'] == 2) { $statusStr = $refManager->editPerReference($_POST); } else { $statusStr = $refManager->editReference($_POST); } } } $refGroup = 0; $refRank = 0; $parentChild = 0; if ($refId) { $refArr = $refManager->getRefArr($refId); $childArr = $refManager->getChildArr($refId); $authArr = $refManager->getRefAuthArr($refId); $fieldArr = $refManager->getRefTypeFieldArr($refArr["ReferenceTypeId"]);
if (isset($_SESSION['group']) && $_SESSION['group'] >= 0) { try { require_once $path . '/model/ReferenceManager.php'; require_once $path . '/model/PrixVenteManager.php'; //On récupère les infos de la référence $idRef = $_REQUEST['idRef']; $refCode = $_REQUEST['refCode']; $refLbl = $_REQUEST['refLbl']; //On récupère la connexion $cnx = Connection::getConnection(); //On démarre la transaction $cnx->beginTransaction(); //On supprime les prix de ventes associés à la référence $resPvDel = PrixVenteManager::delPrixVentesOfRef($idRef); //On supprime la référence $resDelRef = ReferenceManager::delReference($idRef); $cnx->commit(); //Si la suppression à bien impacté un enregistrement //alors on ajoiute le message de réussite $msg = "<p class='info'>" . date('H:i:s') . " La référence:\n" . $refCode . $refLbl . " à bien était Supprimé</p>"; require_once $path . '/controler/control_ref_list.php'; $sAction = "ref_list"; } catch (MySQLException $e) { $cnx->rollback(); $msg = "<p class='erreur'> " . date('H:i:s') . " Echec suppresion de la référence. Code :" . $resEr[0] . " Message : {$resEr['1']}" . "</p>"; } if (isset($msg)) { Tool::addMsg($msg); } } else { echo "Le silence est d'or";
// update/create news permissions $qry1 = "SELECT * FROM news_bytes WHERE id=" . db_ei($id); $res1 = db_query($qry1); $forum_id = db_result($res1, 0, 'forum_id'); $res2 = news_read_permissions($forum_id); if (db_numrows($res2) > 0) { //permission on this news is already defined, have to be updated news_update_permissions($forum_id, $is_private, $group_id); } else { //permission of this news not yet defined if ($is_private) { news_insert_permissions($forum_id, $group_id); } } // extract cross references $reference_manager =& ReferenceManager::instance(); $reference_manager->extractCrossRef($request->get('summary'), $forum_id, ReferenceManager::REFERENCE_NATURE_NEWS, $group_id); $reference_manager->extractCrossRef($request->get('details'), $forum_id, ReferenceManager::REFERENCE_NATURE_NEWS, $group_id); } } } news_header(array('title' => $Language->getText('news_admin_index', 'title'), 'help' => 'NewsService.html')); echo '<H3>' . $Language->getText('news_admin_index', 'news_admin') . '</H3>'; if (!$request->get('post_changes') && $request->get('approve')) { /* Show the submit form */ $sql = "SELECT * FROM news_bytes WHERE id=" . db_ei($id) . " AND group_id=" . db_ei($group_id); $result = db_query($sql); if (db_numrows($result) < 1) { exit_error($Language->getText('global', 'error'), $Language->getText('news_admin_index', 'not_found_err'));
include_once '../../config/symbini.php'; include_once $serverRoot . '/classes/ReferenceManager.php'; header("Content-Type: text/html; charset=" . $charset); $uid = array_key_exists("uid", $_REQUEST) ? $_REQUEST["uid"] : ''; $action = array_key_exists("action", $_REQUEST) ? $_REQUEST["action"] : ''; $refId = array_key_exists('refid', $_REQUEST) ? $_REQUEST['refid'] : 0; $refAuthId = array_key_exists("refauthid", $_REQUEST) ? $_REQUEST["refauthid"] : 0; $firstName = array_key_exists("firstname", $_REQUEST) ? $_REQUEST["firstname"] : ''; $middleName = array_key_exists("midname", $_REQUEST) ? $_REQUEST["midname"] : ''; $lastName = array_key_exists("lastname", $_REQUEST) ? $_REQUEST["lastname"] : ''; $table = array_key_exists("table", $_REQUEST) ? $_REQUEST["table"] : ''; $field = array_key_exists("field", $_REQUEST) ? $_REQUEST["field"] : ''; $id = array_key_exists("id", $_REQUEST) ? $_REQUEST["id"] : ''; $type = array_key_exists("type", $_REQUEST) ? $_REQUEST["type"] : ''; $refManager = new ReferenceManager(); if ($action == "addauthor") { $refManager->addAuthor($refId, $refAuthId); $authArr = $refManager->getRefAuthArr($refId); $listHtml = ''; if ($authArr) { $listHtml .= '<ul>'; foreach ($authArr as $k => $v) { $listHtml .= '<li>'; $listHtml .= '<a href="authoreditor.php?authid=' . $k . '" target="_blank">' . $v . '</a>'; $listHtml .= ' <input type="image" style="margin-left:5px;" src="../images/del.png" onclick="deleteRefAuthor(' . $k . ');" title="Delete author">'; $listHtml .= '</li>'; } $listHtml .= '</ul>'; } else { $listHtml .= '<div><b>There are currently no authors connected with this reference.</b></div>';
/** * @return ReferenceManager */ public static function instance() { if (!isset(self::$instance)) { $c = __CLASS__; self::$instance = new $c(); } return self::$instance; }
protected function getTrackerReferenceManager() { return new Tracker_ReferenceManager(ReferenceManager::instance(), Tracker_ArtifactFactory::instance()); }