Simple Machines Community Forum

SMF Support => Language Specific Support => Ελληνικά (Greek) => Topic started by: Eva on October 19, 2007, 09:45:52 AM

Title: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: Eva on October 19, 2007, 09:45:52 AM
Δημιούργησα χειροκίνητα ένα νέο πεδίο στο προφίλ με όνομα 'mobilephone' το οποίο όλα τα μέλη πρέπει να συμπληρώσουν κατά την εγγραφή.
Πριν αναβαθμίσω το φόρουμ σε SMF1.1.4 ο κώδικας δούλευε μια χαρά αλλά όταν ξαναπέρασα χειροκίνητα τον κώδικα στα νέα αρχεία source και template κάτι πήγε στραβά μιας και υπάρχουν σημαντικές διαφορές μεταξύ των παλαιών και των νέων αρχείων...  :(

Η φόρμα εγγραφής λειτουργεί κανονικά και οι κανόνες του validation που έχω ορίσει δουλεύουν επίσης. Το πρόβλημα ξεκινάει στο προφιλ...

Όταν κάποιο μέλος προσπαθεί να αλλάξει τις ρυθμίσεις λογαριασμού του (συμπεριλαμβανομένου και του κινητού) ο κώδικας λειτουργεί και εμφανίζεται σφάλμα όταν δεν συμπληρωθεί το πεδίο ή δεν ακολουθεί τους κανόνες που έχω ορίσει.

Το πρόβλημα είναι ότι τα σφάλματα αυτά εμφανίζονται ακόμα και όταν κάποιος προσπαθεί να αποθηκεύσει οποιαδήποτε μορφής αλλαγή στις ρυθμίσεις του προφίλ του (όπως πχ. στις ρυθμίσεις ειδοποιήσεων ή στις ρυθμίσεις προσωπικών μηνυμάτων) όπου φυσικά το πεδίο του κινητού δεν υπάρχει...

Έχετε καμία ιδέα γιατί μπορεί να συμβαίνει αυτό?  ???

Ο κώδικας που χρησιμοποίησα στο Profile.php είναι:

// Want to change their mobile number?
{
if (!isset($_POST['mobilephone']) || trim($_POST['mobilephone']) == '')
$post_errors[] = 'no_mobilephone';

if (preg_match('~^[6]+[9]+[3-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]$~', stripslashes($_POST['mobilephone'])) == 0)
$post_errors[] = 'bad_mobilephone';


$profile_vars['mobilephone'] = '\'' . $_POST['mobilephone'] . '\'';
}


Και τον τοποθέτησα κάτω από αυτό:

// Check the name and email for validity.
if (trim($_POST['emailAddress']) == '')
$post_errors[] = 'no_email';
if (preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@[\w\-]+(\.[\w\-]+)*(\.[\w]{2,6})$~', stripslashes($_POST['emailAddress'])) == 0)
$post_errors[] = 'bad_email';

// Email addresses should be and stay unique.
$request = db_query("
SELECT ID_MEMBER
FROM {$db_prefix}members
WHERE ID_MEMBER != $memID
AND emailAddress = '$_POST[emailAddress]'
LIMIT 1", __FILE__, __LINE__);
if (mysql_num_rows($request) > 0)
$post_errors[] = 'email_taken';
mysql_free_result($request);


$profile_vars['emailAddress'] = '\'' . $_POST['emailAddress'] . '\'';

}



Πιστεύετε ότι το θέμα προκύπτει από το σημείο στο οποίο τοποθέτησα τον κώδικα ή λείπει κάτι άλλο το οποίο εγώ αγνοώ?  :-[

Ευχαριστώ εκ των προταίρων :)
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: agridoc on October 19, 2007, 03:24:39 PM
Οι αλλαγές στο Profile.php δεν είναι μεγάλες στην 1.1.4. Από τι version έγινε αναβάθμιση;

Υπάρχει backup του φόρουμ με τα αρχεία, όπως λειτουργούσαν σωστά;

Είναι σίγουρο οτι θα μπει στο Profile.php και όχι στο Profile.template.php;

Ισως σου φανεί χρήσιμο το Creating custom profile fields in SMF (http://www.simplemachines.org/community/index.php?action=post;topic=201208.0;num_replies=0).
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: Eva on October 19, 2007, 04:13:13 PM
Έχω κάνει αλλαγές και στο profile_template και σε άλλα αρχεία, αλλά μετά από διάφορες δοκιμές κατέληξα ότι αυτό το σημείο του κώδικα σε αυτό το αρχείο είναι που φταίει...  :-\

Το custom profile fields το δοκίμασα αλλά δεν βολεύει γιατί πρώτον δεν αποθηκεύει τα στοιχεία στην βάση μαζί με τα άλλα στοιχεία του προφίλ, δεύτερον δεν μπορείς να του ρυθμίσεις που θα δείχνει και από που θα αλλάζει το νέο πεδίο και τρίτον δεν μπορείς να του βάλεις rules σαν αυτό που θέλω εγώ...  :-[
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: Greek on October 19, 2007, 06:11:56 PM
Το Custom Profile Field (http://www.simplemachines.org/community/index.php?topic=148045.0) επιτρέπει την προσθήκη υποχρεωτικού (προαιρετικά) πεδίου κατά την εγγραφή.
Τα υπόλοιπα ομολογώ ότι δεν τα πολυκατάλαβα.
Πάντως το κάθε μέλος μπορεί να τροποποιήσει το κάθε επιπλέον πεδίο, όπως και τα αρχικά του SMF, μέσα από το προφίλ του.
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: agridoc on October 20, 2007, 02:04:45 AM
Eva δεν πήρα απάντηση στο αν υπάρχει backup από τα αρχεία του SMF πριν την αναβάθμιση.
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: Eva on October 20, 2007, 12:11:42 PM
Sorry agridoc, φυσικά backup των αρχείων υπάρχει  ;)
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: agridoc on October 20, 2007, 01:03:36 PM
Τι version έτρεχε πριν την αναβάθμιση;

Κάνε σύγκριση των αρχείων που έτρεχαν σωστά με τα original της version που έτρεχε πριν την αναβάθμιση.

Θα βρεις που τα είχες βάλει.
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: Eva on October 20, 2007, 01:34:54 PM
Aυτό έκανα όταν τα πέρασα manually, το πρόβλημα προκύπτει γιατί κάποια σημεία όπου είχα βάλει τον κώδικα δεν υπάρχουν στα καινούργια αρχεία...  :-\
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: agridoc on October 20, 2007, 01:53:29 PM
Από τι version έγινε upgrade;
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: Eva on October 20, 2007, 02:04:00 PM
1.0.9
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: agridoc on October 20, 2007, 02:09:47 PM
Το φανταζόμουνα οτι θα είναι από 1.0x, οι διαφορές από 1.1 Final  και μετά είναι μικρές.

Θέλει συνολικά μελέτη, λυπάμαι που δεν μπορώ να βοηθήσω άλλο.
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: Eva on October 20, 2007, 02:17:30 PM
Δεν πειράζει, αρκεί η θέληση  :)
Title: Re: Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ
Post by: Eva on October 21, 2007, 07:35:25 AM
Problem solved.

  :D