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)

Frage Entwicklung PHP

Mitglied: mc-doubleyou

mc-doubleyou (Level 2) - Jetzt verbinden

04.03.2010 um 15:17 Uhr, 3675 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
Microsoft Office
Wochenenden in excel auskommentieren
Frage von Polle81Microsoft Office2 Kommentare

Hallo liebe Leute, ich habe für meine Freundin eine Excel Arbeitsmappe erstellt. Bestehend aus einem Kalender a 12 Blätter ...

Batch & Shell
Ordnerstruktur durchsuchen - passenden Ordner finden und Dateien in Unterordner kopieren
gelöst Frage von AlfornoBatch & Shell6 Kommentare

Hallo, ich habe aktuell das Problem, dass ich gerne pdf Dateien über die Aufgabenplanung per batch in einer Ordnerstruktur ...

LAN, WAN, Wireless
Passender WLAN-AP gesucht
gelöst Frage von sigkillLAN, WAN, Wireless14 Kommentare

Hallo, ich möchte mein Ethernet per WLAN auf drei Nebengebäude erweitern. Dabei sollte es echtes "Ethernet over WLAN" sein, ...

Backup
Die passende Backup-Software gesucht!
Frage von DerKaiserBackup6 Kommentare

Hallo, erst einmal, ich bin ganz neu hier, von daher wäre ich dankbar, wenn ihr jedwede fachliche Abkrüzungen für ...

Neue Wissensbeiträge
Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 26 MinutenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless10 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Wieso kann ich den UPD 7000-9000 nicht freigeben?
Frage von Jayk0bRouter & Routing8 Kommentare

Router: Telekom W 723V Ports: UDP 7000-9000 Können nicht frei gegeben werden. Benutzgrund: Rocket League 7000 – 9000 UDP ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing8 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...