Sorokin Vladimir
9.01.2017 - 17:07
Хочу попробовать объединить на одном сайте два шаблона - главный и добавочный. Установил, сделал в меню переходы туда-обратно, вроде неплохо.
А вот с настройками форм РНР возникла закавыка. Все, что работают на главном, не хотят на добавочном.
С половиной разобрался, надо было на добавочном более подробно прописать путь к нужному файлу.
Например, на главном путь к форме комментариев выглядит так:
<?php include $_SERVER['DOCUMENT_ROOT'].'/mycode/'.$myinclude.'.php'; ?>
А на добавочном пришлось указать папку (mycode), в которой находится файл формы (mycode.РНР). стало так:
<?php include $_SERVER['DOCUMENT_ROOT'].'/mycode/mycode'.$myinclude.'.php'; ?>
и заработало.
Но вот что делать с такой формой (выводит контент, на главной работает):
<?php echo $contentcenter;?>
я не могу понять. По логике предыдущих действий нужно так же указать путь к папке с контентом (articles), но как это сделать не знаю.
walerus
10.01.2017 - 01:21
Sorokin VladimirХотелось бы узнать как формируется переменная $contentcenter;, явного инклюда - нет...
Sorokin Vladimir
10.01.2017 - 09:08
Эта форма (<?php echo $contentcenter;?>) выводит на сайте запрашиваемую страницу в определенном месте, где то так:
<div>
<?php echo $contentcenter;?>
</div>
Содержимое берется из папки articles. Значит, мне кажется, надо состыковать между собой папку articles и переменную $contentcenter.
Ну, где то так:
<?php echo (articles) $contentcenter;?>.
Естественно что бы это заработало, вместо скобок нужны специальные знаки-символы, привязывающие переменную к папке.
walerus
10.01.2017 - 10:43
Sorokin VladimirТо что Вы написали это жесть, где то так...
"(<?php echo $contentcenter;?>)" - это НЕ форма, это "вывод на экран" содержимого переменной $contentcenter.
"Содержимое берется из папки articles" - я не спрашивал откуда берется содержимое, я спросил КАК ?... формируется переменная, т.е., в данную переменную, добавляются постепенно данные полученные в ходе работы скрипта или же из файла, через файлгетконтентс( и т.п. ) или еще как то...
Напишите понятнее - где инициализируется переменная и из чего формируются в ней данные.
Я так понял у Вас проблемы с "путями" - используйте абсолютные пути, что бы не было путаницы в дальнейшем.
http://phpfaq.ru/newbie/paths
Sorokin Vladimir
10.01.2017 - 13:33
Попробую пояснить суть вопроса. На движок, как правило, устанавливается один шаблон. В инструкции к движку (KandidatCMS) есть такой перечень:
Вставки-переменные в шаблонах
<?php echo $sitename;?> - имя сайта
<?php echo $sitetitle;?> - заголовок страницы
<?php echo $metadescription;?> - мета-тег description
<?php echo $metakeywords;?> - мета-тег keywords
<?php echo $contentcenter;?> - центральное содержание
<?php include MYCODE.'block_news.php'; ?> - блок новостей (посл. новость и категории)
<?php include MYCODE.'aforizm.php'; ?> - вывод блока случайной фразы (афоризма)
<?php include MYCODE.$myinclude.'.php'; ?> - ваш php-код на страницы
<?php echo $lnav;?> - визуальное отображение глубины навигации по сайту
<?php include ENGINE.'menu.php'; ?> - меню ссылок на страницы.
Все это прекрасно работает, движок использую около 7 лет.
Как видите особых знаний РНР здесь и не надо. Просто вставляю в нужном мне месте шаблона нужную вставку-переменную, и все работает!
Но когда я попробовал прикрутить второй шаблон, рядом с первым, на нем (втором!) заработали только «инклюды», а «echo» работать не хотят. Первый шаблон продолжает работать без проблем.
Вот я и попробовал найти помощь на форумах, что бы быстрее….
walerus
10.01.2017 - 21:52
Sorokin Vladimir
И не будет, в "движке" прописан ОДИН шаблон - он работает.
Второй шаблон "не предусмотрен" был. Вы его попытались прикрутить, значит проблема в "прикрутке".
Если сам шаблон подключается правильно, то все должно работать без проблем, если где то Вы не доглядели "прописку" имени шаблона, то беда пичаль...
Но, раз инклюды срабатывают, значит сам темплейт - вызывается все таки и инклюды подключают нужные файлы из нужных мест( раз Вы не написали об обратном ).
Вопрос: - почему не срабатывает эхо?...
Решение:
0) Включить показ ошибок !
1) Проверить существуют ли данные переменные при вызове 2го шаблона
2) Если существуют что в них находится( var_dump() ) и в каком виде ?
3) Попробовать заменить главный шаблон, на второй и посмотреть, если все будет хорошо, значит проблема в неправильном/не полном подключении 2го шаблона, если будет все плохо, то проблема во 2м шаблоне.
Если причину не найдете, милости просим ))
Sorokin Vladimir
11.01.2017 - 08:48
Спасибо! Причина в том, по-моему, что я полный "ноль" в РНР.....
В общем, закачал пару - тройку учебников и вперед в первый классс!!!
arbuzmaster
11.01.2017 - 09:02
Скорее всего проблема у Вас такая, в движке где то есть примерно такая функция
public function actionIndex()
{
$sitename=Site::getSiteName();
$sitetitle=Site::getSiteTitle();
.......
........
require_once ROOT.'/views/shablon/index.php';
return TRUE;
}
При её вызове подключается Ваш первый шаблон и переменные в нем доступны, когда Вы подключаете второй шаблон, то переменные в нем не доступны, так как функция не вызвана!
Ваша задача состоит в том, чтобы создать идентичную функцию например
public function actionIndex2()
{
$sitename=Site::getSiteName();
$sitetitle=Site::getSiteTitle();
.......
........
require_once ROOT.'/views/shablon2/index.php';
return TRUE;
}
найти способ по которому вызывается первая функция и создать идентичный для второй.
Если это MVC то все вызовы прописываются в роутах, выглядит он примерно так
<?php
return array(
.....................
....................
'^$'=>'site/index',
'2'=>'site/index2',
);
Добавить в него свой маршрут.
Но это пол беды - если у Вас одна страничка в шаблоне, если там их много, то функции и маршруты придется прописывать под все страницы.
_____________
Мой первый сайтикПосмотри на свой XBMC под другим углом
Sorokin Vladimir
11.01.2017 - 10:40
спасибо, но, повторюсь, все, что вы написали для меня даже не китайский язык, а гораздо хуже!
надо учиться!
Sorokin Vladimir
14.01.2017 - 08:42
Во всех шаблонах движка присутствует такой код РНР =
<?php echo $contentcenter;?>
Он отвечает за вывод контента на страницу сайта.
Как узнать к какому файлу обращается переменная $contentcenter ?
Вроде есть такая программка или сервис, подскажите, кто в курсе.
arbuzmaster
14.01.2017 - 11:00
Цитата (Sorokin Vladimir @ 14.01.2017 - 08:42) |
Во всех шаблонах движка присутствует такой код РНР = <?php echo $contentcenter;?> Он отвечает за вывод контента на страницу сайта. Как узнать к какому файлу обращается переменная $contentcenter ? Вроде есть такая программка или сервис, подскажите, кто в курсе. |
Можно попробовать изменить имя таблицы в которой храниться этот контент на одну букву, что вызовет ошибку в функции и в логах apache или хостинга должна появиться запись в которой будет написан файл и строка на которой произошла ошибка*(если включен вывод ошибок на экран - скрипт, то ошибка выведется в теле самой страницы).
_____________
Мой первый сайтикПосмотри на свой XBMC под другим углом
sergeiss
14.01.2017 - 12:05
Цитата (Sorokin Vladimir @ 10.01.2017 - 13:33) |
<?php echo $sitename;?> - имя сайта |
Для подобного вывода придумана специальная форма записи (короткие тэги):
<?= $sitename ?>
Цитата (Sorokin Vladimir @ 11.01.2017 - 08:48) |
В общем, закачал пару - тройку учебников и вперед в первый классс!!! |
Вот с этого надо было начинать :)
Будут вопросы - вэлкам на форум!
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
walerus
14.01.2017 - 19:24
sergeiss
Цитата |
этот сокращенный синтаксис допускался только когда включена директива конфигурации short_open_tag |
Мы не знаем какая у ТС версия, сейчас он снова впадет в ступор
walerus
14.01.2017 - 19:29
Sorokin Vladimir
скрипт cms откуда взят?, что бы посмотреть что куда, с офф сайта?
Так же можно устроить онлаин помощь, через тимвьер, если есть желание, желательно после 00.00 по МСК.
Sorokin Vladimir
15.01.2017 - 12:44
Цитата (walerus @ 14.01.2017 - 19:29) |
Sorokin Vladimir скрипт cms откуда взят?, что бы посмотреть что куда, с офф сайта? |
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.