Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Passende Stelle finden und auskommentieren (PHProjekt)

Mitglied: mc-doubleyou

mc-doubleyou (Level 2) - Jetzt verbinden

04.03.2010 um 15:17 Uhr, 3745 Aufrufe, 4 Kommentare

Hallo,

habe mir gestern PHProjekt mal installiert weil wir ein Verwaltungssystem für Kunden (wer hat ein gültiges Ticket) brauchen.

Sieht auch schon ganz nett aus nach ein bisschen rum spielen hab ich auch geschafft die Felder nach meinen Wünschen umzubennen jedenfalls großteils. Aber so komisch das auch klingen mag ist das System zu umfangreich.

Ich würde daher gerne die angezeigten Optionen reduzieren.

So sieht es derzeit aus:

4584dfb6669f92fa151ce3e9b756753c - Klicke auf das Bild, um es zu vergrößern

Ab dem roten Strich würd ich gerne rauskommentieren.

Nun noch der Code:

01.
<?php
02.

03.
// projects.php - PHProjekt Version 5.2
04.
// copyright  ©  2000-2005 Albrecht Guenther  ag@phprojekt.com
05.
// www.phprojekt.com
06.
// Author: Albrecht Guenther, $Author: thorsten $
07.
// $Id: projects.php,v 1.42.2.2 2007/02/14 12:06:11 thorsten Exp $
08.

09.
$module = 'projects';
10.
$contextmenu = 1;
11.

12.
define('PATH_PRE','../');
13.
include_once(PATH_PRE.'lib/lib.inc.php');
14.

15.
projects_init();
16.

17.
$_SESSION['common']['module'] = 'projects';
18.

19.
// List of fields in the db table, needed for filter
20.
$fields = array( "all" => __('all fields'), "name" => __('Name'), "chef" => __('Leader'),
21.
                 "ziel" => __('Aim'), "contact" => __('Contact'), "note" => __('Comment') );
22.

23.
//categories: 1=offered, 2=ordered, 3=at work, 4=ended, 5=stopped, 6=reopened 7 = waiting, 10=container, 11=ext. project
24.
$categories = array( "1" => __('offered'), "2" => __('ordered'), "3" => __('Working'), "4" => __('ended'),
25.
                     "5" => __('stopped'), "6" => __('Re-Opened'), "7" => __('waiting'));
26.

27.
// dependencies between projects on the same level
28.
// 2 = cannot start before the end of project B,
29.
// 3 = cannot start before start of project B,
30.
// 4 = cannot end before start of project B,
31.
// 5 = cannot end before end of project B
32.
$dependencies =  array( '2' => __('cannot start before the end of project'),
33.
                        '3' => __('cannot start before the start of project'),
34.
                        '4' => __('cannot end before the start of project'),
35.
                        '5' => __('cannot end before the end of project') );
36.

37.
// modes to define which project should appear in the list ...
38.
// 1 = above the record
39.
// 2 = below the record
40.
$next_mode_arr = array('1' => __('Previous'), '2' => __('Next'));
41.

42.
if ($mode == 'view') $contextmenu = 1;
43.
require_once(LIB_PATH.'/dbman_lib.inc.php');
44.
$fields = build_array('projects', $ID, $mode);
45.

46.
// call the distinct selectors
47.
require_once('projects_selector_data.php');
48.

49.
echo set_page_header();
50.

51.
if ($justform > 0) {
52.
    $content_div = '<div class="justformcontent">';
53.

54.
}
55.
else {
56.
    include_once(LIB_PATH.'/navigation.inc.php');
57.
    $content_div = '<div id="global-content">';
58.
}
59.

60.

61.
if (isset($inclu) && $inclu == 'err_pro.php') {
62.
    include('./'.'err_pro.php');
63.
}
64.
else {
65.
    // put the values in the form
66.
    global $fields;
67.
    $fields_temp = $fields;
68.
    foreach($fields_temp as $field_name => $field_array) {
69.
        if (isset($_POST[$field_name])) $fields[$field_name]['value'] = xss($_POST[$field_name]);
70.
    }
71.
    // Get value from another module or internar module value
72.
    if (!isset($_GET['contact_ID'])) {
73.
        if (isset($formdata['contact'])) $contact_ID = xss($formdata['contact']);
74.
        elseif(isset($fields['contact']['value'])) {
75.
            $contact_ID = $fields['contact']['value'];
76.
        }
77.
        else {
78.
           $contact_ID = -1;
79.
        }
80.
    }
81.

82.
    if (isset($formdata['project'])) $projekt_ID = xss($formdata['project']);
83.
    elseif(isset($fields['project']['value'])) {
84.
        $projekt_ID = $fields['project']['value'];
85.
    }
86.
    else {
87.
        $projekt_ID = -1;
88.
    }
89.

90.
    if (isset($formdata['chef'])        && $mode == "forms")    $fields['chef']['value'] = xss($formdata['chef']);
91.
    if (isset($formdata['parent'])      && $mode == "forms")    $parent = (int)$formdata['parent'];
92.
    if (isset($formdata['persons'])     && $mode == "forms")    $persons = $formdata['persons'];
93.
    if (isset($formdata['personen'])    && $mode == "forms")    $personen = $formdata['personen'];
94.
    if (isset($_POST['personen'])       && $mode == "data")     $personen = xss_array($_POST['personen']);
95.

96.
    if (isset($formdata['contact_personen'])) $contact_personen = xss_array($formdata['contact_personen']);
97.
    if (isset($_POST['contact_personen']) && $mode == "data")   $contact_personen = xss_array($_POST['contact_personen']);
98.

99.
    if (isset($_REQUEST['action_form_to_participants_selector_x']) && ($_REQUEST['action_form_to_participants_selector_x'] < 1)) {
100.
        $modify_user_roles = true;
101.
        $modify_contact_roles = false;
102.
    }
103.

104.
    if (isset($_REQUEST['action_form_to_contact_selector_x']) && ($_REQUEST['action_form_to_contact_selector_x'] < 1)) {
105.
        $modify_user_roles = false;
106.
        $modify_contact_roles = true;
107.
    }
108.

109.
    define('MODE',$mode);
110.
    include_once('./projects_'.MODE.'.php');
111.
}
112.
if ($justform > 0) echo '</div>';
113.

114.
echo "\n</div>\n</body>\n</html>\n";
115.

116.

117.
/**
118.
 * initialize the projects stuff and make some security checks
119.
 *
120.
 * @return void
121.
 */
122.
function projects_init() {
123.
    global $ID, $mode, $mode2, $justform, $output, $treemode, $anfang, $ende, $date_format_object;
124.

125.
    $output = '';
126.

127.
    $ID       = $_REQUEST['ID']       = isset($_REQUEST['ID']) ? (int) $_REQUEST['ID'] : 0;
128.
    $justform = $_REQUEST['justform'] = isset($_REQUEST['justform']) ? (int) $_REQUEST['justform'] : 0;
129.

130.
    // convert user date format back to db/iso date format (from the form)
131.
    // use $_POST here, cause dbman_data.inc.php uses also the superglobal $_POST
132.
    if (isset($_POST['anfang'])) {
133.
        $anfang = $_POST['anfang'] = $date_format_object->convert_user2db(xss($_POST['anfang']));
134.
    }
135.
    if (isset($_POST['ende'])) {
136.
        $ende = $_POST['ende'] = $date_format_object->convert_user2db(xss($_POST['ende']));
137.
    }
138.

139.
    if (!isset($_REQUEST['treemode'])) {
140.
        $_REQUEST['treemode'] = 'auf';
141.
    }
142.
    $treemode = $_REQUEST['treemode'] = xss($_REQUEST['treemode']);
143.

144.
    if ( !isset($_REQUEST['mode']) ||
145.
         !in_array($_REQUEST['mode'], array('view', 'forms', 'data', 'gantt', 'options', 'sort', 'stat', 'pdf', 'status_update', 'status_change')) ) {
146.
        $_REQUEST['mode'] = 'view';
147.
    }
148.
    $mode = xss($_REQUEST['mode']);
149.

150.
    if (isset($_REQUEST['mode2'])) {
151.
        $mode2 = xss($_REQUEST['mode2']);
152.
    }
153.
}
154.

155.
?>
Bitte - Danke

LG MCD
Mitglied: mrtux
04.03.2010 um 19:43 Uhr
Hi !

Zitat von mc-doubleyou:
Bitte - Danke

Bitte gerne! Da dran herumzupatchen halte ich für keine gute Idee (vorsichtig formuliert) und wenn Du mit PHP nicht absolut fit bist, dann schon gleich zehnmal nicht...

mrtux
Bitte warten ..
Mitglied: mc-doubleyou
04.03.2010 um 22:43 Uhr
so schwierig? auch wenn man weniger nicht mehr will?

lg MCD
Bitte warten ..
Mitglied: mrtux
04.03.2010 um 23:10 Uhr
Hi !

Zitat von mc-doubleyou:
so schwierig? auch wenn man weniger nicht mehr will?

Technisch betrachtet eher nicht aber wenn ihr die Software produktiv in eurer Firma einsetzen wollt, wird es aufwendig. Die gemachten Änderungen musst Du dann bei jeden Update der Software wieder neu machen und in der Praxis wird sich das dann wohl eher als hinderlich zeigen. Besser wäre es die Entwickler darauf anzusprechen, ob man nicht die "ungewollten" Menüpunkte in der Administrationseite de-aktivierbar macht, was sich aber auch als aufwendig herausstellen könnte...hängt von den Entwicklern ab...

Ich halte auf jeden Fall nichts davon an einem Produkt herumzupatchen, vor allem dann, wenn es auf einem "öffentlich" erreichbaren Webserver liegt, gerade noch so vertretbar wäre das auf einem Intranet...

mrtux
Bitte warten ..
Mitglied: mc-doubleyou
05.03.2010 um 08:15 Uhr
Wenn dich das beruhigt, es kommt nur ins Intranet.

Das Problem ist nur eine bessere Lösung habe ich nicht gefunden. Eigentlich wollte ich ja nur:

Eine Erfassung welcher Kunde wie lange ein aktives Parkticket welcher Garage hat erstellen. Dahinter eine DB die man füttern kann und eine Suche um Infos zu erhalten.

Wenn du nun denkst dann nimm doch .... und schieß nicht mit Kanonen auf Spatzen dann wäre ich dir sehr dankbar wenn du das auch schreiben würdest ^^

LG
Bitte warten ..
Ähnliche Inhalte
Backup
Find-Befehl - Es hakt gerade
Frage von it-fraggleBackup1 Kommentar

Vielleicht sollte ich endlich schlafen gehen, aber DAS muss ich noch zuende machen. Wo ist der Fehler? In /media/backups/ ...

Entwicklung

Script basierte Mail an Benutzer passend zum Computernamen

gelöst Frage von coma11Entwicklung6 Kommentare

Hallo zusammen, ich brauche eure Hilfe bei der Erstellung eines Powershell-Scripts. Ein Teil davon soll es sein, dass jeder ...

Debian

Find: sys kernel debug Permission denied

Frage von vikozoDebian

guten Tag ich habe unter Proxmox ein LXC Container erstellt Linux prox1 4.4.15-1-pve (gcc version 4.9.2 (Debian 4.9.2-10) wenn ...

Batch & Shell

Nonsense Error - find ihn nicht. (Batch)

gelöst Frage von clragonBatch & Shell7 Kommentare

Hey Leute! Ich bin's wieder. Heute habe ich ein besonders unnötiges Problem,. Aus irgendeinem Grund hat dieses Script einen ...

Neue Wissensbeiträge
Rechtliche Fragen
Unitymedia siegt vor dem BGH
Information von transocean vor 19 StundenRechtliche Fragen3 Kommentare

Moin, lt. einem aktuellen Urteil darf UM Mietrouter seiner Kunden weiterhin in Hotspots verwandeln. Nachlesen kann man das hier. ...

Router & Routing
Der "768k-Day" kommt
Information von LordGurke vor 1 TagRouter & Routing2 Kommentare

Für Leute, die Router mit BGP-Fulltable betreiben vielleicht ein interessanter Hinweis: Die IPv4-Fulltable erreicht voraussichtlich innerhalb der nächsten 2-3 ...

Debian

Partition angeblich voll, dabei aber noch nicht mal zur Hälfte belegt

Anleitung von diemilz vor 2 TagenDebian8 Kommentare

Hallo zusammen, ich habe ein kleines Problem: Ich habe auf einem physischen Debian Linux Server als ZoneMinder-Server (HP ProLiant ...

Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 6 TagenWindows 73 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Heiß diskutierte Inhalte
HTML
Bild hochladen mit html auf die Webseite
gelöst Frage von WorldoftheitHTML63 Kommentare

Will eine Seite entwickeln im Internet aber Das Bild wird nicht angezeigt woran kann das liegen? Wäre für jede ...

Vmware
Terminalserver VM - Videos ruckeln
Frage von easyriderVmware29 Kommentare

Hallo zusammen, wir haben einen (free) ESXi 5.5 auf einem HP DL 380 G8 im Einsatz. Darauf läuft, unter ...

Festplatten, SSD, Raid
Harddisk kaputt, was sagt mir ChrystalDiskInfo
gelöst Frage von InfoSeekerFestplatten, SSD, Raid23 Kommentare

Hallo zusammen, Mein Rechner lahmt. Ich stell mir die Frage woran es liegt und bin der Meinung es ist ...

Backup
Veeam Community Edition
gelöst Frage von dgrebnerBackup23 Kommentare

Hallo Zusammen, kann jemand seine praktischen Erfahrungswerte mit der Veeam-Community Edition mit mir teilen? Es gab dazu ja schon ...