Magento Forum

   
Page 5 of 5
Adressformular Pflichtfelder
 
Erma
Member
 
Total Posts:  31
Joined:  2011-04-30
 
holodoktor - 25 July 2012 12:26 PM

Erma - 24 July 2012 02:50 AM

Ich habe Magento 1.5.1
Ich habe deine Anleitungen richtig gefolgt aber ohne Erfolg.
Alle cache und var gelehrt.

Was könnte sein ?

Hallo Erma,

ich habe leider keine Magento 1.5.1er Installation zur Hand. Um Dir helfen zu können, bräuchte ich mehr Informationen. Steht das Projekt schon online? Dann poste bitte einen Link. Was genau funktioniert nicht so wie gewünscht? Gibt es die Code-Stellen? Hat sich der Code auch im Shop nach dem Ändern verändert (also fehlen da jetzt auch die CSS-Klassen)?

Viele Grüße

holodoktor

Hallo Holodoktor.

Danke

Steht das Projekt schon online? Ja

Dann poste bitte einen Link. https://www.rsr-shop.com/customer/account/create/

Was genau funktioniert nicht so wie gewünscht? Telephon wird nicht mehr als pfichtfeld angezeigt aber bei abschluss der registrierung wir dies noch verlangt.

Gibt es die Code-Stellen? Bin im Thema zuwenig fit um antworten zu konnen.

Hat sich der Code auch im Shop nach dem Ändern verändert (also fehlen da jetzt auch die CSS-Klassen)? Bin im Thema zuwenig fit um antworten zu konnen.

Danke fuer deine hilfeeee

Ciao ciao

Erma

 
Magento Community Magento Community
Magento Community
Magento Community
 
holodoktor
Jr. Member
 
Total Posts:  4
Joined:  2011-10-08
 
Erma - 02 August 2012 12:29 AM

> Was genau funktioniert nicht so wie gewünscht?
Telephon wird nicht mehr als pfichtfeld angezeigt aber bei abschluss der registrierung wir dies noch verlangt.

Hallo Erma,

für mich sieht es danach aus, dass der Eintrag in der Datenbank noch nicht geändert ist:

Anschließend stand aber leider serverseitig die Pflicht für Telefonnummer weiter im Weg. Dies konnte ich dann analog zum Hinweis von m.wild in der Tabelle eav_attribute nachvollziehen. Dort gibt es einen Datensatz mit dem Wert “telephone” als attribute_code. Diesen habe ich in der Spalte “is_required” von 1 auf 0 geändert.

Also mit einem Tool in Datenbank gehen und den Eintrag ändern - falls Du Dich da nicht sicher fühlst, dann lass es von jemandem machen.

Viele Erfolg!

holodoktor

 
Magento Community Magento Community
Magento Community
Magento Community
 
Erma
Member
 
Total Posts:  31
Joined:  2011-04-30
 
holodoktor - 02 August 2012 08:49 AM

Erma - 02 August 2012 12:29 AM

> Was genau funktioniert nicht so wie gewünscht?
Telephon wird nicht mehr als pfichtfeld angezeigt aber bei abschluss der registrierung wir dies noch verlangt.

Hallo Erma,

für mich sieht es danach aus, dass der Eintrag in der Datenbank noch nicht geändert ist:

Anschließend stand aber leider serverseitig die Pflicht für Telefonnummer weiter im Weg. Dies konnte ich dann analog zum Hinweis von m.wild in der Tabelle eav_attribute nachvollziehen. Dort gibt es einen Datensatz mit dem Wert “telephone” als attribute_code. Diesen habe ich in der Spalte “is_required” von 1 auf 0 geändert.

Also mit einem Tool in Datenbank gehen und den Eintrag ändern - falls Du Dich da nicht sicher fühlst, dann lass es von jemandem machen.

Viele Erfolg!

holodoktor

Hallo Halodoktor.

Danke.
Leider sieht de Einstellng in der DB richtig aus.

Siehe Screenshot.

Hast Du weitere Idee ?

Danke

Ciao

Erma

Image Attachments
SQL.JPG
 
Magento Community Magento Community
Magento Community
Magento Community
 
holodoktor
Jr. Member
 
Total Posts:  4
Joined:  2011-10-08
 
Erma - 02 August 2012 01:06 PM

Leider sieht de Einstellng in der DB richtig aus.

Siehe Screenshot.

Hast Du weitere Idee ?

Hallo Erma,

stimmt, die Datenbankeinstellung sieht gut aus. Nun müsste man tiefer in den Code von Magento einsteigen und nachvollziehen, warum er das telephone-Feld trotzdem noch verlangt. Eigentlich sollte das jedoch durch die Erweiterung abgedeckt sein.

Ab hier kann ich Dir erst mal nicht weiterhelfen.

Viele Grüße

holodoktor

 
Magento Community Magento Community
Magento Community
Magento Community
 
Erma
Member
 
Total Posts:  31
Joined:  2011-04-30
 
holodoktor - 02 August 2012 09:13 PM

Erma - 02 August 2012 01:06 PM

Leider sieht de Einstellng in der DB richtig aus.

Siehe Screenshot.

Hast Du weitere Idee ?

Hallo Erma,

stimmt, die Datenbankeinstellung sieht gut aus. Nun müsste man tiefer in den Code von Magento einsteigen und nachvollziehen, warum er das telephone-Feld trotzdem noch verlangt. Eigentlich sollte das jedoch durch die Erweiterung abgedeckt sein.

Ab hier kann ich Dir erst mal nicht weiterhelfen.

Viele Grüße

holodoktor

Danke trotzdem.

Grüsse

Erma

 
Magento Community Magento Community
Magento Community
Magento Community
 
Erma
Member
 
Total Posts:  31
Joined:  2011-04-30
 

Hallo zusammen.

Ich bekommen den Telefon pflichtfel nicht weg.
Ich habe die hier genannten Dateien richtig geändert und auch die DB ist richtig eingestellt.
Alles mehrmals überprüft.

Ich finde auch auf den EN Forum auch mehrere Leute die das selben Problem haben und keine lösung finden.
Da muss ne Hacken sein.
Weisst jemand an was es liegen könnte ?

Danke

Erma

 
Magento Community Magento Community
Magento Community
Magento Community
 
Xerion
Jr. Member
 
Total Posts:  1
Joined:  2012-10-04
 

Hallo,

ich habe das selbe Problem, die JavaScript Überprüfung will einfach nicht für das Telefon Feld deaktiviert werden. Ich habe in einem englischen Forum schon einen post zu Magento 1.7.0.2 gefunden, jedoch hilft der nicht wirklich, da das Problem bestehen bleibt.

Validation seems to have moved over to app/code/core/Mage/Eav/Model/Form.php

Around line 390, you can find the familiar:

$result = $dataModel->validateValue($data[$attribute->getAttributeCode()]);

Replace it with
if($attribute->getAttributeCode()!=’telephone’) {
$result = $dataModel->validateValue($data[$attribute->getAttributeCode()]);
}

and things should be ok (tested in Version 1.7.0.2)

billing.php, shipping.php etc. habe ich alle geändert. Trotzdem erscheint weiterhin die Fehlermeldung “Bitte geben Sie die Telefonnummer an.”

 
Magento Community Magento Community
Magento Community
Magento Community
 
freesh
Jr. Member
 
Total Posts:  7
Joined:  2011-04-01
 

Hi,

ich glaube ich habe die Lösung für Magento 1.7.0.2:

Da die Magentoentwickler sich dachten, es wäre zu einfach die Validation für dieses sinnlose Feld an den bisherigen Stellen zu entfernen, haben sie in weiser Voraussicht einfach ein paar mehr Abfragen integriert. Damit auch ja keinem von uns langweilig wird. Obwohl Ostern noch weit weg ist, habe ich ein wenig gesucht und eine weitere Validation in app/code/core/Mage/Customer/Model/Address/Abstract.php gefunden.

in Zeile 355 finden wir folgende Methode vor:

public function validate()
    
{
        $errors 
= array();
        
$this->implodeStreetAddress();
        if (!
Zend_Validate::is($this->getFirstname(), 'NotEmpty')) {
            $errors[] 
Mage::helper('customer')->__('Please enter the first name.');
        
}

        
if (!Zend_Validate::is($this->getLastname(), 'NotEmpty')) {
            $errors[] 
Mage::helper('customer')->__('Please enter the last name.');
        
}

        
if (!Zend_Validate::is($this->getStreet(1), 'NotEmpty')) {
            $errors[] 
Mage::helper('customer')->__('Please enter the street.');
        
}

        
if (!Zend_Validate::is($this->getCity(), 'NotEmpty')) {
            $errors[] 
Mage::helper('customer')->__('Please enter the city.');
        
}

        
if (!Zend_Validate::is($this->getTelephone(), 'NotEmpty')) {
            $errors[] 
Mage::helper('customer')->__('Please enter the telephone number.');
        
}

        $_havingOptionalZip 
Mage::helper('directory')->getCountriesWithOptionalZip();
        if (!
in_array($this->getCountryId(), $_havingOptionalZip)
            && !
Zend_Validate::is($this->getPostcode(), 'NotEmpty')
        ) 
{
            $errors[] 
Mage::helper('customer')->__('Please enter the zip/postal code.');
        
}

        
if (!Zend_Validate::is($this->getCountryId(), 'NotEmpty')) {
            $errors[] 
Mage::helper('customer')->__('Please enter the country.');
        
}

        
if ($this->getCountryModel()->getRegionCollection()->getSize()
               && !
Zend_Validate::is($this->getRegionId(), 'NotEmpty')
               && 
Mage::helper('directory')->isRegionRequired($this->getCountryId())
        ) 
{
            $errors[] 
Mage::helper('customer')->__('Please enter the state/province.');
        
}

        
if (empty($errors) || $this->getShouldIgnoreValidation()) {
            
return true;
        
}
        
return $errors;
    
}

Dort können wir uns der ersten Validation nun entledigen.

Die 2. finden wir in app/code/core/Mage/Eav/Model/Form.php in Zeile 378:

public function validateData(array $data)
    
{
        $errors 
= array();
        foreach (
$this->getAttributes() as $attribute{
            
if ($this->_isAttributeOmitted($attribute)) {
                
continue;
            
}
            $dataModel 
$this->_getAttributeDataModel($attribute);
            
$dataModel->setExtractedData($data);
            if (!isset(
$data[$attribute->getAttributeCode()])) {
                $data[$attribute
->getAttributeCode()null;
            
}
            $result 
$dataModel->validateValue($data[$attribute->getAttributeCode()]);
            if (
$result !== true{
                $errors 
array_merge($errors$result);
            
}
        }

        
if (count($errors) == 0{
            
return true;
        
}

        
return $errors;
    
}

dort umschließen wir $result = $dataModel->validateValue($data[$attribute->getAttributeCode()]); nun mit einer if-Abfrage um welches Feld es sich handelt:

if($attribute->getAttributeCode()!='telephone'
    $result 
$dataModel->validateValue($data[$attribute->getAttributeCode()]); 
}

Es wird also an 2 Stellen via PHP Validiert. Das erklärt dann auch warum man ohne JS immer nen ganzen Stapel an Meldungen bekommt die alle die selbe Aussage haben. Wie gut das die Magentoentwickler ihr Konstrukt immer so eifrig testen bevor sie es veröffentlichen *hust*

Ansonsten müssen eben noch die üblichen Änderungen in den Templates vorgenommen werden:

<?php echo $this->helper('customer/address')->getAttributeValidationClass('telephone'?>
muss raus und im label des Feldes entfernen wir dann noch class="required” und die em Tags.

Das sollte es dann gewesen sein. Und wie immer bedenken, das ganze nicht in den Coredateien zu machen sondern ganz sorgsam und vorausschauend zu überschreiben. Auch wenn sich in der nächsten Version wieder alles geändert hat und die Suche von neuem beginnen kann… wink

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top
Page 5 of 5