Source of file SolrConfigStore_Post.php
Size: 1,774 Bytes - Last Modified: 2021-12-23T10:31:32+00:00
/var/www/docs.ssmods.com/process/src/src/Solr/Stores/SolrConfigStore_Post.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | <?php namespace SilverStripe\FullTextSearch\Solr\Stores; use SilverStripe\FullTextSearch\Solr\Solr; use SilverStripe\FullTextSearch\Solr\Stores\SolrConfigStore; class SolrConfigStore_Post implements SolrConfigStore { /** * @var string */ protected $remote = ''; /** * @var string */ protected $url = ''; /** * @param array $config */ public function __construct($config) { $options = Solr::solr_options(); $this->url = implode('', [ 'http://', !empty($config['auth']) ? $config['auth'] . '@' : '', $options['host'] . ':' . $options['port'], $config['path'] ]); if (!empty($config['remotepath'])) { $this->remote = $config['remotepath']; } } /** * @param string $index * @param string $file * @return void */ public function uploadFile($index, $file) { $this->uploadString($index, basename($file), file_get_contents($file)); } /** * * @param string $index * @param string $filename * @param string $string * @return void */ public function uploadString($index, $filename, $string) { $targetDir = "{$this->url}/config/$index"; file_get_contents($targetDir . '/' . $filename, false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => 'Content-type: application/octet-stream', 'content' => (string) $string ] ])); } /** * @param string $index * @return string */ public function instanceDir($index) { return $this->remote ? "{$this->remote}/$index" : $index; } } |