24 private $searchTermsUseRate;
29 private $totalProductsCount;
35 public function __construct(array $searchTerms, $totalProductsCount)
37 $this->searchTerms = $searchTerms;
38 $this->totalProductsCount = (int) $totalProductsCount;
51 if ($this->searchTermsUseRate ===
null) {
52 $this->calculateSearchTermsUseRate();
55 foreach ($this->searchTerms as &$searchTerm) {
56 if ($this->searchTermsUseRate[$searchTerm[
'term']][
'use_rate'] > 0
57 && $currentProductIndex % $this->searchTermsUseRate[$searchTerm[
'term']][
'use_rate'] === 0
58 && $this->searchTermsUseRate[$searchTerm[
'term']][
'used'] < $searchTerm[
'count']
61 $this->searchTermsUseRate[$searchTerm[
'term']][
'used'] += 1;
73 private function calculateSearchTermsUseRate()
75 foreach ($this->searchTerms as $searchTerm) {
76 $this->searchTermsUseRate[$searchTerm[
'term']] = [
77 'use_rate' => floor($this->totalProductsCount / $searchTerm[
'count']),
__construct(array $searchTerms, $totalProductsCount)
applySearchTermsToDescription(&$description, $currentProductIndex)