new template tag to get initials from name
This commit is contained in:
parent
4d09b824ca
commit
74adde2255
|
@ -248,3 +248,39 @@ function tainacan_current_view_displays($property) {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the initials from a name.
|
||||||
|
*
|
||||||
|
* By default, returns 2 uppercase letters representing the name. The first letter from the first name and the first letter from the last.
|
||||||
|
*
|
||||||
|
* @param string $string The name to extract the initials from
|
||||||
|
* @param bool $one whether to return only the first letter, instead of two
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function tainacan_get_initials(string $string, $one = false) {
|
||||||
|
|
||||||
|
if (empty($string)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
if (strlen($string) == 1) {
|
||||||
|
return strtoupper($string);
|
||||||
|
}
|
||||||
|
|
||||||
|
$first = strtoupper(substr($string,0,1));
|
||||||
|
|
||||||
|
if ($one) {
|
||||||
|
return $first;
|
||||||
|
}
|
||||||
|
|
||||||
|
$words=explode(" ",$string);
|
||||||
|
|
||||||
|
if (sizeof($words) < 2) {
|
||||||
|
$second = $string[1];
|
||||||
|
} else {
|
||||||
|
$second = $words[ sizeof($words) - 1 ][0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return strtoupper($first . $second);
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tainacan\Tests;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class TestUtilities
|
||||||
|
*
|
||||||
|
* @package Test_Tainacan
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sample test case.
|
||||||
|
*/
|
||||||
|
class TestUtilities extends TAINACAN_UnitTestCase {
|
||||||
|
|
||||||
|
|
||||||
|
function test_initials() {
|
||||||
|
|
||||||
|
|
||||||
|
$string = 'Roberto Carlos';
|
||||||
|
|
||||||
|
$this->assertEquals('RC', tainacan_get_initials($string));
|
||||||
|
|
||||||
|
$string = 'Ronaldo';
|
||||||
|
|
||||||
|
$this->assertEquals('RO', tainacan_get_initials($string));
|
||||||
|
$this->assertEquals('R', tainacan_get_initials($string, true));
|
||||||
|
|
||||||
|
$string = 'Marilia Mendonça das Neves Costa Silva Fonseca';
|
||||||
|
|
||||||
|
$this->assertEquals('MF', tainacan_get_initials($string));
|
||||||
|
$this->assertEquals('M', tainacan_get_initials($string, true));
|
||||||
|
|
||||||
|
$string = 'Machado de Assis';
|
||||||
|
|
||||||
|
$this->assertEquals('MA', tainacan_get_initials($string));
|
||||||
|
|
||||||
|
$string = 'b';
|
||||||
|
|
||||||
|
$this->assertEquals('B', tainacan_get_initials($string));
|
||||||
|
|
||||||
|
$string = '';
|
||||||
|
|
||||||
|
$this->assertEquals('', tainacan_get_initials($string));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue