本文整理汇总了PHP中string_to_camel函数的典型用法代码示例。如果您正苦于以下问题:PHP string_to_camel函数的具体用法?PHP string_to_camel怎么用?PHP string_to_camel使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了string_to_camel函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
public function run()
{
if (!$this->request->isAjax()) {
cmsCore::error404();
}
$field_id = $this->request->get('field_id', 0);
$field_type = $this->request->get('type', '');
$field_class = 'field' . string_to_camel('_', $field_type);
if (!class_exists($field_class)) {
cmsCore::error404();
}
$base_field = new $field_class(null, null);
$options = $base_field->getOptions();
$values = false;
if ($options && $field_id) {
$content_model = cmsCore::getModel('content');
$content_model->setTablePrefix('');
$field = $content_model->getContentField('{users}', $field_id);
$values = $field['options'];
}
$options_js_file = $this->cms_template->getJavascriptFileName('fields/' . $field_type);
if ($options_js_file) {
$this->cms_template->addJSFromContext($options_js_file);
}
$this->cms_template->render('backend/field_options', array('is_can_in_filter' => $base_field->filter_type !== false, 'options' => $options, 'values' => $values));
}
示例2: __construct
public function __construct()
{
$config = cmsConfig::getInstance();
if ($config->cache_enabled) {
$cacher_class = 'cmsCache' . string_to_camel('_', $config->cache_method);
$this->cacher = new $cacher_class();
$this->cache_ttl = $config->cache_ttl;
$this->is_debug = $config->debug;
}
}
示例3: loadControllerBackend
public function loadControllerBackend($controller_name, $request)
{
$config = cmsConfig::getInstance();
$ctrl_file = $config->root_path . 'system/controllers/' . $controller_name . '/backend.php';
if (!file_exists($ctrl_file)) {
$this->halt(sprintf(LANG_CP_ERR_BACKEND_NOT_FOUND, $controller_name));
}
include_once $ctrl_file;
$controller_class = 'backend' . string_to_camel('_', $controller_name);
$backend = new $controller_class($request);
return $backend;
}
示例4: run
public function run($ctype_id)
{
if (!$ctype_id) {
cmsCore::error404();
}
$content_model = cmsCore::getModel('content');
$ctype = $content_model->getContentType($ctype_id);
if (!$ctype) {
cmsCore::error404();
}
$form = $this->getForm('ctypes_field', array('add', $ctype['name']));
$is_submitted = $this->request->has('submit');
$field = array('ctype_id' => $ctype['id']);
if ($is_submitted) {
// добавляем поля настроек типа поля в общую форму
// чтобы они были обработаны парсером и валидатором
// вместе с остальными полями
if (empty($field['is_system'])) {
$field_type = $this->request->get('type');
$field_class = "field" . string_to_camel('_', $field_type);
$field_object = new $field_class(null, null);
$field_options = $field_object->getOptions();
foreach ($field_options as $option_field) {
$option_field->setName("options:{$option_field->name}");
$form->addField('type', $option_field);
}
}
$field = $form->parse($this->request, $is_submitted);
$errors = $form->validate($this, $field);
$field['ctype_id'] = $ctype['id'];
if (!$errors) {
// если не выбрана группа, обнуляем поле группы
if (!$field['fieldset']) {
$field['fieldset'] = null;
}
// если создается новая группа, то выбираем ее
if ($field['new_fieldset']) {
$field['fieldset'] = $field['new_fieldset'];
}
unset($field['new_fieldset']);
// сохраняем поле
$field_id = $content_model->addContentField($ctype['name'], $field);
if ($field_id) {
cmsUser::addSessionMessage(sprintf(LANG_CP_FIELD_CREATED, $field['title']), 'success');
}
$this->redirectToAction('ctypes', array('fields', $ctype['id']));
}
if ($errors) {
cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
}
}
return cmsTemplate::getInstance()->render('ctypes_field', array('do' => 'add', 'ctype' => $ctype, 'field' => $field, 'form' => $form, 'errors' => isset($errors) ? $errors : false));
}
示例5: loadControllerBackend
public function loadControllerBackend($controller_name, $request)
{
$config = cmsConfig::getInstance();
$ctrl_file = $config->root_path . 'system/controllers/' . $controller_name . '/backend.php';
if (!file_exists($ctrl_file)) {
cmsCore::error(sprintf(LANG_CP_ERR_BACKEND_NOT_FOUND, $controller_name));
}
include_once $ctrl_file;
$controller_class = 'backend' . string_to_camel('_', $controller_name);
$backend = new $controller_class($request);
// Устанавливаем корень для URL внутри бакенда
$backend->setRootURL($this->name . '/controllers/edit/' . $controller_name);
return $backend;
}
示例6: run
public function run()
{
$content_model = cmsCore::getModel('content');
$content_model->setTablePrefix('');
$form = $this->getForm('field', array('add'));
$form = cmsEventsManager::hook('user_field_form', $form);
$field = array('ctype_id' => 'users');
if ($this->request->has('submit')) {
// добавляем поля настроек типа поля в общую форму
// чтобы они были обработаны парсером и валидатором
// вместе с остальными полями
$field_type = $this->request->get('type');
$field_class = "field" . string_to_camel('_', $field_type);
$field_object = new $field_class(null, null);
$field_options = $field_object->getOptions();
foreach ($field_options as $option_field) {
$option_field->setName("options:{$option_field->name}");
$form->addField('type', $option_field);
}
$field = $form->parse($this->request, true);
$errors = $form->validate($this, $field);
if (!$errors) {
$field['ctype_id'] = null;
// если не выбрана группа, обнуляем поле группы
if (!$field['fieldset']) {
$field['fieldset'] = null;
}
// если создается новая группа, то выбираем ее
if ($field['new_fieldset']) {
$field['fieldset'] = $field['new_fieldset'];
}
unset($field['new_fieldset']);
// сохраняем поле
$field_id = $content_model->addContentField('{users}', $field);
if ($field_id) {
cmsUser::addSessionMessage(sprintf(LANG_CP_FIELD_CREATED, $field['title']), 'success');
}
$this->redirectToAction('fields');
}
if ($errors) {
cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
}
}
return $this->cms_template->render('backend/field', array('do' => 'add', 'field' => $field, 'form' => $form, 'errors' => isset($errors) ? $errors : false));
}
示例7: run
public function run()
{
if (!$this->request->isAjax()) {
cmsCore::error404();
}
$field_id = $this->request->get('field_id');
$field_type = $this->request->get('type');
$field_class = 'field' . string_to_camel('_', $field_type);
$base_field = new $field_class(null, null);
$options = $base_field->getOptions();
if (!$options) {
$this->halt();
}
$values = false;
if ($field_id) {
$content_model = cmsCore::getModel('content');
$content_model->setTablePrefix('');
$field = $content_model->getContentField('{users}', $field_id);
$values = $field['options'];
}
cmsTemplate::getInstance()->render('backend/field_options', array('options' => $options, 'values' => $values));
}
示例8: updateContentField
public function updateContentField($ctype_name, $id, $field)
{
$content_table_name = $this->table_prefix . $ctype_name;
$fields_table_name = $this->table_prefix . $ctype_name . '_fields';
$field_old = $this->getContentField($ctype_name, $id);
if (!$field_old['is_system']) {
if ($field_old['name'] != $field['name'] || $field_old['type'] != $field['type']) {
$field_class = "field" . string_to_camel('_', $field['type']);
$field_handler = new $field_class(null, null);
$sql = "ALTER TABLE `{#}{$content_table_name}` CHANGE `{$field_old['name']}` `{$field['name']}` {$field_handler->getSQL()}";
$this->db->query($sql);
}
}
return $this->update($fields_table_name, $id, $field);
}
示例9: updateContentField
public function updateContentField($ctype_name, $id, $field)
{
$content_table_name = $this->table_prefix . $ctype_name;
$fields_table_name = $this->table_prefix . $ctype_name . '_fields';
$field_old = $this->getContentField($ctype_name, $id);
if (!$field_old['is_system']) {
$new_lenght = isset($field['options']) && !empty($field['options']['max_length']) ? $field['options']['max_length'] : false;
$old_lenght = isset($field_old['options']) && !empty($field_old['options']['max_length']) ? $field_old['options']['max_length'] : false;
$field_class = 'field' . string_to_camel('_', $field['type']);
$field_handler = new $field_class(null, isset($field['options']) ? array('options' => $field['options']) : null);
if ($field_old['name'] != $field['name'] || $field_old['type'] != $field['type'] || $new_lenght != $old_lenght) {
$sql = "ALTER TABLE `{#}{$content_table_name}` CHANGE `{$field_old['name']}` `{$field['name']}` {$field_handler->getSQL()}";
$this->db->query($sql);
if ($field_old['name'] != $field['name'] || $field_old['type'] != $field['type']) {
// удаляем старый индекс
$this->db->dropIndex($content_table_name, $field_old['name']);
// добавляем новый
if ($field['is_in_filter'] && $field_handler->allow_index) {
$this->db->addIndex($content_table_name, $field['name']);
}
}
}
if ($field['is_in_filter'] && $field_handler->allow_index && !$field_old['is_in_filter']) {
$this->db->addIndex($content_table_name, $field['name']);
}
if (!$field['is_in_filter'] && $field_handler->allow_index && $field_old['is_in_filter']) {
$this->db->dropIndex($content_table_name, $field_old['name']);
}
// если есть опция полнотекстового поиска и ее значение изменилось
if (is_array($field['options']) && array_key_exists('in_fulltext_search', $field['options'])) {
if ($field['options']['in_fulltext_search'] != @$field_old['options']['in_fulltext_search']) {
// получаем полнотекстовый индекс для таблицы, он может быть только один
$fulltext_index = $this->db->getTableIndexes($content_table_name, 'FULLTEXT');
if ($fulltext_index) {
// название индекса
$index_name = key($fulltext_index);
// поля индекса
$index_fields = $fulltext_index[$index_name];
// выключили опцию
if (!$field['options']['in_fulltext_search']) {
$key = array_search($field['name'], $index_fields);
// нашли - удаляем из массива
if ($key !== false) {
unset($index_fields[$key]);
// удаляем индекс
$this->db->dropIndex($content_table_name, $index_name);
// и создаем новый
if ($index_fields) {
$this->db->addIndex($content_table_name, $index_fields, '', 'FULLTEXT');
}
}
}
// включили опцию
if ($field['options']['in_fulltext_search']) {
// ищем, нет ли такого поля уже в индексе, мало ли :-)
$key = array_search($field['name'], $index_fields);
// не нашли, добавляем
if ($key === false) {
// удаляем старый индекс
$this->db->dropIndex($content_table_name, $index_name);
// создаем новый
$this->createFullTextIndex($ctype_name, $field['name']);
}
}
}
}
}
}
return $this->update($fields_table_name, $id, $field);
}
示例10: runWidget
public function runWidget($widget)
{
$user = cmsUser::getInstance();
$is_user_view = $user->isInGroups($widget['groups_view']);
$is_user_hide = !empty($widget['groups_hide']) && $user->isInGroups($widget['groups_hide']) && !$user->is_admin;
if ($is_user_hide) {
return false;
}
if (!$is_user_view) {
return false;
}
$path = 'system/' . cmsCore::getWidgetPath($widget['name'], $widget['controller']);
$file = $path . '/widget.php';
cmsCore::includeFile($file);
cmsCore::loadWidgetLanguage($widget['name'], $widget['controller']);
$class = 'widget' . ($widget['controller'] ? string_to_camel('_', $widget['controller']) : '') . string_to_camel('_', $widget['name']);
$widget_object = new $class($widget);
$cache_key = "widgets.{$widget['id']}";
$cache = cmsCache::getInstance();
if (!$widget_object->isCacheable() || false === ($result = $cache->get($cache_key))) {
$result = call_user_func_array(array($widget_object, 'run'), array());
if ($result) {
// Отдельно кешируем имя шаблона виджета, поскольку оно могло быть
// изменено внутри виджета, а в кеш у нас попадает только тот массив
// который возвращается кодом виджета (без самих свойств $widget_object)
$result['_wd_template'] = $widget_object->getTemplate();
}
$cache->set($cache_key, $result);
}
if ($result === false) {
return false;
}
if (isset($result['_wd_template'])) {
$widget_object->setTemplate($result['_wd_template']);
}
cmsTemplate::getInstance()->renderWidget($widget_object, $result);
}
示例11: updateContentField
public function updateContentField($ctype_name, $id, $field)
{
$content_table_name = $this->table_prefix . $ctype_name;
$fields_table_name = $this->table_prefix . $ctype_name . '_fields';
$field_old = $this->getContentField($ctype_name, $id);
if (!$field_old['is_system']) {
$new_lenght = isset($field['options']) && !empty($field['options']['max_length']) ? $field['options']['max_length'] : false;
$old_lenght = isset($field_old['options']) && !empty($field_old['options']['max_length']) ? $field_old['options']['max_length'] : false;
$field_class = 'field' . string_to_camel('_', $field['type']);
$field_handler = new $field_class(null, isset($field['options']) ? array('options' => $field['options']) : null);
if ($field_old['name'] != $field['name'] || $field_old['type'] != $field['type'] || $new_lenght != $old_lenght) {
if ($field_old['type'] != $field['type']) {
$this->db->dropIndex($content_table_name, $field_old['name']);
}
$sql = "ALTER TABLE `{#}{$content_table_name}` CHANGE `{$field_old['name']}` `{$field['name']}` {$field_handler->getSQL()}";
$this->db->query($sql);
if ($field_old['name'] != $field['name'] || $field_old['type'] != $field['type']) {
// поля денормализации
$old_cfield_name = $field_old['name'] . cmsFormField::FIELD_CACHE_POSTFIX;
$new_cfield_name = $field['name'] . cmsFormField::FIELD_CACHE_POSTFIX;
$update_cache_sql = "ALTER TABLE `{#}{$content_table_name}` CHANGE `{$old_cfield_name}` `{$new_cfield_name}` {$field_handler->getCacheSQL()}";
// изменилось только имя поля
if ($field_handler->is_denormalization && $field_old['type'] == $field['type']) {
$this->db->query($update_cache_sql);
}
// изменился тип
if ($field_old['type'] != $field['type']) {
if ($field_old['parser']->is_denormalization && $field_handler->is_denormalization) {
$this->db->query($update_cache_sql);
} elseif ($field_old['parser']->is_denormalization && !$field_handler->is_denormalization) {
$this->db->dropTableField($content_table_name, $old_cfield_name);
} elseif (!$field_old['parser']->is_denormalization && $field_handler->is_denormalization) {
$sql = "ALTER TABLE {#}{$content_table_name} ADD `{$new_cfield_name}` {$field_handler->getCacheSQL()}";
$this->db->query($sql);
}
}
// удаляем старый индекс
$this->db->dropIndex($content_table_name, $field_old['name']);
// добавляем новый
if ($field['is_in_filter'] && $field_handler->allow_index) {
$this->db->addIndex($content_table_name, $field['name']);
}
}
}
if ($field['is_in_filter'] && $field_handler->allow_index && !$field_old['is_in_filter']) {
$this->db->addIndex($content_table_name, $field['name']);
}
if (!$field['is_in_filter'] && $field_handler->allow_index && $field_old['is_in_filter']) {
$this->db->dropIndex($content_table_name, $field_old['name']);
}
// если есть опция полнотекстового поиска и ее значение изменилось
if (is_array($field['options']) && array_key_exists('in_fulltext_search', $field['options'])) {
if ($field['options']['in_fulltext_search'] != @$field_old['options']['in_fulltext_search']) {
// получаем полнотекстовый индекс для таблицы, он может быть только один
$fulltext_index = $this->db->getTableIndexes($content_table_name, 'FULLTEXT');
if ($fulltext_index) {
// название индекса
$index_name = key($fulltext_index);
// поля индекса
$index_fields = $fulltext_index[$index_name];
// выключили опцию
if (!$field['options']['in_fulltext_search']) {
$key = array_search($field['name'], $index_fields);
// нашли - удаляем из массива
if ($key !== false) {
unset($index_fields[$key]);
// удаляем индекс
$this->db->dropIndex($content_table_name, $index_name);
// и создаем новый
if ($index_fields) {
$this->db->addIndex($content_table_name, $index_fields, '', 'FULLTEXT');
}
}
}
// включили опцию
if ($field['options']['in_fulltext_search']) {
// ищем, нет ли такого поля уже в индексе, мало ли :-)
$key = array_search($field['name'], $index_fields);
// не нашли, добавляем
if ($key === false) {
// удаляем старый индекс
$this->db->dropIndex($content_table_name, $index_name);
// создаем новый
$this->createFullTextIndex($ctype_name, $field['name']);
}
}
}
}
}
}
$result = $this->update($fields_table_name, $id, $field);
if ($result) {
$field['id'] = $id;
cmsEventsManager::hook('ctype_field_after_update', array($field, $ctype_name, $this));
}
cmsCache::getInstance()->clean("content.fields.{$ctype_name}");
return $result;
}
示例12: __construct
public function __construct()
{
$cacher_class = 'cmsCache' . string_to_camel('_', cmsConfig::get('cache_method'));
$this->cacher = new $cacher_class();
}
示例13: __set_state
/**
* Для var_export
* @param array $data
* @return \field_class
*/
public static function __set_state($data)
{
$field_class = 'field' . string_to_camel('_', $data['class']);
return new $field_class($data['name'], $data);
}
示例14: run
public function run($ctype_id, $field_id)
{
if (!$ctype_id || !$field_id) {
cmsCore::error404();
}
$content_model = cmsCore::getModel('content');
$ctype = $content_model->getContentType($ctype_id);
if (!$ctype) {
cmsCore::error404();
}
$form = $this->getForm('ctypes_field', array('edit', $ctype['name']));
$form = cmsEventsManager::hook('ctype_field_form', $form);
list($form, $ctype) = cmsEventsManager::hook($ctype['name'] . '_ctype_field_form', array($form, $ctype));
$field = $content_model->getContentField($ctype['name'], $field_id);
// скроем поле "Системное имя" для фиксированных полей
if ($field['is_fixed']) {
$form->hideField('basic', 'name');
}
// скроем лишние опции для системных полей
if ($field['is_system']) {
$form->hideField('basic', 'hint');
$form->hideFieldset('type');
$form->hideFieldset('group');
$form->hideFieldset('format');
$form->hideFieldset('values');
$form->hideFieldset('labels');
$form->hideFieldset('edit_access');
}
// удалим выбор типа для полей с фиксированным типом
if ($field['is_fixed_type']) {
$form->removeFieldset('type');
}
if ($this->request->has('submit')) {
// добавляем поля настроек типа поля в общую форму
// чтобы они были обработаны парсером и валидатором
// вместе с остальными полями
if (!$field['is_system'] && !$field['is_fixed_type']) {
$field_type = $this->request->get('type');
$field_class = "field" . string_to_camel('_', $field_type);
$field_object = new $field_class(null, null);
$field_options = $field_object->getOptions();
foreach ($field_options as $option_field) {
$option_field->setName("options:{$option_field->name}");
$form->addField('type', $option_field);
}
}
$defaults = $field['is_fixed_type'] ? array('type' => $field['type']) : array();
$field = array_merge($defaults, $form->parse($this->request, true));
$errors = $form->validate($this, $field);
if (!$errors) {
// если не выбрана группа, обнуляем поле группы
if (!$field['fieldset']) {
$field['fieldset'] = null;
}
// если создается новая группа, то выбираем ее
if ($field['new_fieldset']) {
$field['fieldset'] = $field['new_fieldset'];
}
unset($field['new_fieldset']);
// сохраняем поле
$content_model->updateContentField($ctype['name'], $field_id, $field);
$this->redirectToAction('ctypes', array('fields', $ctype['id']));
}
if ($errors) {
cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
}
}
return $this->cms_template->render('ctypes_field', array('do' => 'edit', 'ctype' => $ctype, 'field' => $field, 'form' => $form, 'errors' => isset($errors) ? $errors : false));
}
示例15: getForm
public static function getForm($form_file, $form_name, $params = false)
{
if (!file_exists($form_file)) {
return false;
}
include_once $form_file;
$form_class = 'form' . string_to_camel('_', $form_name);
$form = new $form_class();
if ($params) {
$form->setParams($params);
$form->setStructure(call_user_func_array(array($form, 'init'), $params));
} else {
$form->setStructure($form->init());
}
return $form;
}