Beiträge von kollegen

    lol, also wenn du schon den Core hackst,


    warum änderst du nicht gleich die eine Zeile wo das Ding gebaut wird? Oder warum nicht ein plugin? Es sind nur 2 trigger.


    ganz einfach: weil ich kein programmierer bin und nicht weiß, wie man ein plug-in baut ;-)

    Vielen Dank für den Hinweis auf das Plugin von reinhold.
    Ich habe es gekauft, sehe aber, dass nur neuen Kunden die Kundennummer zugewiesen werden kann!


    Bestehende Kundennummern (die ellenlangen!!!) können nicht geändert werden!
    Warum steht im Text (VirtueMart) immerf noch "Kundennummer überschreibbar"???


    Ich habe eine individuelle Lösung für mich gefunden:

    Nach längerem Suchen, wie man die automatische Kundennummer in VirtueMart ändern kann und ich zu keinem Ergebnis gekommen bin, hab ich mich drangemacht und einen eigenen Lösungsweg gesucht, der meinen Anforderungen entspricht.
    Da sich die automatische Vergabe nur schwer ändern läßt, gab es eigentlich nur einen Weg: Ein eigenes Feld für meine eigene Kundennummer.


    Bei mir funktioniert das prima. Ich habe jetzt im Backend in der Kundeninfo ein neues Feld, das ich selber ausfüllen und jederzeit auch beliebig ändern kann. Das Frontend hab ich mir dann so angepasst, dass nicht mehr die automatische Nummer, sondern meine individuelle angezeigt wird.


    Da man davon ausgehen muss, dass jede Aktualisierung der VirtueMart-Versionen die unten genannten Änderungen überschreibt (man es als jedesmal neu anpassen müsste!), wäre es super, wenn die Entwickler diese Möglichkeit mit in die nächsten Versionen übernehmen könnten. Das ist wirklich kein Hexenwerk und würde vielen Leuten einiges erleichtern.


    Bitte dran denken: Bevor Ihr etwas ändert, alle Daten unbedingt vorher sichern und falls möglich, die Änderungen auf einer Testseite vorab prüfen!
    Könnte sein, dass ich jetzt in der Hektik etwas vergessen habe. Falls es nicht funktionieren sollte, könnt ihr mich kontakten. Aber ich weise jetzt schon darauf hin, dass ich keinen Support im üblichen Sinne machen werde und selbstverständlich übernehme ich auch keinerlei Garantie. Wenn ihr was ändert, macht ihr es auf eigene Verantwortung.




    So, hier meine Modifikationen (realisiert in "schnaeppchenfuehrer.com" unter Joomla 2.5.11 und VirtueMart 2.0.20b):



    Datenbank:

    Tabelle (euer Suffix)_virtuemart_vmusers eine Zeile nach

    customer_number


    einfügen. Bei mir:


    my_customer_number, char(32, uft8_general_ci (keine Attribute, Null=Nein)




    Backend:


    Datei: edit_vmshopper.php
    ca. Zeile 61
    eine neue Tabellenzeile einfügen:


    <!-- Feld für eigene Kundennummer -->
    <tr>
    <td class="key">
    <label for="my_customer_number">
    <?php echo JText::_('COM_VIRTUEMART_USER_FORM_MY_CUSTOMER_NUMBER') ?>:
    </label>
    </td>
    <td>
    <input type="text" class="inputbox" name="my_customer_number" size="40" value="<?php echo $this->lists['mycustnumber']; ?>" />
    </td>
    </tr>
    < !-- EO Feld für eigene Kundennummer -->



    Datei: view.html.php
    ca. Zeile 121
    hinter:


    $this->lists['custnumber'] = $model->getCustomerNumberById();


    einfügen:


    // Feld für eigene Kundennummer
    $this->lists['mycustnumber'] = $model->get_my_CustomerNumberById();




    Datei: models/user.php
    ca. Zeile 1424
    hinter:

    function getCustomerNumberById()
    {
    $_q = "SELECT `customer_number` FROM `#__virtuemart_vmusers` "
    ."WHERE `virtuemart_user_id`='" . $this->_id . "' ";
    $_r = $this->_getList($_q);
    if(!empty($_r[0])){
    return $_r[0]->customer_number;
    }else {
    return false;
    }


    }


    einfügen:

    /** Funktion für eigenes Kundennummerfeld
    */
    function get_my_CustomerNumberById()
    {
    $_q = "SELECT `my_customer_number` FROM `#__virtuemart_vmusers` "
    ."WHERE `virtuemart_user_id`='" . $this->_id . "' ";
    $_r = $this->_getList($_q);
    if(!empty($_r[0])){
    return $_r[0]->my_customer_number;
    }else {
    return false;
    }


    }



    Datei: tables/vmusers.php
    ca. Zeile 38
    hinter:


    var $customer_number = 0;


    einfügen:

    /* Feld für eigene Kundennummer */
    var $my_customer_number = 0;




    Das müßte es fürs Backend gewesen sein, kommen wir zum


    Frontend:


    Datei: edit_vmshopper.php
    ca. Zeile 65
    hinter:


    echo $this->lists['custnumber'];
    } ?>
    </td>
    </tr>


    einfügen:


    <!-- Feld für Ausgabe der eigenen Kundennummer -->
    <td class="key">
    <label for="my_customer_number">
    <?php echo JText::_('COM_VIRTUEMART_USER_FORM_MY_CUSTOMER_NUMBER') ?>:
    </label>
    </td>
    <td>
    <?php if(Permissions::getInstance()->check('admin')) { ?>
    <input type="text" class="inputbox" name="my_customer_number" id="my_customer_number" size="40" value="<?php echo $this->lists['mycustnumber'];
    ?>" />
    <?php } else {
    echo $this->lists['mycustnumber'];
    } ?>
    </td>
    </tr>
    < !-- EO Feld für Ausgabe der eigenen Kundennummer -->


    (Hinweis: Falls man die automatisch vergebene Nummer nicht mehr sehen will, einfach die darüberliegende Tabellenzeile auskommentieren oder löschen.


    Datei: view.html.php
    ca. Zeile 383
    hinter:

    $this->_lists['custnumber'] = $this->_model->getCustomerNumberById();


    einfügen:


    // Feld zur Anzeige der eigenen Kundennummer -->
    $this->_lists['mycustnumber'] = $this->_model->get_my_CustomerNumberById();



    Nicht vergessen, die Sprachdateien de.DE.com_virtuemart.ini im Front- und Backend zu ergänzen!


    Ich hoffe, dass ich nix vergessen und ein bißchen weitergeholfen habe ... Viel Erfolg!