Modx если TV пустой

Содержание

Давно не писал что-нибудь заумное, чтоб после прочтения у Вас голова заболела, поэтому решил написать! Может будет трудно осилить, но Вы приблизитесь к опытному уровню разработок в modx. В этой статье я не буду разжевывать всё в подробностях, но она будет очень большая, охватывающая многие аспекты программирования в среде для разработки modx, поэтому Вам придётся набраться терпения, но это будет того стоить, так как некоторые решения Вы не найдётё в интернете.

Что Вы будете уметь после прочтения?

  • Во-первых работа с внешними скриптами с использованием API MODX;
  • Не обойдется без решения таких вопросов как получения сессий, залогиных пользователей;
  • Особое внимание я уделю выводу ресурсов(документы расположенные в админ. панели) с помощью jQuery;
  • В конце всего вы найдёте мини-примеры, которые наиболее востребованы в моей практике.
  • На последок я сделал Вам сюрприз, — мы встроим интересную jQuery каптчу в скрипт модуля регистрации MODX.

Итак, — поехали!

То что я буду Вам пытаться сейчас объяснить вызовет у Вас головную боль, но поверьте эта боль — меньшее зло, по сравнению с той, которая бы у Вас проявилась, если бы Вы вручную — методом проб, всё бы это пытались создать. Для начала давайте вспомним, что отменили в последней версии MODx — 2.1.

MODX Implementation Part 2 — Settings, Chunks & TV’s

Список отменённых методов в MODx 2.1!

  • getSettings()
  • getDocumentObject()
  • getLoginUserType()
  • getDocument()
  • getDocuments()
  • getUserDocGroups()
  • getFullTableName()
  • getAllChildren()
  • getActiveChildren()
  • getDocumentChildren()
  • getDocumentChildrenTVars()
  • getTemplateVar()
  • getTemplateVars()
  • getTemplateVarOutput()
  • getParent()
  • getPageInfo()
  • getUserInfo()
  • getWebUserInfo()
  • getDocGroups()
  • changeWebUserPassword()
  • changePassword()
  • cleanDocumentIdentifier()
  • getDocumentIdentifier()
  • getDocumentMethod()
  • checkPreview()
  • logEvent()
  • getManagerPath()
  • userLoggedIn()
  • mergeDocumentContent()
  • mergeSettingsContent()
  • mergeChunkContent()
  • mergePlaceholderContent()
  • isBackend()
  • isFrontend()
  • insideManager()
  • putChunk()

Правильно выводим статьи в MODX REVOLUTION!

Часто разработчику необходимо получать данные не прибегая к перезагрузке страницы, то есть через ajax. Так как с системами управления это достаточно сложно реализовать начинающим пользователям и разработчикам этих систем, поэтому мы начнём с правильного подключения MODx API во внешних скриптах.

Для начала нужно определится с подключением к MODX API. Данный код нужен для защиты.

Далее следует указать стоит ли кэшировать данные MODX, — по умолчанию данные кэшируются, что мы собственно и видим.

После этого нам нужно подключить основной класс для работы с API MODX и конфигурационный файл:

  • config.core.php
  • modx.class.php

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

Я советую использовать нижеуказанный код для записи всех действий в журнал MODX.

Задайте уровень обработки ошибок.

Здесь нужно быть по внимательнее, выбрав правильный контекст, изначально он такой. Если Вам нужен другой контекст, — измените соответственно строку ‘web’.

Сейчас мы подобрались к основному выводу содержимого статей вашего сайта. В следующем листинге мы получаем объект — ресурс с «ID» равным 3. Если у Вас пока одна страница «HOME», то Вам необходимо изменить его на 1, иначе ничего не будет выведено. Сейчас я не буду объяснять подробное назначения массива, но заранее отмечу что в MODX можно выбирать статьи одновременно по нескольким параметрам, а так же несколько ресурсов в одни массив, но пока давайте выведем содержимое одной статьи по её ID.

Теперь, когда у нас есть объект, мы можем получить его данные, давайте получим содержимое статьи.

Рабочий вариант полностью.

Если нужно вывести одновременно несколько статей, например, зная их название и краткое описание, то нужно использовать метод getCollection и заменить всё в предыдущем листинге начиная с 93 строки следующим кодом:

В итоге будут получены первые три статьи, при этом все переменные, TV будут распарены, а сниппеты выполнены — это основное отличие от предыдущего листинга, в котором содержимое выводится в том виде, в котором Вы его видите в админ. Панели, — при редактировании в редакторе(content).

Используя этот шаблон php скрипта плюс небольшое дополнение на jQuery, например $.load или $.post или $.ajax Вы сможете создавать динамичные ресурсы внутри системы MODX.

Учимся выводить данные о пользователе во внешние php скрипты в MODX REVOLUTION!

Как-то у меня возникла необходимость получать имя активного пользователя, для того чтобы заполнить его данным таблицу SQL, я выбрал следующее решение.

Другой раз у меня возникла необходимость отправки данных на email, который должен был быть указан пользователем и может постоянно изменяться. Для того, чтобы пользователю не «лазить» по скриптам, я решил создать сниппет в котором пользователь мог удобно изменить email на нужный. Для вызова сниппета мне пришлось использовать метод runsnippet . Поэтому может и Вам пригодится:

Еще по теме:  Кузя игра ТВ передача

Получаем данные об активном пользователе или странице через сниппет!

Получать данные об активном пользователе или странице внутри системы (НЕ ВО ВНЕШНЕМ СКРИПТЕ), через сниппет можно следующим образом:

Получим текущий заголовок страницы(pagttitle), в сниппетах, — не забывайте вместо echo пишется return:

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

Мини-примеры MODX API REVOLUTION!

Получаем системные настройки MODX:

Получаем переменные шаблонов (TV):

Так как не запрещено внутри TV использовать другие TV, то для того чтобы получить TV с уже распарсенным TV, нужно использовать следующий код:

Встраиваем содержимое ресурса, заголовок которого — «MyDocument», в чанк, тем самым все переменные внутри этого содержимого будут распарсены парсером MODX.

Выполнить сниппет можно с указанием его настроек следующим образом:

Для получения параметров сниппета, установленных по умолчанию используется следующий код:

Встраиваем каптчу «QapTcha»!

Я взял каптчу с сайта QapTcha. Для начала включите в шаблон, на странице которого будет размещаться форма регистрации js и css файлы, как указано ниже:

После вставляем сниппет регистрации, он доступен по умолчанию и включен в состав сниппета «Login».

Следующий код нужно вставить в форму регистрации, — там где Вам нужно, обычно это перед кнопкой отправки формы. То есть данный код создаёт каптчу.

Далее заменить строку 69 сниппета «Register», находящийся в разделе сниппетов плагина «Login»:

В итоге на странице, где у Вас расположена форма будет находится красивая и простая каптча:

Для правильной работы каптчи нужен php, сохраняющий данные в сессию, который указан ниже:

Заключение

Теперь многое для Вас в Modx станет доступным. А если не совсем, — для этого есть комментарии или форум со специальным разделом «MODX REVOLUTION»!

Источник: slyweb.ru

Fenom для MODX — базовые понятия

Шаблонизатор Fenom – это надстройка для MODX Revo, включённая в состав пакета pdoTools. Позволяет полностью заменить «родные» теги MODX с увеличением скорости и удобства работы с информацией из таблиц базы данных и значительно расширить возможности шаблонизации.

Для тех, кто начинал изучение MODX по официальной документации, поначалу работа с Fenom может показаться неудобной и более сложной, а, открыв первый раз сайт на Fenom, вообще не сообразить, что и как работает.

Это быстро проходит) и, возвращаясь при необходимости к стандартным тегам, начинает не хватать возможностей парсера pdoTools.

Включение Fenom

Для того, чтобы теги Fenom начали обрабатываться в шаблонах, чанках и тексте ресурса, нужно включить следующие настройки: Системные настройки — pdotools:

Базовые настройки Fenom

Шаблонизатор имеет такую особенность – если парсер не может обработать страницу, она может выйти пустой, либо с исходными тегами. Причина пишется в Журнале ошибок. Первоначально, нужно обратить внимание на инлайновые стили и скрипты Java, потому что парсер срабатывает на фигурные скобки {} .

Для указания парсеру Fenom фрагментов, не подлежащих обработке, используются теги {ignore}фрагмент{/ignore} . Помогает не всегда, это связано с особенностями работы парсера.
Часто бывает проще расставить пробелы или переносы строки после открывающей скобки и перед закрывающей.

Базовые понятия

Основные источники информации по работе с Fenom – в документации modx.pro и в исходной документации.

Желательно сразу освоить файловые элементы (официальное руководство).

Начнём с шаблонов. По умолчанию, путь к файлам core/elements (папку elements нужно будет создать). Дальше, на усмотрение, кому как удобно.

Например, создадим папки templates, chunks и snippets (в директории elements, понятное дело). Пускай базовый шаблон будет main.html (или с расширением tpl, неважно). Весь текст, соответственно, будет храниться в файле core/elements/templates/main.html .

Для связи со структурой MODX нужно будет создать обычным способом шаблон, в поле Код шаблона которого записывается ссылка на файл в виде {include ‘file:templates/main.html’> .

Шаблон главной страницы в файле

В шаблонах и чанках нежелательно мешать теги Fenom со стандартными тегами, поскольку в этом случае запускается встроенный парсер MODX.

Как работает наследование и расширение шаблонов (чанков) в Minishop2 можно увидеть на примере чанков писем. Здесь 6 видов оповещений построены на 1 базовом шаблоне.

Аналоги тегов MODX

Поля текущего ресурса (теги со *): {$_modx->resource.id> , {$_modx->resource.pagetitle> , {$_modx->resource[‘description’]> , либо {$_modx->resource[‘имя_тв_поля’]> и т.д. (разные варианты обращения к элементам массива $_modx->resource).

Плейсхолдеры сниппета (теги с +): {$id> , {$longtitle>

Системные настройки (теги с ++): {‘site_url’ | option> или {$_modx->config[‘site_url’]>

Ссылка на ресурс (теги с ~): {88 | url> . Например, генерация абсолютной ссылки на документ с id = 88, [[++site_url]][[~88]] = {‘site_url’ | option ~ (88 | url)> или {‘site_url’ | option>{88 | url)> (в Fenom символ ~ выполняет объединение строк)

Поля любого ресурса: {11 | resource : ‘longtitle’>

Вызов сниппета: {‘pdoSitemap’ | snippet> ,
некешированный {‘!pdoSitemap’ | snippet> ,
с параметрами {‘!pdoMenu’ | snippet : [‘parents’ => 0, ‘resources’ => ‘-1,-6’, ‘showHidden’ => 1]>

Поля любого пользователя по его id: {5 | user : ‘fullname’>

Массив полей текущего пользователя $_modx->user . Например, посмотреть все поля {$_modx->user | print>

Закомментировать теги Fenom можно так: {*’!pdoPage’ | snippet*>

Разумеется, это не все возможности шаблонизатора, есть ещё масса модификаторов, полностью заменяющих «родные» теги MODX и расширяющие их функции.

Условия и циклы

Это как раз то, что меняет подход к построению страницы сайта. При всём уважении, условия в стандартном синтаксисе MODX, в особенности вложенные, напоминают фразу из «Собачьего сердца»: «Кто на ком стоял. Потрудитесь излагать Ваши мысли яснее.»

Еще по теме:  Прямой трансляция ТВ реал мадрид

Условия в Fenom задаются так же, как в большинстве языков программирования:

условие if:

{if $_modx->resource.parent == 1> {$_modx->resource.pagetitle> {elseif $_modx->resource.parent == 5> {$_modx->resource.longtitle> {else> Другой текст заголовка {/if>

использование логических И (), ИЛИ (||) и группировка условий (тут же пример присвоения значения переменной):

{var $u = 5>{var $e = 9> {if $u > 2 || ($e >= 3 $e < 100)>Выполненное условие {/if>

короткая запись if (тернарный оператор),

{$_modx->resource.longtitle ? $_modx->resource.longtitle : $_modx->resource.pagetitle>

или аналог стандартного default в случае пустого значения:

{$_modx->resource.introtext ?: ‘аннотация не заполнена’>

условие switch:

{switch $_modx->resource.id> {case 5> Текст {case 7,8> Другой текст {case default> Пусто {/switch>

Полноценный цикл foreach:

{var $array = [0 => ‘val1’, 1 => ‘val2’]> {foreach $array as $key => $value> key = {$key>, value = {$value> {/foreach>

Пример вывода дочерних ресурсов без вызова сниппета

В Fenom переменная $_modx – обращение к классу microMODX, имеющему несколько очень полезных методов.

перенаправление на заданный url, либо ресурс (здесь, с id = 101) {$_modx->sendRedirect(101 | resource : ‘uri’)>

получение потомков документа (здесь, id документа 47, глубина вложенности 1). Поскольку возвращает массив, для наглядности показан с простым выводом на экран. {$_modx->getChildIds(47, 1) | print>

То же, для родителей документа $_modx->getParentIds()

Получение масивов полей ресурсов без сниппета и вывод без чанка:

{var $parents = $_modx->getResources( [‘published’ => 1, ‘deleted’ => 0, ‘isfolder’ => 1], [‘sortby’ => ‘menuindex’, ‘select’ => ‘id,pagetitle’])> {foreach $parents as $parent> {var $childs = $_modx->getResources( [‘published’ => 1, ‘deleted’ => 0, ‘parent’ => $parent.id], [‘select’ => ‘pagetitle’, ‘sortby’ => ‘menuindex’])> {if $childs>

{$parent.pagetitle>

{foreach $childs as $child> {$child.pagetitle> {/foreach> {/if> {/foreach>

Этот пример показывает, как, пользуясь только средствами Fenom, вывести дочерние ресурсы, сгруппированные по родительскому документу.

Произвольная группировка товаров и порядок вывода категорий miniShop2 в корзине

Товары в корзине выводятся с помощью сниппета msCart, чанк вывода, по умолчанию, tpl.msCart. Добавленные в корзину покупки хранятся в переменной $_SESSION в таком виде:

[minishop2] => Array ( [cart] => Array ( [19540dc928fb772d846a78d33c108a6e] => Array ( [id] => 821 [price] => 150 [weight] => 0 [count] => 1 [options] => Array ( ) [ctx] => web ) [9537fcc265888919ea41499d68ce0317] => Array ( [id] => 371 [price] => 400 [weight] => 0 [count] => 1 [options] => Array ( [prs] => 400 [age] => 3-6 [month] => 400 ) [ctx] => web ) [c158d4dca43e0a30c567c0b2f415d04e] => Array ( [id] => 822 [price] => 400 [weight] => 0 [count] => 1 [options] => Array ( ) [ctx] => web ) )

Где ключ элемента массива с покупкой, например, такой [c158d4dca43e0a30c567c0b2f415d04e] , формируется динамически при добавлении товара в корзину при помощи функции md5 следующим образом: $key = md5($id . $price . $weight . (json_encode($options))); (исходник).

Соответственно, товары в корзине выводятся по очерёдности их добавления, без учёта id товара, либо его категории.

Стандартный чанк tpl.msCart сделан на Fenom, поэтому, можно, с минимальными изменениями, задать нужную группировку и порядок вывода категорий товаров.

Чанк принимает массив товаров $products , поэтому в чанке, до цикла {foreach $products as $product> (это 16 строка), раскидываем общий массив на несколько массивов категорий, например, cat_15 и cat_16 , где число – id категории.

{foreach $products as $product> {if $product.parent == 15> {set $cat_15[] = $product> {elseif $product.parent == 16> {set $cat_16[] = $product> {else> {set $other_products[] = $product> {/if> {/foreach>

И вывод товаров из категорий:

{if count($cat_15)> {foreach $cat_15 as $product> {*здесь вывод товара*> {/foreach> {/if> {if count($cat_16)> {foreach $cat_16 as $product> {*аналогично стандартному выводу*> {/foreach> {/if> {if count($other_products)> {foreach $other_products as $product> {*внутри цикла foreach (строки 17. 69)*> {/foreach> {/if>

Таким образом можно не только определить последовательность вывода категорий товаров, но и задать общий заголовок и футер товаров одной категории и использовать разное оформление.

Источник: my-priv.ru

Управление modx

Поделиться в Livejournal Поделиться в Facebook Поделиться в Одноклассниках Поделиться в Mail.ru Поделиться в Google-Buzz

Добавление и редактирование страниц, выбор шаблонов, добавление изображений , видео , таблиц и меди файлов

Всем доброго дня! Сегодня мы рассмотрим основные моменты, как пользоваться системой Modx и её редактором TineMCE

Тестовый сайт: http://aiesec.dispsoft.ru/

FAQ. Часто задаваемые вопросы по управлению Modx.

Видео инструкция:

Текстовая инструкция:

  1. Редактирование меню
  2. Заголовки, описание, выбор шаблона и т.д.
  3. Modx TinyMCE(форма для редактирования документов) :Вставка/редактирование текста, вставка/редактирование изображений и медиа объектов,вставка/редактирование таблиц,вставка/редактирование ссылок
  4. Задать свой вопрос(online)

Ответы:

1. Редактирование меню? к вопросам

Меню для сайта делают программисты. В нашем примере сделано выпадающее меню под номером
1 и боковое меню под номером 2

Редактирование меню в modx

1 меню содержит в себе все документы в виде дерева.

2 меню содержит только документы конкретного раздела, в котором находится посетитель сайта. В нашем примере , в разделе Студентам посетитель увидит документы, вложенные в этот раздел

Для изменения верхнего меню и бокового нужно менять документы в разделе Верхнее меню(47)

Что можно изменить: Нажав на нужную страницу или раздел правой кнопкой мыши, выберите Редактировать

2. Заголовки, описание , выбор шаблона и т.д.к вопросам

Заголовки, описание , выбор шаблона и т.д.

Для начала редактирования выберите документ и щёлкните правой кнопкой мыши, в контекстном меню выберите Редактировать.Для создания нового документа нажмите на кнопку Новый ресурс или выберите раздел, где хотите создать ресурс(страницу), нажмите правой кнопкой мыши, в контекстном меню выберите Дочерний ресурс

При нажатии правой клавиши мышки на любом из документов выскочит панель следующего вида:

Главный ресурс — это страничка вашего сайта которая будет отображаться в верхнем меню и содержать информацию как свою, так и дочерних документов. Дочерние ресурсы будут отображаться в разделе Главного ресурса. Вы можете добавлять/изменять Главный ресурс и Дочерний ресурс.

Еще по теме:  Компактная ТВ антенна отзывы

Для этого нужно нажать на иконку «Новый ресурс» в левом верхнем углу,под словом «Главная» или правой кнопкой мышки вызвать «Панель редактирования» у одного из ресурсов слева и выбрать «Дочерний Ресурс»

Далее вы увидите форму следующего вида:

Добавление нового ресурса в MODx

Остальные поля будут заполняться автоматически или останутся пустыми*.

*Например, при добавлении свежей Новости после нажатия «Публиковать» время публикации будет выставлено автоматически. Если нужно время исправить, его можно выставить в ручном режиме в разделе «Настройка страницы—Дата Публикации»

3. Modx TinyMCE :Вставка/редактирование текста,вставка/редактирование изображений и медиа объектов,вставка/редактирование таблиц,вставка/редактирование ссылок? к вопросам

Редактировать тексты можно в Содержимое ресурса, давайте рассмотрим, какие возможности есть у редактора:

редактирование текста и страниц в modx


редактирование текста и страниц в modx

вставка изображения в modx

вставка таблиц в modx

После загрузки видео, зайдите на свой видеоролик. Внизу вы уведите кнопочку «Встроить/Получить код видео/Embed Video». Нажав на неё, вы получите код, который сможете встроить себе на сайт, скопируйте его

Как получить код Видео

Для вставки видео на сайт, в поле «Содержимое ресурса» на верхней панели есть иконка

Вставка видео в TinyMCE Modx

  1. -После нажатия откроет окно для вставки кода видео.
  2. Вставка HTML кода — Поле куда нужно вставить код видео, который дает youtube, vkontakte и т.д..
  3. Вставить — После нажатия будет создана табличка, где в верхней части будет само видео, а в нижней подпись к нему.
  4. Текст — Вместо слово «ТЕКСТ» напишите описание видеоролика.
  5. Указать — Для перехода на следующую строку выставите указатель после таблицы и нажмите «Enter».
    1. Стили — для каждого элемента программист может создать свой стиль, это опция заказывается отдельно
    2. Восстановить данные — Важно! Если после нажатия Сохранить вы потеряли документ по какой то причине (Отключение от интернета, выход по таймеру) войдите снова в тот документ, который редактировали и нажмите эту кнопку для восстановления потерянных данных

    Задать свой вопрос к вопросам

    Write a comment

    • Required fields are marked with *.

    Дмитрий
    Posts: 63
    о галочке
    Reply #67 on : Fri October 28, 2011, 14:07:15

    Проблема в том, что я убираю галочку с в настройках страницы «Публиковать».
    После сохранения изменений галочка остается на месте, т.е. не убирается и соответственно в дереве ссылка страницы не меняется на курсив.
    Может ли мне кто подсказать в чем причина?

    Александр
    Posts: 63
    о галочке
    Reply #66 on : Tue November 08, 2011, 15:19:49

    Добрый день!
    Хватает ли у вас прав на данное дейстивие?
    Проповали ли вы нажать праваой клавишей мыши на страницу и нажать отменить публикацию?
    Можете попробовать сделать схожие действие в другом браузере, например Google Chrome

    Юлия
    Posts: 63
    загрузка изображений
    Reply #65 on : Mon December 05, 2011, 12:40:25

    Проблема: при загрузке изображения(загрузке файла) компьютер выдает ошибку и ничего не загружает. Помогите разобраться пожалуйста.

    Александр
    Posts: 63

    Re: Добавление и редактирование страниц, выбор шаблонов
    Reply #64 on : Wed December 07, 2011, 00:06:09

    Юлия, добрый день!
    Скорее всего у вас не хватает прав на загрузку изображений на сервер.

    Вы пользуйтесь менеджером файлов в MODX или на Хостинге?

    Александр
    Posts: 63

    Re: Добавление и редактирование страниц, выбор шаблонов
    Reply #63 on : Wed December 07, 2011, 00:48:35

    Если можно, укажите пожалуйста каким хостингом пользуйтесь
    Влад Борнов
    Posts: 63
    Про видео
    Reply #62 on : Thu December 22, 2011, 13:36:58

    Скажите, в какой сборке редактора есть кнопка YouTube? В стандарте кнопки этой нет. Ну худой конец дайте ссылке на плагин для TinyMCE.

    Александр
    Posts: 63
    про видео
    Reply #61 on : Thu December 22, 2011, 14:47:57

    Влад, добрый день!
    Кнопка youtube наша личная доработка tineMCE по заказу наших клиентов. Ответил вам на почту

    Nephi
    Posts: 63
    nwVjiPhJrKlAOI
    Reply #60 on : Sat December 31, 2011, 11:22:01
    You have more useufl info than the British had colonies pre-WWII.
    Таня
    Posts: 63
    Расширенный заголовок
    Reply #59 on : Wed March 14, 2012, 13:56:34

    При редактирование ресурса не появляется поля «расширенный заголовок» «Описание» «Аннотация»
    Эти поля появляются в момент обновления или загрузки страницы редактирования. Но при полной загрузке они исчезают.

    Администратор
    Posts: 63
    Расширенный заголовок
    Reply #58 on : Wed March 14, 2012, 14:00:51

    Татьяна,
    Нам кажется, что данные поля были отключены разработчиками вашего сайта, т.к. не принимают участие в формирование страничек на сайте. У вас раньше также было?

    Таня
    Posts: 63
    Расширенный заголовок
    Reply #57 on : Wed March 14, 2012, 14:07:19

    Не могу сказать точно, сайт разрабатывала не я. Но мне нужны эти поля для сео оптимизации. Подскажите пожалуйста как их можно активизировать, есть пароль от админки с правами администратора, есть данные от FTP.

    Администратор
    Posts: 63
    Расширенный заголовок
    Reply #56 on : Wed March 14, 2012, 14:18:15

    Нужно менять шаблоны сайт, и настройку самой CMS. Если у вас есть связь с исполнителем сайта, попросить его это сделать за дополнительные деньги. Если связь потерянна, возможно мы сможешь вам помочь.Остальные рекомендации выслал вам личным письмом

    Екатерина
    Posts: 63
    Дочерний ресурс
    Reply #55 on : Sun April 01, 2012, 14:04:58

    Здравствуйте, помогите, пожалуйста, никак не могу разобраться!
    При создании ресурса все хорошо, все стили на месте. Как только от этого ресурса пытаюсь создать дочерний, теряются куда-то стили не только куса текста, который вставляю, но и шапки, вообще всей страницы.
    Что с этим делать?

    Источник: dispsoft.ru

    Оцените статью
    Добавить комментарий