Announcement

Collapse
No announcement yet.

The 'Phone' Variable in SellerDeck - shortcomings

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    The 'Phone' Variable in SellerDeck - shortcomings

    Sellerdeck uses a 'Phone' variable in a number of layouts (<actinic:variable name="Phone" />)
    The value for this variable is set in Business Settings Company Details.
    It is usual to enter phone numbers here as:
    01234 987654 or 0800 123 987654

    The Phone variable is used to yield the telephone number for one click calling in mobile view (or Skype in desktop if the user has this set up)

    Code:
    <a href="tel:<actinic:variable name="Phone" />" rel="nofollow"><actinic:variable name="Phone" /></a>
    This will yield using the example above:

    Code:
    <a href="tel:01234 987654>" rel="nofollow">01234 987654</a>
    This won't work. The a href='tel' needs to be the international form of the number without breaks (+441234987654)

    To resolve this search the design library for <actinic:variable name="Phone" /> and where it is in the hyperlink change it for the international number appropriate for your site.

    Code:
    <a href="tel:+441234987654" rel="nofollow"><actinic:variable name="Phone" /></a>
    It would be nice it SD brought in a variable for this so it can be entered in Company details.
    Jonathan Chappell
    Website Designer
    SellerDeck Website Designer
    Actinic to SellerDeck upgrades
    Graphicz Limited - www.graphicz.co.uk

    #2
    I would be nice if SD added a Country Code field to the Countries table within the database. As it could be used as per below.

    While we wait an eternity for that, here's an automated way to do this:

    Search the library for:
    Code:
    href="tel:<actinic:variable name="Phone" />"
    There should be 2 occurrences - Top Contact Info and Deep Footer.
    In both of these, replace the above with:
    Code:
    <actinic:block php="true">
    $intcodes = array(
    	'Afghanistan' => '93',
    	'Albania' => '355',
    	'Algeria' => '213',
    	'American Samoa' => '1684',
    	'Andorra' => '376',
    	'Angola' => '244',
    	'Anguilla' => '1264',
    	'Antarctica' => '672',
    	'Antigua and Barbuda' => '1268',
    	'Argentina' => '54',
    	'Armenia' => '374',
    	'Aruba' => '297',
    	'Australia' => '61',
    	'Austria' => '43',
    	'Azerbaijan' => '994',
    	'Bahamas' => '1242',
    	'Bahrain' => '973',
    	'Bangladesh' => '880',
    	'Barbados' => '1246',
    	'Belarus' => '375',
    	'Belgium' => '32',
    	'Belize' => '501',
    	'Benin' => '229',
    	'Bermuda' => '1441',
    	'Bhutan' => '975',
    	'Bolivia' => '591',
    	'Bosnia and Herzegovina' => '387',
    	'Botswana' => '267',
    	'Brazil' => '55',
    	'British Indian Ocean Territory' => '246',
    	'Brunei Darussalam' => '673',
    	'Bulgaria' => '359',
    	'Burkina Faso' => '226',
    	'Burundi' => '257',
    	'Cambodia' => '855',
    	'Cameroon' => '237',
    	'Canada' => '1',
    	'Cape Verde Islands' => '238',
    	'Cayman Islands' => '1345',
    	'Central African Republic' => '236',
    	'Chad' => '235',
    	'Chile' => '56',
    	'China' => '86',
    	'Christmas Island' => '61',
    	'Cocos (Keeling) Islands' => '61',
    	'Colombia' => '57',
    	'Comoros' => '269',
    	'Congo' => '242',
    	'Congo, Democratic Republic' => '243',
    	'Cook Islands' => '682',
    	'Costa Rica' => '506',
    	'Croatia' => '385',
    	'Cuba' => '53',
    	'Curacao' => '599',
    	'Cyprus' => '357',
    	'Czech Republic' => '420',
    	'Denmark' => '45',
    	'Djibouti' => '253',
    	'Dominica' => '1767',
    	'East Timor' => '670',
    	'Ecuador' => '593',
    	'Egypt' => '20',
    	'El Salvador' => '503',
    	'Equatorial Guinea' => '240',
    	'Eritrea' => '291',
    	'Estonia' => '372',
    	'Ethiopia' => '251',
    	'Falkland Islands' => '500',
    	'Faroe Islands' => '298',
    	'Fiji' => '679',
    	'Finland' => '358',
    	'France' => '33',
    	'French Polynesia' => '689',
    	'Gabon' => '241',
    	'Gambia' => '220',
    	'Georgia' => '995',
    	'Germany' => '49',
    	'Ghana' => '233',
    	'Gibraltar' => '350',
    	'Greece' => '30',
    	'Greenland' => '299',
    	'Grenada' => '1473',
    	'Guam' => '1671',
    	'Guatemala' => '502',
    	'Guernsey' => '441481',
    	'Guinea' => '224',
    	'Guinea-Bissau' => '245',
    	'Guyana' => '592',
    	'Haiti' => '509',
    	'Honduras' => '504',
    	'Hong Kong' => '852',
    	'Hungary' => '36',
    	'Iceland' => '354',
    	'India' => '91',
    	'Indonesia' => '62',
    	'Iran' => '98',
    	'Iraq' => '964',
    	'Ireland' => '353',
    	'Isle of Man' => '441624',
    	'Israel' => '972',
    	'Italy' => '39',
    	'Jamaica' => '1876',
    	'Japan' => '81',
    	'Jersey' => '441534',
    	'Jordan' => '962',
    	'Kazakhstan' => '7',
    	'Kenya' => '254',
    	'Kiribati' => '686',
    	'Korea (North)' => '850',
    	'Korea (South)' => '82',
    	'Kosovo' => '383',
    	'Kuwait' => '965',
    	'Kyrgyzstan' => '996',
    	'Laos' => '856',
    	'Latvia' => '371',
    	'Lebanon' => '961',
    	'Lesotho' => '266',
    	'Liberia' => '231',
    	'Libya' => '218',
    	'Liechtenstein' => '423',
    	'Lithuania' => '370',
    	'Luxembourg' => '352',
    	'Macau' => '853',
    	'Macedonia' => '389',
    	'Madagascar' => '261',
    	'Malawi' => '265',
    	'Malaysia' => '60',
    	'Maldives' => '960',
    	'Mali' => '223',
    	'Malta' => '356',
    	'Marshall Islands' => '692',
    	'Mauritania' => '222',
    	'Mauritius' => '230',
    	'Mayotte' => '262',
    	'Mexico' => '52',
    	'Micronesia' => '691',
    	'Moldova' => '373',
    	'Monaco' => '377',
    	'Mongolia' => '976',
    	'Montenegro' => '382',
    	'Montserrat' => '1664',
    	'Morocco' => '212',
    	'Mozambique' => '258',
    	'Myanmar' => '95',
    	'Namibia' => '264',
    	'Nauru' => '674',
    	'Nepal' => '977',
    	'Netherlands' => '31',
    	'Netherlands Antilles' => '599',
    	'New Caledonia' => '687',
    	'New Zealand' => '64',
    	'Nicaragua' => '505',
    	'Niger' => '227',
    	'Nigeria' => '234',
    	'Niue' => '683',
    	'Northern Mariana Islands' => '1670',
    	'Norway' => '47',
    	'Oman' => '968',
    	'Pakistan' => '92',
    	'Palau' => '680',
    	'Palestine, State of' => '970',
    	'Panama' => '507',
    	'Papua New Guinea' => '675',
    	'Paraguay' => '595',
    	'Peru' => '51',
    	'Philippines' => '63',
    	'Pitcairn' => '64',
    	'Poland' => '48',
    	'Portugal' => '351',
    	'Qatar' => '974',
    	'Reunion' => '262',
    	'Romania' => '40',
    	'Russian Federation' => '7',
    	'Rwanda' => '250',
    	'Saint Barthelemy' => '590',
    	'Saint Helena, Ascencion & Tristan D C' => '290',
    	'Saint Kitts and Nevis' => '1869',
    	'Saint Lucia' => '1758',
    	'Saint Martin (French)' => '590',
    	'Saint Pierre & Miquelon' => '508',
    	'Saint Vincent and the Grenadines' => '1784',
    	'Samoa' => '685',
    	'San Marino' => '378',
    	'Sao Tome and Principe' => '239',
    	'Saudi Arabia' => '966',
    	'Senegal' => '221',
    	'Serbia' => '381',
    	'Seychelles' => '248',
    	'Sierra Leone' => '232',
    	'Singapore' => '65',
    	'Sint Maarten' => '1721',
    	'Slovak Republic' => '421',
    	'Slovenia' => '386',
    	'Solomon Islands' => '677',
    	'Somalia' => '252',
    	'South Africa' => '27',
    	'South Sudan' => '211',
    	'Spain' => '34',
    	'Sri Lanka' => '94',
    	'Sudan' => '249',
    	'Suriname' => '597',
    	'Svalbard and Jan Mayen Islands' => '47',
    	'Swaziland' => '268',
    	'Sweden' => '46',
    	'Switzerland' => '41',
    	'Syria' => '963',
    	'Taiwan' => '886',
    	'Tajikistan' => '992',
    	'Tanzania' => '255',
    	'Thailand' => '66',
    	'Togo' => '228',
    	'Tokelau' => '690',
    	'Tonga' => '676',
    	'Trinidad and Tobago' => '1868',
    	'Tunisia' => '216',
    	'Turkey' => '90',
    	'Turkmenistan' => '993',
    	'Turks and Caicos Islands' => '1649',
    	'Tuvalu' => '688',
    	'Uganda' => '256',
    	'Ukraine' => '380',
    	'United Arab Emirates' => '971',
    	'United Kingdom' => '44',
    	'United States' => '1',
    	'Uruguay' => '598',
    	'Uzbekistan' => '998',
    	'Vanuatu' => '678',
    	'Vatican City State (Holy See)' => '379',
    	'Venezuela' => '58',
    	'Vietnam' => '84',
    	'Virgin Islands (British)' => '1284',
    	'Virgin Islands (U.S.)' => '1340',
    	'Wallis and Futuna' => '681',
    	'Western Sahara' => '212',
    	'Yemen' => '967',
    	'Zambia' => '260',
    	'Zimbabwe' => '263'
    	);
    	$phone = '<actinic:variable name="Phone" encoding="perl" selectable="false" />';
    	$intcode = false;
    	if ( isset($intcodes['<actinic:variable name="Country" encoding="perl" selectable="false" />']) )
    		{
    		$intcode = $intcodes['<actinic:variable name="Country" encoding="perl" selectable="false" />'];
    		}
    	// we have 00 at start - replace with +
    	$phone = preg_replace('/^00/', '+', $phone);
    	// we have + at start - just remove non numerics
    	if ( preg_match('/^\+/', $phone) )
    		{
    		$phone = '+' . preg_replace('/\D/', '', $phone);
    		}
    	// plain phone number but we know country	
    	elseif ( $intcode )
    		{
    		$phone = preg_replace('/^0+/', '', $phone);	// lose initial 0
    		$phone = '+' . $intcode . preg_replace('/\D/', '', $phone); // add + and strip non numeric
    		}
    	echo 'href="tel:' . $phone .'"';	
    </actinic:block>
    I've removed a couple of countries - Dominican Republic and Puerto Rico where there are multiple dial codes. Also places like Jersey have special codes so you may need to double check there.
    Norman - www.drillpine.biz
    Edinburgh, U K / Bitez, Turkey

    Comment


      #3
      Cracking job Norman - Thank you.
      Jonathan Chappell
      Website Designer
      SellerDeck Website Designer
      Actinic to SellerDeck upgrades
      Graphicz Limited - www.graphicz.co.uk

      Comment


        #4
        Just updated post #2 to match the country names to what SD uses in the Country drop-down list.
        Norman - www.drillpine.biz
        Edinburgh, U K / Bitez, Turkey

        Comment

        Working...
        X