А

Александр

+28
Репутация
22
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Помогите ускорить время загрузки слайдера для iCMS 2.X 6 февраля 2015 в 09:05

Можете показать демо?

Atid — Gorec
Очень скоро оно появится тут:
myinstdemo.16mb.com/

r2, большое спасибо!). Теперь он реально быстро работает)
#1 [ЕСТЬ РЕШЕНИЕ] Помогите ускорить время загрузки слайдера для iCMS 2.X 6 февраля 2015 в 04:55
Нашел хороший слайдер в интернете, перенес на Инстант, но вот проблема, он не отображается до тех пор пока не загрузится вся страница. Помогите уменьшить его время "генерации", так как у самого знаний по jQuery не достаточно для этого.

Вот как он выглядит:


Устанавливать мои исходники рекомендую на тестовый сайт. С исходниками я вроде хоть и не налажал когда собирал всё в кучу, но не рекомендовал бы это всё ставить на "боевой" проект (мало ли). Все папки просто кидать в корень сайта.

Чуть более подробно о том как будет проводится установка — написано тут:
instantcms.ru/forum/thread19830-5.html#197467

Собственно после установки (все исходники в конце сообщения) и замены всех совпадений, идем в main.tpl.php, и подключаем css файл:
  1. <?php $this->addMainCSS("templates/{$this->name}/css/slider_featured.css"); ?>
и вставляем какой-то код перед < /head> zst. Честно не знаю как он называется, я бы назвал это "инициализация"))))

  1. <script type="text/javascript">
  2. $(window).load(function() {
  3. $('#featured').orbit();
  4. });
  5. </script>
После этого заходим в админка/виджеты, создаем новый слайдер, во вкладке "опции" выбираем стиль "журнальный". Всё, слайдер установлен и уже работает.


Далее помогите сделать его в пару раз быстрее, что-бы как можно меньше пострадал функционал. Спасибо большое всем кто откликнется :)
Прикрепленный файл
publichtml_g8pts.zip 20 Кб
#2 [ЕСТЬ РЕШЕНИЕ] Проблема кол-во символов в тексте icms2.1.2 6 февраля 2015 в 00:17
Николай Валентинович Сазоненко, R2 имеет ввиду:


жмакаете "сохранить"
#3 Обновление InstantCMS 2.1.2 5 февраля 2015 в 20:57

так легко же решается? для вашего примера:

r2
Это как один из вариантов. Это не всегда удобно.


Если мне для пятого блока нужно применить особый стиль, то проще написать:
  1. aside .block:nth-child(5) { стиль }
но вот беда, на главной странице, пятый блок уже шестой по счету

Как мне быть в этой ситуации без использования поля "Класс CSS"?
#4 Вопрос IT-шникам 5 февраля 2015 в 18:59

В одном интернет провайдере в моем городе, есть FTP портал, сайт разработал сам на InstantCMS 2

Evanescence
А что на этом сайте? Новости или фильмы?

Особенно оперативку и HDD

qwest
Лучше будет поставить SSD. Он дороже, но быстрее
#5 Обновление InstantCMS 2.1.2 5 февраля 2015 в 03:58
понимаю что я уже всех достал со своими багами и исправлениями, особенно r2, но уж потерпите еще немного).


Если ввести данный класс — то он никак не отображается в HTML. Следовательно надо исправить)

Я хочу создать два меню одно под другим

По этому нужно вывести этот класс в html, что-бы в css эти меню имели два разных стиля (одно главное, другое субменю)

Понял как можно вывести как:


Но думаю если этот класс поместить в список ul — то будет лучше. Как это сделать я еще не додумался.


Есть конечно вариант:

Но сомневаюсь что он удобнее и правильнее чем который я изложил выше
#6 Обновление InstantCMS 2.1.2 4 февраля 2015 в 23:08
В следующем обновлении хотелось бы увидеть вот такое поле для виджета "слайдер"


У себя я уже сделал, но не хочется иметь костыль в системных файлах, который при следующих обновлениях перестанет работать. Собственно вот исходники:

options.form.php
  1. <?php
  2.  
  3. class formWidgetContentSliderOptions extends cmsForm {
  4.  
  5. public function init() {
  6.  
  7. return array(
  8.  
  9. 'type' => 'fieldset',
  10. 'title' => LANG_OPTIONS,
  11. 'childs' => array(
  12.  
  13. new fieldList('options:ctype_id', array(
  14. 'title' => LANG_CONTENT_TYPE,
  15. 'generator' => function($item) {
  16.  
  17. $model = cmsCore::getModel('content');
  18. $tree = $model->getContentTypes();
  19.  
  20. $items = array();
  21.  
  22. if ($tree) {
  23. foreach ($tree as $item) {
  24. $items[$item['id']] = $item['title'];
  25. }
  26. }
  27.  
  28. return $items;
  29.  
  30. }
  31. )),
  32.  
  33. new fieldString('options:dataset', array(
  34. 'title' => LANG_WD_CONTENT_SLIDER_DATASET
  35. )),
  36.  
  37. new fieldString('options:image_field', array(
  38. 'title' => LANG_WD_CONTENT_SLIDER_IMAGE,
  39. 'rules' => array(
  40. array('required')
  41. )
  42. )),
  43.  
  44. new fieldString('options:teaser_field', array(
  45. 'title' => LANG_WD_CONTENT_SLIDER_TEASER
  46. )),
  47.  
  48. new fieldList('options:style', array(
  49. 'title' => LANG_WD_CONTENT_SLIDER_STYLE,
  50. 'default' => 'basic',
  51. 'items' => array(
  52. 'basic' => LANG_WD_CONTENT_SLIDER_STYLE_BASIC,
  53. 'featured' => LANG_WD_CONTENT_SLIDER_STYLE_FEATURED
  54. )
  55. )),
  56.  
  57. new fieldNumber('options:delay', array(
  58. 'title' => LANG_WD_CONTENT_SLIDER_DELAY,
  59. 'hint' => LANG_WD_CONTENT_SLIDER_DELAY_HINT,
  60. 'default' => 5,
  61. 'units' => LANG_SECOND10
  62. )),
  63.  
  64. new fieldNumber('options:limit', array(
  65. 'title' => LANG_LIST_LIMIT,
  66. 'default' => 4,
  67. 'rules' => array(
  68. array('required')
  69. )
  70. )),
  71.  
  72. )
  73. ),
  74.  
  75. );
  76.  
  77. }
  78.  
  79. }
  80.  
widget.php
  1. <?php
  2. class widgetContentSlider extends cmsWidget {
  3.  
  4. public function run(){
  5.  
  6. $ctype_id = $this->getOption('ctype_id');
  7. $dataset = $this->getOption('dataset');
  8. $image_field = $this->getOption('image_field');
  9. $teaser_fields = $this->getOption('teaser_field');
  10. $style = $this->getOption('style', 'basic');
  11. $limit = $this->getOption('limit', 10);
  12. $style = $this->getOption('style', 'basic');
  13. $delay = $this->getOption('delay', 5);
  14.  
  15. $model = cmsCore::getModel('content');
  16.  
  17. $ctype = $model->getContentType($ctype_id);
  18.  
  19. if (!$ctype) { return false; }
  20.  
  21. if ($dataset){
  22.  
  23. $datasets = $model->getContentDatasets($ctype['id']);
  24.  
  25. if (isset($datasets[ $dataset ])){
  26. $model->applyDatasetFilters($datasets[ $dataset ]);
  27. } else {
  28. $dataset = false;
  29. }
  30.  
  31. }
  32.  
  33. if (!$dataset){
  34. $model->orderBy('date_pub', 'desc');
  35. }
  36.  
  37. // Отключаем фильтр приватности для тех кому это разрешено
  38. if (cmsUser::isAllowed($ctype['name'], 'view_all')) {
  39. $model->disablePrivacyFilter();
  40. }
  41.  
  42. // Скрываем записи из скрытых родителей (приватных групп и т.п.)
  43. $model->filterHiddenParents();
  44.  
  45. $items = $model->
  46. limit($limit)->
  47. getContentItems($ctype['name']);
  48.  
  49. if (!$items) { return false; }
  50.  
  51. $this->setTemplate("slider_{$style}");
  52.  
  53. return array(
  54. 'ctype' => $ctype,
  55. 'delay' => $delay,
  56. 'image_field' => $image_field,
  57. 'teaser_field' => $teaser_fields,
  58. 'style' => $style,
  59. 'items' => $items
  60. );
  61.  
  62. }
  63.  
  64. }
  65.  
slider.php
  1. <?php
  2.  
  3. define('LANG_WD_CONTENT_SLIDER_DATASET', 'Название набора');
  4. define('LANG_WD_CONTENT_SLIDER_IMAGE', 'Поле изображения');
  5. define('LANG_WD_CONTENT_SLIDER_TEASER', 'Поле краткого описания');
  6. define('LANG_WD_CONTENT_SLIDER_STYLE', 'Стиль');
  7. define('LANG_WD_CONTENT_SLIDER_STYLE_BASIC', 'Обычный');
  8. define('LANG_WD_CONTENT_SLIDER_STYLE_FEATURED', 'Журнальный');
  9. define('LANG_WD_CONTENT_SLIDER_DELAY', 'Задержка между слайдами');
  10. define('LANG_WD_CONTENT_SLIDER_DELAY_HINT', 'Введите ноль чтобы отключить автоматическую смену слайдов');
Все шаблоны заранее объявляются в options.form.php, и располагаются по адресу \templates\default\controllers\content\widgets\slider, с именами
slider_basic.tpl.php
slider_featured.tpl.php
и тд.

Думаю это будет очень полезная штука. Теперь на сайте может быть более одного типа слайдеров
#7 Как сделать скрытое поле в контенте? 4 февраля 2015 в 16:58
kreator, есть платный компонент "билинг". он может решить эту проблему.

Ну или разрешить просмотр только для зарегистрированных пользователей
#8 Синтаксические ошибки InstantCMS 2.x 4 февраля 2015 в 16:09

Принцип такой, в своем шаблоне можно иметь только то, что реально необходимо.

r2

Теперь понял. Реально не знал).
#9 Синтаксические ошибки InstantCMS 2.x 4 февраля 2015 в 14:31

Какая же это ошибка. Присмотритесь к коду системы и вы увидите, что она работает по принципу — "если нет в папке шаблона пользователя, то брать из папки по дефолту". Поэтому папка "default" будет всегда у пользователей. А вот файл "slider.js" в папке "templates/{$this->name}/js/" реально может отсутствовать. Или будет присутствовать файл с таким названием, но другим содержимым. Что явно приведёт к сбою в работе слайдера, который прописан в системе.

Loadырь

Объясните мне разницу между
  1. <?php $this->addMainJS("templates/{$this->name}/js/jquery.js"); ?>
и
  1. <?php $this->addJS('templates/default/js/slider.js'); ?>
В одном случае у нас гибкая конструкция, в другом случае жесткая. В какой-то из них наверняка кроется сложность эксплуатирования)


Еще бы тон сменить на более дружелюбный, вообще супер было бы.

r2
Надеюсь смайлик в конце сообщения убедит в том что мой тон дружелюбный :)
#10 Медицинский портал 4 февраля 2015 в 04:40
teymur, видео уроки тебе помогут получить необходимые знания по работе в этой системе
www.youtube.com/channel/UCkRgf8JnfT3p5WYbW5KF6UA
#11 Синтаксические ошибки InstantCMS 2.x 4 февраля 2015 в 04:25
И вот я вернулся к работе над инстантом. Знаете, нашел небольшие ошибки, вспомнил про эту тему и про описанную в верхнем сообщении ошибку. Решил проверить как её исправили за 7 месяцев. Знаете, ничего удивительного, я даже не удивился. Думаю вы поняли о чём я говорю. Ну да ладно, пускай это будет на совести разработчиков. Вот последние ошибки:

файл: \templates\default\controllers\content\widgets\slider\slider.tpl.php
строка: 3
ошибка:
  1. <?php $this->addJS('templates/default/js/slider.js'); ?>
вместо
  1. <?php $this->addJS("templates/{$this->name}/js/slider.js"); ?>
Как результат слайдер не будет работать если у вас нет папки default. Возможно эта ошибка есть еще и в других файлах, не проверял пока

файл: \templates\default\controllers\content\widgets\slider\slider.tpl.php
проблема: не согласование тегов, и есть лишние закрывающие теги
как исправить: теги с 62й строки ставим на 59ю строку. Удаляем последний div тег в конце файла, он лишний.


Честно, буду весь день смеяться если и в следующем релизе эти ошибки не будут исправлены laugh. Начну пожалуй патчи выпускать для каждой новой версии rofl
#1 RSS лента. И гаджет для Windows 3 февраля 2015 в 07:04
Появилась идея взять готовый гаджет RSS ленты для Windows, отредактировать его, и пускай пользователи ставят себе на рабочий стол читая все мои новости. Но проблема в том что в конце ссылки RSS ленты от Инстанта не хватает .xml, по этому страница воспринимается как html и не парится как xml. Если исходник сохранить как xml и положить в конкретную папку, то гаджет всё отлично отображает. Собственно как в конец ссылки добавить xml ?

Хочется что-бы как минимум грядущее обновление ICMS 2.x получило данное обновление. Ведь тогда сторонние сайты получат возможность размещать у себя мои материалы (слабое, но API)
#12 Приглашение в группы ICMS2 31 января 2015 в 23:13
Тоже интересно, когда же будет реализована полноценная система приглашений. Кстати не думаю что кто-то знает email своего друга, так что хорошо бы их выдавать также в профиле каждого пользователя
#13 Ограничить загрузку фотографий весом более 200КБайт 31 января 2015 в 18:17
Pasha,
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.