Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Sub-Admin auf eine Kategorie beschränken

    Haina

    • Fördermitglied
    • Beiträge: 217
    Sub-Admin auf eine Kategorie beschränken
    am: 13. August 2010, 17:36:10
    Hallo Leute könnte bißchen Hilfe oder paar Denkansätze gebrauchen..

    Möchte einen externen Mitarbeiter Artikel anlegen lassen.
    Adminrechte auf diese Funktion zu beschränken geht ja.

    Möchte diesem Sub-Admin am Anfang aber nicht in unseren gesamten Kategorien rumwurschteln lassen!
    Werde Ihm EINE Hauptkategorie anlegen, nur für Admins sichtbar, dort soll er sich austoben können sprich Unterkategorien und Artikel anlegen können.

    Die restlichen Shopkategorien soll er am besten gar nicht sehen.
    Vielleicht kennt ja einer von Euch schon ne Contrib, nicht eines dieser fetten aufgeblasenen Teile sonder was schön schlankes.

    Denke sonst werd ich mich wohl selbst ransetzen müssen.
    Mein minimalistischer Denkansatz wäre, bitte auch dazu Verbesserungsvorschläge:

    das ich bei den Adminrechten noch ne Zeile einbaue in die ich die erlaubte Cat eintrage.
    Ist das Feld leer funktioniert der Shop wie immer, steht da aber was drin
    dann muß ich halt noch paar PHPs mit ner if-Abfrage versehen.

    Wird mich zwar viel Nerven kosten das zu realisieren da ich kein Coder bin,
    aber na ja.



    Linkback: https://www.modified-shop.org/forum/index.php?topic=7345.0

    Haina

    • Fördermitglied
    • Beiträge: 217
    Sub-Admin auf eine Kategorie beschränken
    Antwort #1 am: 14. August 2010, 19:27:14
    äähhmm - bin ich hier in der falschen Ecke wo vielleicht gar keine Coder reingucken,
    na ist ja egal,
    mein Ziel ist nach wie vor eine Funktion zu schreiben die dem einen oder anderen nützlich ist und das ganze so schlank und konform zu Bestehendem das man es evtl. generell in die modified eCommerce Shopsoftware einbauen kann, schreib deshalb schon mal ne install mit...
    (Die customer2cat möchte ich deshalb nicht nehmen)

    Was ich schon hab und gut funktioniert:

    __________________________________________
    FEATURE-LIST:
    - beschränkt Sub-Administratoren die Kategorieansicht bei Artikeln im Adminbereich

    ANWENDUNGSBEREICH:
    neue oder externe Mitarbeitern können Artikel in EINER Kategorie anlegen
    ohne das diese Mitarbeiter Zugriff auf bestehende Kategorien haben

    Alle anderen XT-Funktionen wie "Kategorie nur für Admin sichtbar",
    aktiv oder inaktiv etc. sollen erhalten bleiben.

    __________________________________________
    INSTALLATION:
    ______________________
    1. Datenbank-Änderung vornehmen (alternativ install.sql einspielen):

    Code: SQL  [Auswählen]
    -- sql-script for xtc_addon_shs_admin2cat
    ALTER TABLE  ADD  INT( 11 ) DEFAULT '0' NOT NULL ;
    UPDATE  SET admin2cat = 0;
    Dadurch wird die Tabelle admin_access um das Feld admin2cat erweitert
    ______________________
    2. Änderungen an der accounting.php vornehmen -

    - ADMIN\accounting.php (46, 178, 203)

    ca. Z.46 VOR der Zeile..
          xtc_redirect(xtc_href_link(FILENAME_CUSTOMERS, 'cID=' . (int)$_GET['cID'], 'NONSSL'));
            break;
    folgendes einfügen:

    Code: PHP  [Auswählen]
            // shs start admin2cat
            if(isset($_POST['admin2cat']))
              {  xtc_db_query("UPDATE ".TABLE_ADMIN_ACCESS." SET admin2cat ='".$_POST['admin2cat']."' where customers_id='".(int)$_GET['cID']."'");
              }
            // shs end  admin2cat
    ca. Z.177 NACH ..
        for ($i = 0; $i <$columns; $i++) {
        $field=mysql_field_name($fields, $i);
    folgendes einfügen ..

    Code: PHP  [Auswählen]
        // shs start admin2cat
        $fieldlen = mysql_field_len($fields, $i);
         // shs end admin2cat
    ca. Z.206 ERSETZEN ...

    Code: PHP  [Auswählen]
        echo '<tr class="dataTable">
        <td style="border: 1px solid; border-color: #000000;" width="10" bgcolor="'
    .$color.'">'.xtc_draw_separator('pixel_trans.gif',15, 15).'</td>
            <td width="100%" class="dataTableContentRow">
            <input type="checkbox" name="access[]" value="'
    .$field.'"'.$checked.'>
            '
    .$field.'</td>
            <td></td></tr>'
    ;
        }
    }
    ?>
        </table>
    DURCH ..

    Code: PHP  [Auswählen]
        echo '<tr class="dataTable">';

        // shs start admin2cat
        if ($field == 'admin2cat')
         { echo '<td style="border: 1px solid; border-color: #000000;" width="10" bgcolor="'.$color.'">'.xtc_draw_separator('pixel_trans.gif',15, 15).'</td>
            <td width="100%" class="dataTableContentRow">
            <input type="text" name="'
    .$field.'" value="'.$admin_access[$field].'" maxlength="11">
            '
    .$field.'</td>
            <td></td></tr>'
    ;
           }
        else   // shs end admin2cat
        { echo '<td style="border: 1px solid; border-color: #000000;" width="10" bgcolor="'.$color.'">'.xtc_draw_separator('pixel_trans.gif',15, 15).'</td>
          <td width="100%" class="dataTableContentRow">
          <input type="checkbox" name="access[]" value="'
    .$field.'"'.$checked.'>
         '
    .$field.'</td>
          <td></td></tr>'
    ;
        }
       }

    }
    ?>
        </table>    
    Dadurch wird in der letzten Zeile der Adminrechte das neue Feld admin2cat angezeigt,
    und zwar als numerisches Eingabefeld.
    Hier später die Categorie_ID eintragen die der SubAdmin bearbeiten soll. Die ID_Nummer steht
    in der DB oder im Browserkopf wenn Sie auf der entsprechenden Hauptkategorie stehen.
    _________________________  

    So und nun wüßte ich gerne von jemanden der den Adminbereich des XTC wirklich gut kennt, ob es für die entsprechende Feldabfage admin2cat eine zentrale Stelle gibt oder ob ich das in die einzelnen Views reinbauen muß wie z.B. categories_view.php etc.

    Wie schon gesagt: da ich kein Coder bin wäre ich für ne kleine Hilfe dankbar

    Das eintragen der gewünschten Kategorie das derzeit schon funktioniert sieht dann nach dem einflicken o.g. Codes so aus...

     :? [ Für Gäste sind keine Dateianhänge sichtbar ]

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Sub-Admin auf eine Kategorie beschränken
    Antwort #2 am: 14. August 2010, 22:26:22
    Sorry, der Wunsch ist einfach ein wenig sehr speziell. ;-)

    Grüße

    Torsten

    Haina

    • Fördermitglied
    • Beiträge: 217
    Sub-Admin auf eine Kategorie beschränken
    Antwort #3 am: 15. August 2010, 07:28:28
    OK, versteh ich.
    Dachte halt das bei irgendwem der sportliche Ehrgeiz geweckt wird.

    Bei der Frage gings mir einfach darum das es im XTC ja zentrale Stellen gibt, z.B. wo der Kategoriebaum aufgetröselt wird oder die Rechte abgefragt und übergeben werden.
    Extern habe ich mit meinem Co sowas schon programmiert für ne Schnittstelle zum XTC,
    aber wo genau IM Xtc die Stelle ist wissen andere hier besser.

    Dann werd ich mich halt mal auf die Suche machen.
     :morning:

    web28

    • modified Team
    • Beiträge: 9.404
    Sub-Admin auf eine Kategorie beschränken
    Antwort #4 am: 15. August 2010, 12:58:10
    Hallo enricosh,

    ich finde das ist eine Superidee! Und Du hast ja schon einiges geschafft, Respekt!

    Die Tabelle admin_access wird in admin/inludes/column_left.php abgefragt.

    $admin_access['admin2cat'] steht Dir damit in jeder Admindatei zur Verfügung. Mit den Kategorien kann ich Dir im Moment nicht weiterhelfen, da müsste ich selber erst einmal suchen.

    xtc_get_category_tree sollte aber in admin/inludes/functions/general.php zu finden sein (Hier sind fast alle Admin Funktionen drin)

    Gruss Web28

    Haina

    • Fördermitglied
    • Beiträge: 217
    Sub-Admin auf eine Kategorie beschränken
    Antwort #5 am: 15. August 2010, 20:25:56
    Hallo Web28, ja finde die Idee auch super.
    Gibt mit Sicherheit einige Shopbetreiber die an der Stelle der Schuh drückt.
    Mit etwas Fantasie kann man noch mehr daraus machen.  :)

    Danke für Dein Mitdenken. So in etwa hab ich mir das auch vorgestellt. Mal sehen ob morgen die Zeit dafür ist. Optimum wäre eine einzige zentrale Stelle wo ich das Feld dann noch abfrage und fertig wäre der Lack. Vor allem bleibt der bisherige XTC in seinen Funktionen völlig unberührt wenn das Feld leer ist.

    Geht mir bei solchen Sachen immer darum:
    a) möglichst an der Oberfläche dort einfügen wo's der Anwender intuitiv eh sucht
    b) soll Null Performance-Einbußen bringen
    c) muss unbedingt möglichst schlanker Code sein (anders kann's ja jeder) :) (Späßchen)

    P.S.: Solche Sachen mach ich nicht oft und auch nicht mit gewerblicher Absicht sondern nur für 2 Bekannte wenn ich gerade Lust habe. Aber wenn ich mich schon drüber mache versuch ich mein Hirn mit einzuschalten und hör mir gerne auch andere Meinungen an, denn mir geht es ja wie jedem Menschen manchmal, Wald, Bäume...

    Haina

    • Fördermitglied
    • Beiträge: 217
    Sub-Admin auf eine Kategorie beschränken
    Antwort #6 am: 16. August 2010, 18:28:58
    OK. hab heute die Zeit gefunden und die Aufgabe mit meinem Co gelößt.
     :!:
    Es müssen dazu nur noch die 2 Dateien categories.php und categories_view.php geringfügig erweitert werden. Danach für den Sub-Admin wie Eingangs gewünscht nur noch die zugewiesene Categorie erreichbar, auch was die Quicksearch oder die Stringsuche betrifft.
    Scheint absolut sauber zu laufen, bißchen testen werde ich noch.

    Änderungen an der categories.php wie folgt...
    *** ca. Z. 134 NACH...

    Code: PHP  [Auswählen]
                    case 'insert_category' :
    den folgenden Code einsetzen...

    Code: PHP  [Auswählen]
            // SHS Start admin2cat
                if($admin_access['admin2cat'] != 0)
                  { if ($current_category_id == 0) $current_category_id = $admin_access['admin2cat'];
                  }
            // SHS End admin2cat
     
    *** ca. Z.147 NACH...

    Code: PHP  [Auswählen]
                    case 'insert_product' :
    folgenden Code einfügen...

    Code: PHP  [Auswählen]
            // SHS Start admin2cat
                if($admin_access['admin2cat'] != 0)
                  { if ($current_category_id == 0) $current_category_id = $admin_access['admin2cat'];
                  }
            // SHS End admin2cat
     
    *** ca. Z. 424 NACH ...

    Code: PHP  [Auswählen]
            if (!$cPath) { $cPath = '0'; }
    folgenden Code einfügen ...

    Code: PHP  [Auswählen]
            // SHS Start admin2cat
        if($admin_access['admin2cat'] != 0)
          { if ($cPath == 0) $cPath = $admin_access['admin2cat'];
          }
            // SHS End admin2cat
    Die Änderungen an der categories_view.php sind geringfügig komplexer, diese möchte ich nochmal  überprüfen.

    Schlage vor das diese sinnvolle Erweiterung in zukünftige Versionen der modified eCommerce Shopsoftware mit einfließt. Falls die Entscheidungsträger zum gleichen Ergebnis kommen bitte kurz eine PM, ich sende dann die Codes.

    Grüße
     :pro:

    8 Antworten
    4383 Aufrufe
    27. August 2013, 15:30:39 von noRiddle (revilonetz)
    1 Antworten
    838 Aufrufe
    15. Oktober 2020, 10:19:26 von peter111
    17 Antworten
    971 Aufrufe
    28. Januar 2024, 11:30:43 von p3e
    5 Antworten
    629 Aufrufe
    14. April 2023, 12:51:14 von hpzeller
               
    anything