Как разобраться со структурой работы CMS и всеми вытекающими

#1 16 апреля 2020 в 20:27
И снова здравствуйте.

Из заголовка суть поста — ясна (почти). По этому сразу к делу. У меня есть непреодолимое желание разобраться с тем, как устроена данная CMS, параллельно (либо одновременно) решить вопросы с недостатком знаний в языках программирования (я понимаю что это процесс не на коленке, за 5 минут ни чего не выучишь), таких как html, css. php, javaScript, разобраться с ajax, mySQL.
В данный момент прохожу кучу онлайн курсов, читаю литературу, в том числе и инстанта. стараюсь применять полученный опыт и "знания" на своем сайте, но блин, понимаю, что мозги начинают плавится от переизбытка информации.

По этому вопрос: может кто посоветовать более менее приемлемый путь изучения данных вопросов и воплощения их в мою жизнь? возможно кто то с похожим состоянием сталкивался, что скорее всего, каждый))) кароче нужен совет, с чего начать и чем закончить, применимо именно к InstsntCMS (все остальное потом)))

Поясню свой вопрос, из за недостатка знаний, начинаешь хвататься за все подряд, в итоге каша в голове, жопа в мыле, и ни какого толка, кроме головной боли)))

P.S. легких путей не ищу, спасибо за комментарии, предложения, адекватную критику. Всем мира и здоровья!
#2 16 апреля 2020 в 20:43
Нельзя объять необъятное, тем более одновременно… В зависимости, что Вы хотите, от этого и надо отталкиваться… Хотите делать шаблоны? Изучайте css и html. Хотите делать компоненты, то пригодится php, SQL…
Поставьте себе конкретную цель, что Вам необходимо сделать для своего сайта и идите у достижению этой цели.
#3 16 апреля 2020 в 20:43

таких как html, css. php, java

@stich
Java — это одна песня, JavaScript — совсем другая. Просто глаз режет.
#4 16 апреля 2020 в 20:45


таких как html, css. php, java

@stich
Java — это одна песня, JavaScript — совсем другая. Просто глаз режет.

@IamB

Отредактировал, сорри))))
#5 16 апреля 2020 в 20:47


Нельзя объять необъятное, тем более одновременно… В зависимости, что Вы хотите, от этого и надо отталкиваться… Хотите делать шаблоны? Изучайте css и html. Хотите делать компоненты, то пригодится php, SQL…
Поставьте себе конкретную цель, что Вам необходимо сделать для своего сайта и идите у достижению этой цели.

Владимир Савенко

Понимаю о чем вы.
Сайт нужно администрировать, дополнять, усовершенствовать, в идеале конечно вообще просветиться и написать самопис laugh
#6 16 апреля 2020 в 20:48
А начните прямо с файла index.php в корне, и смотрите, как процесс открытия страницы развивается.
Ну, то есть загружается index.php, там require_once 'bootstrap.php'; в bootstrap.php require_once PATH. '/system/config/autoload.php'; потом spl_autoload_register('autoLoadCoreClass'); и так далее и тому подобное.
Если непонятно, что какая-то функция делает — ищите её яндексом и смотрите.
Вот тут еще можно почитать:
docs.instantcms.ru/dev/overview
Но документацию читать — это уже самый крайний случай.
Настоящие программисты код понимают прямо так, прищуренным левым глазом.
#7 16 апреля 2020 в 21:04

начните прямо с файла index.php

Ris
Вот тут то и поймал стопор сразу, хотя и комментарии к строкам имеются)))
Уже интересней))) стоит разобраться!
#8 17 апреля 2020 в 13:53
Если немного изучили html, css, php, начните с создание стилей для типов контента.
Вот самый простой файл для создания стиль списка \templates\easy\content\default_list_my.tpl.php

  1. <?php
  2. if( $ctype['options']['list_show_filter'] ) {
  3. $this->renderAsset('ui/filter-panel', array(
  4. 'css_prefix' => $ctype['name'],
  5. 'page_url' => $page_url,
  6. 'fields' => $fields,
  7. 'props_fields' => $props_fields,
  8. 'props' => $props,
  9. 'filters' => $filters,
  10. 'ext_hidden_params' => $ext_hidden_params,
  11. 'is_expanded' => $ctype['options']['list_expand_filter']
  12. ));
  13. }
  14. ?>
  15. <?php if ($items){ ?>
  16.  
  17. <?php $this->addCSS('templates/default/css/content/ВАШ_СТИЛЬ.css'); ?>
  18.  
  19. <div class="default_list_my <?php echo $ctype['name']; ?>_list_my">
  20.  
  21. <?php foreach($items as $item){ ?>
  22. <?php
  23. $item['ctype'] = $ctype;
  24. $item['ctype_name'] = $ctype['name'];
  25. $url = href_to($ctype['name'], $item['slug']) . '.html';
  26. $big_url = '/templates/default/images/nophoto_big.png';
  27. if(isset($item['fields']['photo']) && !empty($item['photo'])) {
  28. $big_url = html_image_src($item['photo'], 'big', true);
  29. }
  30. ?>
  31. <div class="item_my">
  32.  
  33. <div class="image_my">
  34. <img src="<?php html($big_url); ?>)" alt="<?php html($item['title']); ?>" title="<?php html($item['title']); ?>" />
  35. </a>
  36. </div>
  37.  
  38. <div class="fields_my">
  39. <div class="fields_title_my">
  40. <a href="<?php echo $url; ?>" title="<?php html($item['title']); ?>"><?php html($item['title']); ?></a>
  41. </div>
  42. <div class="fields_info_my">
  43. <?php if ($fields['date_pub']['is_in_list']){ ?>
  44. <span class="date_my">
  45. <?php html(string_date_age_max($item['date_pub'], true)); ?>
  46. </span>
  47. <?php } ?>
  48. <?php if ($fields['user']['is_in_list']){ ?>
  49. <span class="user_my">
  50. <a href="<?php echo href_to('users', $item['user_id']); ?>" rel="nofollow"><?php html($item['user']['nickname']); ?></a>
  51. </span>
  52. <?php } ?>
  53. <?php if ($ctype['is_comments'] && $item['is_comments_on']){ ?>
  54. <span class="comment_my" title="<?php echo LANG_COMMENTS; ?>">
  55. <?php echo intval($item['comments']); ?>
  56. </span>
  57. <?php } ?>
  58. </div>
  59. <?php if (!empty($item['content']) && $fields['content']['is_in_list']){ ?>
  60. <div class="content_my">
  61. <?php html(mb_strimwidth(strip_tags($item['content']), 0, 200, "...")); ?>
  62. </div>
  63. <?php } ?>
  64. </div>
  65.  
  66. </div>
  67. <?php } ?>
  68. </div>
  69.  
  70. <?php if ($perpage < $total) { ?>
  71. <?php echo html_pagebar($page, $perpage, $total, $page_url, array_merge($filters, $ext_hidden_params)); ?>
  72. <?php } ?>
  73.  
  74. <?php } else {
  75.  
  76. if(!empty($ctype['labels']['many'])){
  77. echo sprintf(LANG_TARGET_LIST_EMPTY, $ctype['labels']['many']);
  78. } else {
  79. echo LANG_LIST_EMPTY;
  80. }
  81.  
  82. }
  83.  
Потом начните создание поле, виджет, компонент…
#9 17 апреля 2020 в 19:20

Потом начните создание поле, виджет, компонент...

Evanescence
Очень хочется увидеть инструкцию по шагам для чайников!
#10 17 апреля 2020 в 19:22

Очень хочется увидеть инструкцию по шагам для чайников!

Capitan
Вот и я о том же)))
#11 17 апреля 2020 в 19:32

кароче нужен совет, с чего начать и чем закончить, применимо именно к InstsntCMS

@stich
docs.instantcms.ru/dev/start
Есть даже видеоуроки. В контексте CMS многое описано.

Очень хочется увидеть инструкцию по шагам для чайников!

Capitan
InstantCMS написана на PHP, и если понимания работы PHP нет, то разобраться в CMS, в любой, будет большая проблема.
Не ждите, что кто-то будет вам помогать. Дерзайте, пробуйте, читайте, думайте.
А после этого уже можно и конкретные вопросы задавать.
#12 17 апреля 2020 в 19:37

инструкцию по шагам для чайников!

Capitan
Инструкция для чайников:
1. Изучить html. По крайней мере понять, как всё это выводится на экран. Без этого всё остальное смысла не имеет.
2. Изучить php. Как минимум, почитать, как оно печатает буквы на экран, как работают условия и что такое массивы.
3. Почитать про javascript. Изучить это можно, но потом долго лечиться в психушке. Главное — понять, что он работает у вас в браузере, а не где-то там на сервере.
И этот яваскрипт может взаимодействовать с разметкой страницы сайта и кодом php на сервере (при помощи ajax).
Инструкция для настоящих self made менов:
1. Установите Опенсервер /blogs/zapiski-dinozavra/ospanel-i-instantcms.html и экспериментируйте до посинения пальцев.
2. Удаляйте что-угодно, пишите свой код, какой-угодно, не бойтесь ничего! Этот сайт у вас на компе. Никто, кроме вас не видит, какую ересь вы пишете.
#13 17 апреля 2020 в 19:59

Изучить html.

Ris
Знаю

почитать, как оно печатает буквы на экран

Ris
Представляю

он работает у вас в браузере, а не где-то там на сервере.

Ris
Понимаю

может взаимодействовать с разметкой страницы сайта и кодом php на сервере

Ris
Понимаю

Установите Опенсервер

Ris
Стоит года два, до этого денвер.

Хочется понять структура кода php. Да вот пример с соседней ветки
<?php if ($profile['id'] == $user->id = 3025) { ?>
<sup title="<?php echo LANG_USERS_PROFILE_LOGDATE; ?>" class="ml-1 tooltip-top" data-toggle="tooltip" data-placement="top">
<?php echo '<span class="badge badge-success online">'. LANG_ONLINE. '</span>'; ?>
</sup>
<?php } else { ?>
<sup title="<?php echo LANG_USERS_PROFILE_LOGDATE; ?>" class="ml-1 tooltip-top" data-toggle="tooltip" data-placement="top">
<?php echo $profile['is_online']? '<span class="badge badge-success online">'. LANG_ONLINE. '</span>': string_date_age_max($profile['date_log'], true); ?>
</sup>
<?php } ?>
#14 17 апреля 2020 в 20:15

Да вот пример с соседней ветки

Capitan
if ($profile['id'] == $user->id = 3025)
Вот это именно та ересь, про которую я писал выше. Этот код эквивалентен
if ($profile['id'] == 3025)
#15 17 апреля 2020 в 20:23

Этот код эквивалентен
if ($profile['id'] == 3025)

Ris
Не совсем. Этот код эквивалентен этому
  1. $user->id = 3025
  2. if ($profile['id'] == $user->id)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.