Loadырь

Loadырь

Быть лучшим - не значит быть достаточно хорошим.
+1247
Репутация
4894
Рейтинг
#1 Instant CMS 2 - проблемы 14 июня 2015 в 22:58

Если в поле Загрузка файлов — загрузить файлы с кириллицей в имени — имя файла не отображается..

jorgovich
Это не баг, но у всех именно так. В файле \system\libs\files.helper.php есть функция files_sanitize_name, которая режет все буквы из кириллицы. А цифры пропускает.
#2 Дата публикации фото 14 июня 2015 в 11:18
А использовать id фотографии — не вариант?
#3 [ЕСТЬ РЕШЕНИЕ] Вывода списка с мультивыбором в фильтре 11 июня 2015 в 09:52
Если вам нужен мультисписок при создании контента и простой список при выборе в фильтре, тогда так
  1. public function applyFilter($model, $value) {
  2.  
  3. $model->filterEqual($this->name, $value);
  4.  
  5. return $model;
  6.  
  7. }
или так
  1. public function applyFilter($model, $value) {
  2.  
  3. $model->filterLike($this->name, $value);
  4.  
  5. return $model;
  6.  
  7. }
#4 [ЕСТЬ РЕШЕНИЕ] Вывода списка с мультивыбором в фильтре 11 июня 2015 в 06:32
Iceman, я бы избавился от кода который в libs/html.helper.php и перенёс его в файл поля. Это избавит вас от рутины при обновлении движка и этого файла. В итоге у вас получится свой тип поля независимый от изменения файлов движка.
#5 [ЕСТЬ РЕШЕНИЕ] Вывода списка с мультивыбором в фильтре 10 июня 2015 в 21:13
Iceman, за вывод в фильтре по моему отвечает функция — public function getFilterInput($value) в файлах \system\fields\list.php и \system\fields\listbitmask.php (второй вроде за мультиселект отвечает).
В вашем html_list_multiple я не увидел слова multiple, ни в коде, ни в передаваемых атрибутах. Возможно с этим связана его неработоспособность.
#6 [ЕСТЬ РЕШЕНИЕ] Вывода списка с мультивыбором в фильтре 10 июня 2015 в 18:54
Простой заменой одного файла на другой ничего не выйдет.
Если просто поменять все такие списки в нужный вам вид, то достаточно внести правки в файл \system\libs\html.helper.php строка где-то 551
  1. function html_select_multiple($name, $items, $selected=array(), $attributes=array(), $is_tree=false)
или поправить файл вашего шаблона templates\вашшаблон\assets\fields\listmultiple.tpl.php где вместо
  1. html_select_multiple($field->element_name, $items, $value, array('id'=>$field->id));
вставить свою похожую функцию или код самого селекта.
Что касается вывода только в фильтре, то лучше сделать копию поля listmultiple с нужным видом и в нужных типах контента установить тип этого поля вместо стандартного.
#7 PHP редактор, посоветуйте. 10 июня 2015 в 16:16

так у меня 8г озу… hdd 7200 оборотов и тормоза.

Денис Васильевич
Будьте проще
Проц 2 ядра по 2 ггерца, Оператива — 2 гига. Все файлы включая локальный сервак на флешке с usb 2.0. Восемь проектов не запускал одновременно, но поначалу использовал три проекта одновременно. Программа не тормозила, но тормозил, я путаясь в одинаковых структурах разных проектов.
#8 PHP редактор, посоветуйте. 10 июня 2015 в 16:06
Денис Васильевич, я пользуюсь IDE от NetBeans. Да, она тяжеловата на старте, для быстрого внесения мелких правок, оно — само зло. Но в процессе работы тормозов пока не видел на ней с кучей открытых вкладок. При шустром интернете в ней комфортно работать непосредственно по ftp.
#9 [ЕСТЬ РЕШЕНИЕ] Как создать свое поле icms 2.xx 9 июня 2015 в 14:32

или что-то упустил?

kirkr
  1.  
  2. public $title = LANG_PARSER_MY;
  3. public $sql = 'longtext';
#10 Ошибка базы данных ICMS 2.1.2 при создании новости 8 июня 2015 в 18:03
a1xzhu, таблица "cms_images_presets" появилась в базе данных в версии 2.2.0. У вас часть файлов на сайте из этой версии или выше. Но БД от версии 2.1.2. Это следствие отката из бэкапа БД или кривое обновление файлов движка. Тут два варианта. Либо БД тянуть до последней версии, либо файлы копировать из дистрибутива движка 2.1.2. Но есть вариант — попробуйте на локалке поэтапно обновиться в автоматическом режиме с версии 2.1.2 до 2.2.1 недостающие файлы и таблицы в БД должны сами встать как надо. Если на локалке всё будет гуд, то можно и на сайте пробовать.
#11 Собственная страница для привязки виджетов. Как создать маски по Полю типа контента? 5 июня 2015 в 06:03
Алексей, а без первого слеша пробовали так: board*type=1*
#12 Оптимизация таблиц: Как правильно? 4 июня 2015 в 13:46
Судя по этим рукописям лучше использовать меньше столбцов.
5.4.2. Сделайте объем данных как можно меньше

Одна из основных задач оптимизации заключается в том, чтобы данные (и индексы) занимали как можно меньше места на диске (и в памяти). Это дает значительные преимущества в работе, поскольку ускоряется чтение диска, а оперативная память, как правило, используется меньше. Индексирование также требует меньших ресурсов, если оно выполняется на меньших столбцах.

MySQL поддерживает большое количество различных типов таблиц и форматов строк. Значительный выигрыш в производительности можно получить за счет правильного выбора формата таблицы (see Глава 7, Типы таблиц MySQL).

Чтобы увеличить производительность работы с таблицей и минимизировать требуемое пространство памяти, можно применять перечисленные ниже технические приемы:

Используйте по возможности наиболее эффективные (наименьшие по объему) типы данных. В MySQL имеется много специализированных типов данных, применение которых позволяет экономить пространство на диске и в памяти.

Используйте, если это возможно, целочисленные типы меньшей длины, чтобы получить таблицы меньшего размера. Например, MEDIUMINT часто лучше, чем INT.

Объявляйте везде, где возможно, столбцы как NOT NULL. Это позволяет ускорить все операции и сэкономить по одному биту для каждого столбца. Однако если для данного приложения действительно нужен NULL, то вы все-таки его (NULL) используйте. Нужно просто избегать наличия NULL во всех столбцах по умолчанию.

Если отсутствуют какие-либо столбцы переменной длины (столбцы типов VARCHAR, TEXT или BLOB), то нужно применять формат записи фиксированного размера. Такой метод дает увеличение скорости, но при этом, к сожалению, может потребоваться лишнее место на диске. See Раздел 7.1.2, «Форматы таблиц MyISAM».

Первичные индексы в таблице должны быть как можно короче. Это делает идентификацию конкретной записи простой и эффективной.

Метод хранения/индексации нужно выбрать для каждой таблицы. See Глава 7, Типы таблиц MySQL.

Создавайте только те индексы, которые действительно необходимы. Индексы хороши для извлечения данных, но плохи при необходимости быстрого сохранения информации. Если работа с таблицей большей частью сводится к поиску на некотором сочетании столбцов, то следует сделать по ним индекс. Первая часть этого индекса должна представлять собой наиболее используемый столбец. Если всегда задействовано много столбцов, то следует первым использовать столбец с большим количеством повторений, чтобы получить лучшее сжатие этого индекса.

Если в столбце с большой степенью вероятности в начальной части символов присутствует уникальный префикс, то лучше индексировать только этот префикс. MySQL поддерживает индекс по части символов столбца. Более короткие индексы работают быстрее не только за счет того, что они занимают меньше дискового пространства, но также и потому, что они обеспечивают больше попаданий в кэш индексов, благодаря чему уменьшается количество операций поиска на диске. See Раздел 5.5.2, «Настройка параметров сервера».

Иногда целесообразно разбить очень часто просматриваемую таблицу на две, особенно если таблица имеет динамический формат и при просмотре данной таблицы для поиска соответствующих строк можно использовать таблицу с меньшим статическим форматом.
#13 Оптимизация таблиц: Как правильно? 4 июня 2015 в 11:53
А как планируете использовать key | val, key2 | val2 при каждом обращении к этому полю? Только key | val или только key2 | val2 или необходимо получить их все сразу и держать в памяти пока потребуются?
#14 [ЕСТЬ РЕШЕНИЕ] Вставить поле из базы 4 июня 2015 в 11:15

Скажем хочу выввести поле "content" из статьи под ID "1" контента "pages"

Alteste
  1.  
  2. <?php $item = cmsCore::getModel('content')->getContentItem('pages', 1); // 1 - id материала ?>
  3.  
передаём $item в шаблон и выводим, что из неё надо.
  1.  
  2. <?php echo $item['content'];?>
  3.  
#15 Как проверить есть ли на хостинге изображение InstantCMS2 2 июня 2015 в 08:42
Можно проверять как предложил Evanescence. Только для функции file_exists нужен полный путь от корня хостинга а не сайта.
Например так
  1. $img= cmsConfig::getInstance()->upload_root . 'u1/000/foto.jpg';
или так
  1. $img= cmsConfig::getInstance()->upload_path . 'u1/000/foto.jpg';
Точно сейчас не припомню который правильнее. Возможно ещё слеши надо добавить перед u1. Пробуйте.
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.