本文整理汇总了PHP中dmString类的典型用法代码示例。如果您正苦于以下问题:PHP dmString类的具体用法?PHP dmString怎么用?PHP dmString使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了dmString类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: executeRate
public function executeRate(sfWebRequest $request)
{
$this->forward404Unless($request->isMethod('POST'));
list($class, $id) = dmString::decode($request->getParameter('hash'));
$this->forward404Unless($table = dmDb::table($class));
$this->forward404Unless($record = $table->find($id));
$this->forward404Unless($table->hasTemplate('DmRatable'));
$template = $table->getTemplate('DmRatable');
$options = $template->getOptions();
$value = (int) $request->getParameter('value');
$this->forward404Unless($value >= 0 && $value <= $options['max_rate']);
$rate = array('rate' => $value);
if ($options['user']) {
$this->forward404Unless($this->getUser()->isAuthenticated());
$rate['dm_user_id'] = $this->getUser()->getUserId();
} else {
$rate['session_id'] = session_id();
}
if ($value) {
$record->addRate($rate);
$message = $this->getService('i18n')->__('Rating saved (%rate%)', array('%rate%' => $value));
} else {
$record->cancelRate($rate);
$message = $this->getService('i18n')->__('Rating removed');
}
return $this->renderComponent('dmRatable', 'rating', array('record' => $record, 'message' => $message));
}
示例2: withDmMedia
/**
* Join media for this columnName or alias
* return @dmDoctrineQuery $this
*/
public function withDmMedia($alias, $rootAlias = null)
{
$rootAlias = $rootAlias ? $rootAlias : $this->getRootAlias();
$mediaJoinAlias = $rootAlias . dmString::camelize($alias);
$folderJoinAlias = $mediaJoinAlias . 'Folder';
return $this->leftJoin(sprintf('%s.%s %s, %s.%s %s', $rootAlias, $alias, $mediaJoinAlias, $mediaJoinAlias, 'Folder', $folderJoinAlias));
}
示例3: filterViewVars
protected function filterViewVars(array $vars = array())
{
$vars = parent::filterViewVars($vars);
$menuClass = dmArray::get($vars, 'menuClass');
$vars['menu'] = $this->getService('menu', $menuClass ? $menuClass : null)
->ulClass($vars['ulClass']);
foreach($vars['items'] as $index => $item)
{
$menuItem = $vars['menu']
->addChild($index.'-'.dmString::slugify($item['text']), $item['link'])
->label($item['text'])
->secure(!empty($item['secure']))
->liClass($vars['liClass'])
->addRecursiveChildren(dmArray::get($item, 'depth', 0));
if(!empty($item['nofollow']) && $menuItem->getLink())
{
$menuItem->getLink()->set('rel', 'nofollow');
}
}
unset($vars['items'], $vars['ulClass'], $vars['liClass']);
return $vars;
}
示例4: addWidget
public function addWidget(DmZone $zone, $moduleAction)
{
list($module, $action) = explode('/', $moduleAction);
$this->info('Add a ' . $moduleAction . ' widget')->get(sprintf('/index.php/+/dmWidget/add?to_dm_zone=%d&mod=' . $module . '&act=' . $action . '&dm_cpi=%d', $zone->id, $this->getPage()->id))->checks(array('module_action' => 'dmWidget/add', 'method' => 'get'))->has('.dm_widget.' . str_replace('dm_widget_', '', dmString::underscore($module)) . '.' . dmString::underscore($action));
$zone->refreshRelated('Widgets');
return $this;
}
示例5: renderText
protected function renderText()
{
if (isset($this->options['text'])) {
return $this->options['text'];
}
return dmString::escape($this->page->_getI18n('name'));
}
示例6: getWidgetTypes
public function getWidgetTypes()
{
if (null === $this->widgetTypes) {
$cache = $this->serviceContainer->getService('cache_manager')->getCache('dm/widget/' . sfConfig::get('sf_app') . sfConfig::get('sf_environment'));
$this->widgetTypes = $cache->get('types');
if (empty($this->widgetTypes)) {
$internalConfigFile = $this->serviceContainer->getService('config_cache')->checkConfig($this->getOption('config_file'));
$internalConfig = (include $internalConfigFile);
$this->widgetTypes = array();
$controller = $this->serviceContainer->getService('controller');
foreach ($internalConfig as $moduleKey => $actions) {
$this->widgetTypes[$moduleKey] = array();
foreach ($actions as $actionKey => $action) {
$fullKey = $moduleKey . dmString::camelize($actionKey);
$name = dmArray::get($action, 'name', dmString::humanize($actionKey));
$widgetTypeConfig = array('full_key' => $moduleKey . ucfirst($actionKey), 'name' => $name, 'public_name' => dmArray::get($action, 'public_name', dmString::humanize($name)), 'form_class' => dmArray::get($action, 'form_class', $fullKey . 'Form'), 'view_class' => dmArray::get($action, 'view_class', $fullKey . 'View'), 'use_component' => $this->componentExists($moduleKey, $fullKey), 'cache' => dmArray::get($action, 'cache', false));
$this->widgetTypes[$moduleKey][$actionKey] = new dmWidgetType($moduleKey, $actionKey, $widgetTypeConfig);
}
}
foreach ($this->serviceContainer->getService('module_manager')->getProjectModules() as $moduleKey => $module) {
$this->widgetTypes[$moduleKey] = array();
foreach ($module->getComponents() as $componentKey => $component) {
$baseClass = 'dmWidget' . dmString::camelize($component->getType());
$widgetTypeConfig = array('full_key' => $moduleKey . ucfirst($componentKey), 'name' => $component->getName(), 'public_name' => $module->getName() . ' ' . dmString::humanize($component->getName()), 'form_class' => $baseClass . 'Form', 'view_class' => $baseClass . 'View', 'use_component' => $this->componentExists($moduleKey, $componentKey), 'cache' => $component->isCachable());
$this->widgetTypes[$moduleKey][$componentKey] = new dmWidgetType($moduleKey, $componentKey, $widgetTypeConfig);
}
}
$cache->set('types', $this->widgetTypes);
}
}
return $this->widgetTypes;
}
示例7: checkBackground
public function checkBackground($validator, $values)
{
if ('fit' == $values['method'] && !dmString::hexColor($values['background'])) {
throw new sfValidatorErrorSchema($validator, array('background' => new sfValidatorError($validator, 'This is not a valid hexadecimal color')));
}
return $values;
}
示例8: useSearchIndex
protected function useSearchIndex($slug)
{
if (!dmConfig::get('smart_404')) {
return false;
}
try {
$searchIndex = $this->serviceContainer->get('search_engine')->getCurrentIndex();
$queryString = str_replace('/', ' ', dmString::unSlugify($slug));
$query = Zend_Search_Lucene_Search_QueryParser::parse($queryString);
$results = $searchIndex->search($query);
$foundPage = null;
foreach ($results as $result) {
if ($result->getScore() > 0.5) {
if ($foundPage = $result->getPage()) {
break;
}
} else {
break;
}
}
if ($foundPage) {
return $this->serviceContainer->getService('helper')->link($foundPage)->getHref();
}
} catch (Exception $e) {
$this->dispatcher->notify(new sfEvent($this, 'application.log', array('Can not use search index to find redirection for slug ' . $slug, sfLogger::ERR)));
if (sfConfig::get('dm_debug')) {
throw $e;
}
}
}
示例9: background
public function background($v)
{
if (!($hexColor = dmString::hexColor($v))) {
throw new dmException(sprintf('%s is not a valid hexadecimal color', $v));
}
return $this->setOption('background', $hexColor);
}
示例10: linkToHistory
public function linkToHistory($object, $params)
{
if (!$object->getTable()->isVersionable()) {
return '';
}
return '<li class="sf_admin_action_history">' . link_to1(__($params['label']), $this->getRouteArrayForAction('history', $object), array('class' => 'sf_admin_action s16 s16_clock_history', 'title' => __($params['title'], array('%1%' => dmString::strtolower(__($this->getModule()->getName())))))) . '</li>';
}
示例11: media_file_image_tag
function media_file_image_tag(DmMedia $file, $options = array()) {
$options = array_merge(array(
'width' => $file->isImage() ? 128 : 64,
'height' => $file->isImage() ? 98 : 64
), dmString::toArray($options, true));
if ($file->isImage()) {
$image = _media($file);
} else {
if (file_exists(
dmOs::join(
sfConfig::get('sf_web_dir')
.
'/dmCorePlugin/images/media/'
.
dmOs::getFileExtension($file->getFile(), false)
. '.png'
)
)) {
$image = _media('/dmCorePlugin/images/media/' . dmOs::getFileExtension($file->getFile(), false) . '.png');
} else {
$image = _media('/dmCorePlugin/images/media/unknown.png');
}
}
return $image->size($options['width'], $options['height']);
}
示例12: filterSet
/**
* Implementation of filterSet() to call set on Translation relationship to allow
* access to I18n properties from the main object.
*
* @param Doctrine_Record $record
* @param string $name Name of the property
* @param string $value Value of the property
* @return void
*/
public function filterSet(Doctrine_Record $record, $fieldName, $value)
{
$translation = $record->get('Translation');
$culture = myDoctrineRecord::getDefaultCulture();
if ($translation->contains($culture)) {
$i18n = $record->get('Translation')->get($culture);
} else {
$i18n = $record->get('Translation')->get($culture);
/*
* If translation is new
* populate it with i18n fallback
*/
if ($i18n->state() == Doctrine_Record::STATE_TDIRTY) {
if ($fallback = $record->getI18nFallBack()) {
$fallBackData = $fallback->toArray();
unset($fallBackData['id'], $fallBackData['lang']);
$i18n->fromArray($fallBackData);
}
}
}
if (!ctype_lower($fieldName) && !$i18n->contains($fieldName)) {
$underscoredFieldName = dmString::underscore($fieldName);
if (strpos($underscoredFieldName, '_') !== false && $i18n->contains($underscoredFieldName)) {
$fieldName = $underscoredFieldName;
}
}
$i18n->set($fieldName, $value);
return $value;
}
示例13: getDmConfiguration
public static function getDmConfiguration()
{
$moduleManager = dmContext::getInstance()->getModuleManager();
// homepage first
$config = array('homepage' => array('class' => 'sfRoute', 'url' => '/', 'params' => array('module' => 'dmAdmin', 'action' => 'index')));
// media library special route
if ($dmMediaLibraryModule = $moduleManager->getModuleOrNull('dmMediaLibrary')) {
$baseUrl = implode('/', array(dmString::slugify($dmMediaLibraryModule->getSpace()->getType()->getPublicName()), dmString::slugify($dmMediaLibraryModule->getSpace()->getPublicName()), dmString::slugify($dmMediaLibraryModule->getPlural())));
$config['dm_media_library_path'] = array('class' => 'sfRoute', 'url' => $baseUrl . '/path/:path', 'params' => array('module' => 'dmMediaLibrary', 'action' => 'path', 'path' => ''), 'requirements' => array('path' => '.*'));
}
// module routes
foreach ($moduleManager->getModules() as $module) {
if (!$module->hasAdmin()) {
continue;
}
$baseUrl = implode('/', array(dmString::slugify($module->getSpace()->getType()->getPublicName()), dmString::slugify($module->getSpace()->getPublicName()), dmString::slugify($module->getPlural())));
$config[$module->getUnderscore()] = array('class' => 'sfRoute', 'url' => $baseUrl . '/:action/*', 'params' => array('module' => $module->getSfName(), 'action' => 'index'));
}
// static routes
$config['default'] = array('class' => 'sfRoute', 'url' => '/+/:module/:action/*');
$config['signin'] = array('class' => 'sfRoute', 'url' => '/security/signin', 'params' => array('module' => 'dmUserAdmin', 'action' => 'signin'));
$config['signout'] = array('class' => 'sfRoute', 'url' => '/security/signout', 'params' => array('module' => 'dmUserAdmin', 'action' => 'signout'));
$config['dm_module_type'] = array('class' => 'sfRoute', 'url' => '/:moduleTypeName', 'params' => array('module' => 'dmAdmin', 'action' => 'moduleType'));
$config['dm_module_space'] = array('class' => 'sfRoute', 'url' => '/:moduleTypeName/:moduleSpaceName', 'params' => array('module' => 'dmAdmin', 'action' => 'moduleSpace'));
return $config;
}
示例14: configure
public function configure(array $data)
{
$isXhr = $data['context']->getRequest()->isXmlHttpRequest();
$uri = $this->cleanUri(dmArray::get($data['server'], 'PATH_INFO', $data['server']['REQUEST_URI']));
$milliseconds = (microtime(true) - dm::getStartTime()) * 1000;
$this->data = array('time' => (string) $data['server']['REQUEST_TIME'], 'uri' => dmString::truncate($uri, 500), 'code' => (string) $data['context']->getResponse()->getStatusCode(), 'app' => (string) sfConfig::get('sf_app'), 'env' => (string) sfConfig::get('sf_environment'), 'ip' => (string) $data['server']['REMOTE_ADDR'], 'user_id' => (string) $data['context']->getUser()->getUserId(), 'user_agent' => dmString::truncate($isXhr ? '' : isset($data['server']['HTTP_USER_AGENT']) ? $data['server']['HTTP_USER_AGENT'] : '', 500), 'xhr' => (int) $isXhr, 'mem' => (string) memory_get_peak_usage(true), 'timer' => (string) sprintf('%.0f', $milliseconds), 'cache' => sfConfig::get('dm_internal_page_cached'));
}
示例15: populate
/**
* Fill the field values with the page
*/
public function populate()
{
$boostValues = $this->getBoostValues();
// store the page id without indexing it
$this->store('page_id', $this->page->get('id'));
// index the page slug
$this->index('slug', dmString::unSlugify($this->page->get('slug')), $boostValues['slug']);
// index the page name
$this->index('name', $this->page->get('name'), $boostValues['name']);
// index the page title
$this->index('title', $this->page->get('title'), $boostValues['title']);
// index the page h1
$this->index('h1', $this->page->get('h1'), $boostValues['h1']);
// index the page description
$this->index('description', $this->page->get('description'), $boostValues['description']);
// index keywords only if the project uses them
if (sfConfig::get('dm_seo_use_keywords')) {
$this->index('keywords', $this->page->get('keywords'), $boostValues['keywords']);
}
// process the page body only if its boost value is not null
if ($boostValues['body']) {
$this->index('content_index', $this->getPageContentForIndex(), $boostValues['body']);
}
// store page content to display it on search results
$this->store('content', $this->getPageContentForStore());
}