Open Journal Systems  3.3.0
QuotesTrait.php
1 <?php
2 /*
3  * citeproc-php
4  *
5  * @link http://github.com/seboettg/citeproc-php for the source repository
6  * @copyright Copyright (c) 2017 Sebastian Böttger.
7  * @license https://opensource.org/licenses/MIT
8  */
9 
10 namespace Seboettg\CiteProc\Styles;
11 
14 use SimpleXMLElement;
15 
26 trait QuotesTrait
27 {
28 
32  private $quotes = false;
33 
34  public function initQuotesAttributes(SimpleXMLElement $node)
35  {
36  if (isset($node['quotes']) && "true" === (string) $node['quotes']) {
37  $this->quotes = true;
38  }
39  }
40 
45  public function addSurroundingQuotes($text)
46  {
47  if ($this->quotes) {
48  $openQuote = CiteProc::getContext()->getLocale()->filter("terms", "open-quote")->single;
49  $closeQuote = CiteProc::getContext()->getLocale()->filter("terms", "close-quote")->single;
50  $text = $this->replaceOuterQuotes($text, $openQuote, $closeQuote);
51  return $openQuote . $text . $closeQuote;
52  }
53  return $text;
54  }
55 
62  private function replaceOuterQuotes($text, $outerOpenQuote, $outerCloseQuote)
63  {
64  $innerOpenQuote = CiteProc::getContext()
65  ->getLocale()
66  ->filter("terms", "open-inner-quote")
67  ->single;
68  $innerCloseQuote = CiteProc::getContext()
69  ->getLocale()
70  ->filter("terms", "close-inner-quote")
71  ->single;
73  $text,
74  "\"",
75  "\"",
76  $innerOpenQuote,
77  $innerCloseQuote
78  );
80  $text,
81  $outerOpenQuote,
82  $outerCloseQuote,
83  $innerOpenQuote,
84  $innerCloseQuote
85  );
86  return $text;
87  }
88 }
Seboettg\CiteProc\Styles\addSurroundingQuotes
addSurroundingQuotes($text)
Definition: QuotesTrait.php:48
Seboettg\CiteProc\Styles
Definition: AffixesTrait.php:10
Seboettg\CiteProc\Util\StringHelper\replaceOuterQuotes
static replaceOuterQuotes( $text, $outerOpenQuote, $outerCloseQuote, $innerOpenQuote, $innerCloseQuote)
Definition: StringHelper.php:252
Seboettg\CiteProc\Util\StringHelper
Definition: StringHelper.php:22
Seboettg\CiteProc\CiteProc
Definition: CiteProc.php:32
Seboettg\CiteProc\Styles\initQuotesAttributes
initQuotesAttributes(SimpleXMLElement $node)
Definition: QuotesTrait.php:37
Seboettg\CiteProc\CiteProc\getContext
static getContext()
Definition: CiteProc.php:45
Seboettg\CiteProc\Styles\QuotesTrait
trait QuotesTrait
Definition: QuotesTrait.php:27