szabesz Posted July 5, 2022 Share Posted July 5, 2022 Hello @adrian, I have just upgraded and old site along with this module. So I started to get lots of Unknown column 'field_user_phone.data_country' entries in the log. After seeing all those log entries I came here, just to find this old warning of yours. On 7/23/2018 at 9:57 PM, adrian said: FYI - I just merged the 3.0 branch to master - be warned that this is a breaking change because of the new data_country db field so please don't update existing installs unless you're prepared to do some DB manipulation - if you want to and can't figure out the required SQL commands, let me know and I can post something here. If I'm not mistaken, I should now update the database manually, but how? Could you please help me out? Link to comment Share on other sites More sharing options...
adrian Posted January 12, 2023 Author Share Posted January 12, 2023 Hi @szabesz - sorry for such a late reply, but this should show what needs to change: https://github.com/adrianbj/FieldtypePhone/commit/b3376e13615a702bf5075f94c08e790ab9778c53 I added a new data_country field and moved the contents of the data field to data_country and then populated data with the raw number (concatenate data_country and data_number). Hope that helps still. 1 Link to comment Share on other sites More sharing options...
szabesz Posted January 13, 2023 Share Posted January 13, 2023 12 hours ago, adrian said: Hope that helps still. Thanks Adrian! I simply postponed upgrading the module. Next time I work on that site, I will surely try to upgrade it base on the info you provided above. Link to comment Share on other sites More sharing options...
sz-ligatur Posted February 24 Share Posted February 24 Hi @adrian, your phone field just came right in time, so I gave it a try and it fits my needs well. I now want to use this fieldtype InputfieldPhone in a custom form delivered by my module. After several tries and fails I found a way, but it feels a bit odd. Is there a better/right way to use a predefined/configured field in a custom form? I guess this question is not related to your field… more a general one – but as I was stumbling across that need with the phone field I post my question here (…and because I really value your experience). // module context public function ___executeTest() { $modules = $this->wire()->modules; $fields = $this->wire()->fields; $phone = $fields->get('m_phone_2'); $p = New Page; //is that the right way to do it? $input = $phone->getInputfield($p); /** @var InputfieldForm $form */ $form = $modules->get('InputfieldForm'); $form->attr('id', 'PhoneTest'); $form->append($input); // $wrapper = new InputfieldWrapper(); // $wrapper->add($input); // $form->append($wrapper); $out = $form->render(); return $out; } Thank you! 15 minutes later – addendum: in my usecase, a new user is created on submit. In $form->process() I fetch the data and try to set the values to a new user: //$form->process() //add new user $newuser = new User(); $newuser->name = $form->getValueByName('name'); // … other fields $newuser->m_phone_2 = $form->getValueByName('m_phone_2'); // is formatted value here +49 (0)### ####### $newuser->save(); I now have to fetch the values from the raw post data: $data = $this->wire('input')->post; $newuser->m_phone_2->set('country', $data->m_phone_2_country;); $newuser->m_phone_2->set('area_code', $data->m_phone_2_area_code); … again I just wonder… is this the way to go? Link to comment Share on other sites More sharing options...
AndZyk Posted April 15 Share Posted April 15 Hello @adrian, thank you for this module. I am using it on one of our websites and get following warning with PHP 8.2.0 in TracyDebugger: Quote PHP Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in .../site/modules/FieldtypePhone/FieldtypePhone.module.php:330 Could you please update your module to remove this warning? ? Regards, Andreas Link to comment Share on other sites More sharing options...
adrian Posted April 15 Author Share Posted April 15 Hi @AndZyk - it seems like you have an empty "Phone Output Format Options" field in the module's config settings. By default, it is populated with the following, so you can paste this in, or build your own format. Does that fix things for you? /*North America without separate area code*/ northAmericaStandardNoSeparateAreaCode | {+[phoneCountry]} {([phoneNumber,0,3])} {[phoneNumber,3,3]}-{[phoneNumber,6,4]} {x[phoneExtension]} | 1,,2215673456,123 northAmericaStandardNoSeparateAreaCodeNoNumberDashes | {+[phoneCountry]} {([phoneNumber,0,3])} {[phoneNumber,3,7]} {x[phoneExtension]} | 1,,2215673456,123 northAmericaStandardNoSeparateAreaAllDashes | {+[phoneCountry]}-{[phoneNumber,0,3]}-{[phoneNumber,3,3]}-{[phoneNumber,6,4]} {x[phoneExtension]} | 1,,2215673456,123 northAmericaStandardNoSeparateAreaDashesNoNumberDashes | {+[phoneCountry]}-{[phoneNumber]} {x[phoneExtension]} | 1,,2215673456,123 /*North America with separate area code*/ northAmericaStandard | {+[phoneCountry]} {([phoneAreaCode])} {[phoneNumber,0,3]}-{[phoneNumber,3,4]} {x[phoneExtension]} | 1,221,5673456,123 northAmericaNoNumberDashes | {+[phoneCountry]} {([phoneAreaCode])} {[phoneNumber]} {x[phoneExtension]} | 1,221,5673456,123 northAmericaAllDashes| {+[phoneCountry]}-{[phoneAreaCode]}-{[phoneNumber,0,3]}-{[phoneNumber,3,4]} {x[phoneExtension]} | 1,221,5673456,123 northAmericaDashesNoNumberDashes | {+[phoneCountry]}-{[phoneAreaCode]}-{[phoneNumber]} {x[phoneExtension]} | 1,221,5673456,123 /*Australia*/ australiaNoCountryAreaCodeLeadingZero | {([phoneAreaCode,0,2])} {[phoneNumber,0,4]} {[phoneNumber,4,4]} {x[phoneExtension]} | 61,07,45673456,123 australiaWithCountryAreaCodeNoLeadingZero | {+[phoneCountry]} {([phoneAreaCode,1,1])} {[phoneNumber,0,4]} {[phoneNumber,4,4]} {x[phoneExtension]} | 61,07,45673456,123 1 Link to comment Share on other sites More sharing options...
AndZyk Posted April 16 Share Posted April 16 Hi @adrian, thanks you for your response. You are right. When I developed the website I wanted a special phone number format, so I choose under Phone Output Format "None" and build my own format like this: <a href="tel:<?=$person->phone->unformattedNumberNoExt?>"> <?php if ($person->phone->area_code) { echo $person->phone->area_code; } else { echo "07723"; } ?> <?php if ($person->phone->number) echo "/{$person->phone->number}"; ?> <?php if ($person->phone->extension) echo "-{$person->phone->extension}"; ?> </a> Probably because I didn't understand the syntax of the Phone Output Format at the time. ? If you have to choose a Phone Output format, wouldn't it be better to remove the option "None"? Link to comment Share on other sites More sharing options...
adrian Posted April 16 Author Share Posted April 16 Hi @AndZyk - you don't need to select an output format - none is perfectly valid (it's basically "unformatted"). That said, I have fixed the error if for some reason you decide to empty the options textarea. PS - it's worth figuring out the syntax- I know it looks a bit overwhelming at first, but it's really powerful and keeps your template code much cleaner. 1 Link to comment Share on other sites More sharing options...
AndZyk Posted April 16 Share Posted April 16 Thank you, next time I will try to use the format options. ☺️ Just FYI I had selected None and had the default values in the options textarea of the module settings. Regards, Andreas Link to comment Share on other sites More sharing options...
adrian Posted April 16 Author Share Posted April 16 2 hours ago, AndZyk said: Just FYI I had selected None and had the default values in the options textarea of the module settings. Weird - maybe you had just never saved the settings so the format wasn't available? Anyway, shouldn't matter now regardless. 1 Link to comment Share on other sites More sharing options...
mel47 Posted October 6 Share Posted October 6 Hello Adrian, Just a quick question. I have set output to NorthAmericaDashes. I was wondering if I can set input to fit the output. I use the fieldtype in my FormBuilder and user complains that they don't know the format to use since it's not as usual. They want 123-4567 but we have to enter 1234567 to avoid errors. Is it possible to do that? Thanks again! Link to comment Share on other sites More sharing options...
adrian Posted October 16 Author Share Posted October 16 @mel47 - Did you consider using the option to have separate area code and number fields which I think would avoid that confusion. If you don't want that option, I think I could pretty easily have any option to allow dashes and parentheses but automatically strip them when saving to the database. Would that work ok for you? Link to comment Share on other sites More sharing options...
mel47 Posted October 16 Share Posted October 16 I already have area and number separated. My issue is about the number only. We have to type without dashes, but since no one is normally doing that, some confusion arises and they always have an error (and they need to remove the dash they typed to get a valid answer). So yes, if the dash could be strip somehow, it will be ideal! Link to comment Share on other sites More sharing options...
adrian Posted October 16 Author Share Posted October 16 @mel47 - please test the attached version. There is a new option (on the Input tab of the field) for "Allow formatting characters in Input, eg. - ( ." Note that unlike the "Letters" option, the formatting characters will be stripped before saving to the DB. FieldtypePhone.zip 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now