예제 #1
0
 protected function saveApplicationUrl()
 {
     if (dmConfig::isCli()) {
         return;
     }
     $knownBaseUrls = json_decode(dmConfig::get('base_urls', '[]'), true);
     $appUrlKey = implode('-', array(sfConfig::get('sf_app'), sfConfig::get('sf_environment')));
     $appUrl = $this->request->getUriPrefix() . $this->request->getScriptName();
     if (!isset($knownBaseUrls[$appUrlKey]) || $knownBaseUrls[$appUrlKey] !== $appUrl) {
         $knownBaseUrls[$appUrlKey] = $appUrl;
         dmConfig::set('base_urls', json_encode($knownBaseUrls));
     }
 }
 protected function renameSite()
 {
     $siteName = 'Diem demo';
     $this->log('Rename site to ' . $siteName);
     dmConfig::set('site_name', $siteName);
     foreach (dmDb::table('DmLayout')->findAll() as $layout) {
         $widget = $layout->getArea('top')->Zones[0]->Widgets[0];
         $values = $widget->values;
         if ('Diem' == dmArray::get($values, 'text')) {
             $values['text'] = 'Diem <em>demo</em>';
             $widget->values = $values;
             $widget->save();
         }
     }
 }
예제 #3
0
 public function executeIndex(dmWebRequest $request)
 {
     $this->form = new dmConfigForm();
     $this->settings = dmDb::table('DmSetting')->fetchGrouped();
     $this->groups = array();
     foreach ($this->settings as $group => $settings) {
         if ('internal' == $group) {
             continue;
         }
         foreach ($settings as $index => $setting) {
             if ($this->getUser()->can($setting->get('credentials'))) {
                 $this->form->addSetting($setting);
                 if (!in_array($setting->get('group_name'), $this->groups)) {
                     $this->groups[] = $setting->get('group_name');
                 }
             } else {
                 unset($this->settings[$group][$index]);
             }
         }
         if (empty($this->settings[$group])) {
             unset($this->settings[$group]);
         }
     }
     $this->getDispatcher()->notify(new sfEvent($this->form, 'form.post_configure'));
     if ($request->isMethod('post')) {
         if ($this->form->bindAndValid($request)) {
             $formValues = $this->form->getValues();
             foreach ($this->settings as $group => $settings) {
                 foreach ($settings as $index => $setting) {
                     $settingName = $setting->get('name');
                     if (isset($formValues[$settingName]) && $formValues[$settingName] != $setting->value) {
                         dmConfig::set($settingName, $formValues[$settingName]);
                     }
                 }
             }
             $this->getUser()->logInfo('Your modifications have been saved', true);
             return $this->redirect('@dm_config_panel');
         } else {
             $this->getUser()->logAlert('The item has not been saved due to some errors.', true);
         }
     }
 }
예제 #4
0
 public function executeIndex(dmWebRequest $request)
 {
     if ($this->getUser()->can('google_analytics')) {
         $this->form = new dmGoogleAnalyticsForm();
         $this->form->setGapi($this->getService('gapi'));
         if ($request->isMethod('post')) {
             dmConfig::set('ga_key', dmArray::get($request->getParameter($this->form->getName()), 'key'));
             if ($this->form->bindAndValid($request)) {
                 $this->form->save();
                 return $this->redirect('@dm_google_analytics');
             }
         }
     }
     $this->gapiConnected = false;
     if (dmConfig::get('ga_token')) {
         try {
             $this->getService('gapi')->authenticate(null, null, dmConfig::get('ga_token'));
             $this->gapiConnected = true;
         } catch (dmGapiException $e) {
             // bad token
         }
     }
 }
예제 #5
0
$expected = dmProject::rootify(dmArray::get($helper->get('service_container')->getParameter('search_engine.options'), 'dir'));
$t->is($engine->getFullPath(), $expected, 'Current engine full path is ' . $expected);
$t->ok(!file_exists(dmProject::rootify('segments.gen')), 'There is no segments.gen in project root dir');
$engine->setDir('cache/testIndex');
foreach ($helper->get('i18n')->getCultures() as $culture) {
    $user->setCulture($culture);
    $currentIndex = $engine->getCurrentIndex();
    $t->is($currentIndex->getName(), 'dm_page_' . $culture, 'Current index name is ' . $currentIndex->getName());
    $t->is($currentIndex->getCulture(), $culture, 'Current index culture is ' . $culture);
    $t->is($currentIndex->getFullPath(), dmProject::rootify('cache/testIndex/' . $currentIndex->getName()), 'Current index full path is ' . $currentIndex->getFullPath());
}
$user->setCulture(sfConfig::get('sf_default_culture'));
$currentIndex = $engine->getCurrentIndex();
$t->isa_ok($currentIndex->getLuceneIndex(), 'Zend_Search_Lucene_Proxy', 'The current index is instanceof Zend_Search_Lucene_Proxy');
$t->ok(!file_exists(dmProject::rootify('segments.gen')), 'There is no segments.gen in project root dir');
dmConfig::set('search_stop_words', 'un le  les de,du , da, di ,do   ou ');
$t->is($currentIndex->getStopWords(), array('un', 'le', 'les', 'de', 'du', 'da', 'di', 'do', 'ou'), 'stop words retrieved from site instance : ' . implode(', ', $currentIndex->getStopWords()));
$t->diag('Cleaning text');
$html = '<ol><li><a class="link dm_parent" href="symfony">Accueil</a></li><li>></li><li><a class="link dm_parent" href="symfony/domaines">Domaines</a></li><li>></li><li><a class="link dm_parent" href="symfony/domaines/77-cursus-proin1i471j0u">cursus. Proin1i471j0u</a></li><li>></li><li><a class="link dm_parent" href="symfony/domaines/77-cursus-proin1i471j0u/104-trices-interdum-risus-duisgpcinqn1">trices interdum risus. Duisgpcinqn1</a></li><li>></li><li><span class="link dm_current">Info : t, auctor ornare, risus. Donec lo</span></li></ol><span class="link dm_current">Info : t, auctor ornare, risus. Donec lo</span><div class="info_tag list_by_info"><ul class="elements"><li class="element clearfix"><a class="link" href="symfony/domaines/77-cursus-proin1i471j0u/104-trices-interdum-risus-duisgpcinqn1/t-auctor-ornare-risus-donec-lo-79/t-donec">t. Donec</a></li><li class="element clearfix"><a class="link" href="symfony/domaines/77-cursus-proin1i471j0u/104-trices-interdum-risus-duisgpcinqn1/t-auctor-ornare-risus-donec-lo-79/em-ipsu">em ipsu</a></li></ul></div>';
$expected = 'accueil domaines cursus proin1i471j0u trices interdum risus duisgpcinqn1 info t auctor ornare risus donec lo info t auctor ornare risus donec lo t donec em ipsu';
$t->is($currentIndex->cleanText($html), $expected, 'cleaned text : ' . $expected);
$html = '<div>some content<a href="url">a link text  é àî</a>... end</div>';
$expected = 'some content a link text e ai end';
$t->is($currentIndex->cleanText($html), $expected, 'cleaned text : ' . $expected);
// for now this doesn't work on windows
if ('/' !== DIRECTORY_SEPARATOR) {
    return;
}
$t->diag('Populate all indices');
$t->ok($engine->populate(), 'Indices populated');
$t->is($user->getCulture(), sfConfig::get('sf_default_culture'), 'User\'s culture has not been changed');
예제 #6
0
$defaultCulture = sfConfig::get('sf_default_culture');
$user->setCulture($defaultCulture);
dmDb::query('DmSetting s')->where('s.name = ?', 'test')->delete()->execute();
$t->diag('create new setting');
$setting = dmDb::create('DmSetting', array('name' => 'test', 'description' => 'This is just a test setting', 'value' => $defaultCulture . ' value', 'default_value' => $defaultCulture . ' default', 'type' => 'text', 'group_name' => 'test group'))->saveGet();
dmConfig::load();
try {
    dmConfig::get('i_do_not_exist_for_sure');
    $t->pass('Get non-existant config');
} catch (dmException $e) {
    $t->fail('Get non-existant config');
}
try {
    dmConfig::set('i_do_not_exist_for_sure', 'value');
    $t->pass('Set non-existant config');
} catch (dmException $e) {
    $t->fail('Set non-existant config');
}
$t->is(dmConfig::get('test'), $defaultCulture . ' value', 'test value is ' . $defaultCulture . ' value');
dmConfig::set('test', 'new ' . $defaultCulture . ' value');
$t->is(dmConfig::get('test'), 'new ' . $defaultCulture . ' value', 'test value is new ' . $defaultCulture . ' value');
dmConfig::load();
$t->is(dmConfig::get('test'), 'new ' . $defaultCulture . ' value', 'test value is new ' . $defaultCulture . ' value');
$user->setCulture('c1');
$t->is(dmConfig::get('test'), 'new ' . $defaultCulture . ' value', 'test value is new ' . $defaultCulture . ' value ( by non-existing c1 culture fallback )');
dmConfig::set('test', 'c1 value');
$t->is(dmConfig::get('test'), 'c1 value', 'test value is c1 value');
$user->setCulture($defaultCulture);
$t->is(dmConfig::get('test'), 'new ' . $defaultCulture . ' value', 'test value is new ' . $defaultCulture . ' value');
$user->setCulture($userCulture);
$setting->delete();
예제 #7
0
 public function save()
 {
     foreach ($this->widgetSchema->getFields() as $name => $field) {
         dmConfig::set($name, $this->getValue($name));
     }
 }
예제 #8
0
 public function save()
 {
     if ($this->getValue('token')) {
         dmConfig::set('ga_token', $this->getValue('token'));
     }
 }