Gutes Community Script / Intranet Script ?

hatschi1810

Angesehenes Mitglied
Kann jemand von euch ein gutes Community Script / Intranet Script empfehlen?

Die Anforderungen sind:
- Open Source
- Dokumentenverwaltung
- Forum
- Userrechte leicht verwaltbar
- Einfacher Kalender
- News posten
- Sehr einfach zu bedienen

Schönerweise gibt es ja sehr viele Systeme die das können, aber das macht die Auswahl nicht leichter, sicher ist aber, das ich kein Nuke-System will, da habe ich schon zu viele gehackte im Web gesehen.
 
Ich habe hier im Nationalpark auf den Galapagos-Inseln gerade phProjekt installiert. Bei der Recherche habe ich noch phpGroupware in Betracht gezogen, mich dann allerdings für phProjekt entschieden.

Auf deine Anforderungen dürften beide Anwendungen zutreffen.

QUOTE Gutes Community Script / Intranet Script ?

Das Wort Script finde ich an dieser Stelle irreführend.
Es handelt sich doch auch bei deiner Anforderung schon um eine ausgewachsene Anwendung?
 
Ich persönlich mag Phprojekt nicht, es ist stümperhaft programmiert. PhpGroupware bzw. dessen Abart eGroupware sehen m.E. schon besser aus. Leider ist das mit dem einfach zu bedienen so eine Sache.
 
QUOTE es ist stümperhaft programmiert.

Gib bitte konkrete Beispiele für diese Behauptung. Eine Entscheidung für eine Software ist immer eine Abwägung von mehreren Faktoren.

Größter Pluspunkt bei phProjekt ist für mich die Usability.
Und wenn ein System noch so toll programmiert ist, kann man es in die Tonne treten, wenn es hinterher keiner versteht und anwenden kann.
Ich persönlich habe da als Anwender sehr schlechte Erfahrungen mit Livelink gemacht.
Die Benutzung dieser Software war für mich so undurchsichtig, dass ich persönlich von der Einstellung wegegangen bin, man könnte durch gute Schulung und Dokumentation ein in Benutzerfreundlichkeits-Belangen schlechtes System noch retten.
Im direkten Vergleich zwischen Lifelink und phProjekt habe ich hinterher bei phProjekt paradiesische Zustände vorgefunden (auch wenn ein Vergleich nicht unbedingt angebracht ist wegen der unterschiedlichen Ansätze).


Das Softwaredesign von phProjekt finde ich persönlich in Ordnung. Negativ aufgefallen ist mir das Frame-Konzept und die Register-Global-Verwendung. Beides kann man bei einem Einsatz im geschlossenen Intranet hinnehmen.
 
QUOTE
QUOTE es ist stümperhaft programmiert.


Gib bitte konkrete Beispiele für diese Behauptung. Eine Entscheidung für eine Software ist immer eine Abwägung von mehreren Faktoren.

Das ist keine Behauptung, das ist meine Meinung ;-) Es ist Open Source, schau rein...

Hier eine beliebige Datei.

CODE // notes_view.php - PHProjekt Version 4.1
// copyright © 2000-2003 Albrecht Guenther ag@phprojekt.com
// www.phprojekt.com
// Author: Albrecht Guenther

// check whether the lib has been included - authentication!
if (!defined("lib_included")) { die("Please use index.php!"); }
// check role
if (check_role("notes") < 1) { die("You are not allowed to do this!"); }
include_once("$lib_path/access_form.inc.php");

$include_path = $path_pre."lib/permission.inc.php";
include_once $include_path;

// fetch data from record
if ($ID > 0) {
// fetch values from db
$result = db_query("select ID,von,name,remark,contact,ext,div1,div2,projekt,sync1,sync2,acc,acc_write
from ".DB_PREFIX."notes
where (acc like 'system' or ((von = $user_ID or acc like 'group' or acc like '%\"$user_kurz\"%') and $sql_user_group)) and
".DB_PREFIX."notes.ID = '$ID'") or db_die();
$row = db_fetch_row($result);
if (!$row[0]) { die("You are not privileged to do this!"); }
if (($row[1] <> $user_ID and $row[12] <> 'w') or check_role("notes") < 2) { $read_o = 1; }
else $read_o = 0;

check_viewed($row[0], $user_ID, "notes", true);
}

// display input form
$hidden = array_merge(array('ID'=>$ID,'mode'=>'data'), $view_param);
if(SID) { $hidden['PHPSESSID'] = $PHPSESSID; }
echo "<br><table border=0 bgcolor=$bgcolor2>\n";
// title and link to help file
echo "<tr><td><a href='$doc/notes.html' target=m><b>$o_notes</b></a></td>\n";
echo "<tr><td><form action='notes.php' method='post' name=frm onSubmit=\"return chkForm('frm','title','$opt_bm4!')\">\n";
hidden_fields($hidden);
// title ...
echo "<tr><td colspan=2>$forum_text5: <input type='text' name='title' size='65' value='".html_out($row[2])."'".read_o($read_o).">\n";
echo "(".$l_text7.": ".slookup('users','nachname,vorname','ID',$row[1]).")</td></tr>\n";
// ... and remark
echo "<tr><td><textarea rows=10 cols=70 name=remark wrap=physical".read_o($read_o).">".html_out($row[3])."</textarea></td><tr></table>\n";

echo "<table border=0>\n";
// contact link
if ($adressen and !$contacts_nolink) {
if (!$contact_ID) { $contact_ID = $row[4]; }
echo "<tr><td><a href='javascript:show(\"$sid\")'>$proj_text12</a>:</td><td> <select name=contact".read_o($read_o).">\n";
echo "<option value=0>\n";
$result2 = db_query("select ID, nachname, vorname
from ".DB_PREFIX."contacts
where (acc_read like 'system' or ((von = $user_ID or acc_read like 'group' or acc_read like '%\"$user_kurz\"%') and $sql_user_group))
order by nachname") or db_die();
while ($row2 = db_fetch_row($result2)) {
echo "<option value='$row2[0]'";
if ($contact_ID == $row2[0]) { echo " selected"; }
echo ">$row2[1], $row2[2]\n";
}
echo "</select></td>\n";
}

// project link
if ($projekte) {
if (!$projekt_ID) { $projekt_ID = $row[8]; }
echo "<td>$l_text11:</td><td> <select name=projekt".read_o($read_o)."><option value=0>\n";
// prepare query for function
$query = "where $sql_user_group";
// call function to show all required elemts in a tree structure in the select box
show_elements_of_tree("projekte","name",$query,"personen"," order by name",$projekt_ID,"parent",0);

echo "</select></td></tr>\n";
}
// separation bar
echo "<tr><td colspan=4><br><img src='$img_path/s.gif' width=500 height=1><br><br></td></tr>\n";

// access
// relevant field in db=nr.11, exclude the user itself, field number of acc_write, no parent possible, write access=yes
echo "<tr><td colspan=2>".access_form(11, 1, 12, 0, 1)."</td></tr>\n";

// actions submit form, copy, print etc. only possible if this user has write access for notes in his role
if (check_role("notes") > 1 and !$read_o) {
echo"<tr><td colspan=2><input type=image src='$img_path/los.gif' border='0' id='tr'><br></td></tr>";
}
// back
echo "<tr><td colspan=2><a href='notes.php?mode=view&sort=$sort&up=$up&page=$page&perpage=$perpage&keyword=$keyword&filter=$filter".$sid."'>$back</a></td></tr>\n";
echo "</table></td></tr></table>\n";



?>


Ich persönlich bin immernoch mit der Evaluation eines passendes Scriptes beschäftigt und suche etwas, das man effizient erweitern kann. Der von Phprojekt geprägte Prozeduralität-in-Files-Modularität-durch-Files-alles-vermischen-und-gut-schütteln Ansatz überfordert leider meine bescheidenen PHP Fertigkeiten ;-) Oder war es die Geduld? Auch egal.

Ich denke aber, Hatschis Anforderungen werden von Phprojekt alle erfüllt.
 
QUOTE Das ist keine Behauptung, das ist meine Meinung ;-) Es ist Open Source, schau rein...

Ich kenne den Code. Deshalb will ich ja Fakten..


QUOTE Prozeduralität-in-Files-Modularität-durch-Files-alles-vermischen-und-gut-schütteln Ansatz

Wenn man den Ansatz so nennen kann: Der Stil ist sauber durchgehalten worden und überall im Projekt so zu finden. ;-)
 
Danke für eure Tipps!

Der erste Testkandidat ist http://www.runcms.org/public/modules/news/ , das ist zwar ein typisch „Block-Portal“ hat aber die wichtigste Hürde, durch einen Nicht-Techniker administrierbar zu sein, locker genommen. Nicht-Techniker als Admin schließt sehr viele Systeme aus, weil die meisten doch zu komplex sind.

runcms kann zwar nichts besonderes, aber das ist schon fast wieder ein Vorteil, weil es mit den wenigen Funktionen den Bedarf so ziemlich erfüllen würde.

Ein wichtiges Kriterium bei der Auswahl ist, dass es Anfänger auch ohne Einarbeitung bedienen können. Das ist bei leider runcms aber auch etwas was besser sein könnte.

Ich nehme mal an das ich in den nächsten Wochen noch ein paar Kandidaten testen werde.
 
Zurück
Oben