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. Заголовки, описание , выбор шаблона и т.д.к вопросам

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

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

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

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

Еще по теме:  Как обновить Youtube на ТВ

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

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

Добавление нового ресурса в 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

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