Преобразование сайта с сайта PHP в полноценный сайт электронной коммерции LemonStand - PullRequest
3 голосов
/ 28 ноября 2011

Совершенно новый для LemonStand, и это мой лидер по разработке веб-сайта клиента.

Этот первый кандидат на использование LemonStand - это недавно созданный веб-сайт, который я создал на PHP.

У меня есть все страницы, не связанные с электронной торговлей (например, о контактах и ​​контактах), взятые из LemonStand CMS.

Но теперь я пытаюсь преобразовать то, что было простым PHP, в частичные:.

Пример:

<? include 'standard_include.php'; ?>

<? include 'header.php'; ?>

в LemonStand's

<? $this->render_partial('standard_include') ?>

<? $this->render_partial('header') ?>

Я получаю необработанное исключение, связанное с неопределенными переменными:

Вот так выглядит начало моей страницы / шаблона

<?php
require_once('lib/php/configuration.php');
$pagetype = 'home';
$subpagetype = 'index';
$titleValue = 'Client Name';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title><?php echo $titleValue ?></title>    

<? $this->render_partial('standard_include') ?>

</head>

<body>

<? $this->render_partial('header') ?>

Не обрабатываются ли партиалы позднее в процессе загрузки страницы (по сравнению с PHP)?

Я неправильно использую партиалы? Если да, что мне делать, чтобы включить PHP в бэкдор LemonStand?

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

Я никогда не использовал Lemonstand, но если его MVC работает как другие системы MVC, то вам нужно ввести переменные, необходимые для standard_include, в представление. Что-то вроде:

$this->renderPartial('standard_include', array('pagetype'=>$pagetype, ...)) ?>

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

PHP include работает по-другому. Он просто буквально вставляет включенный файл на месте в этот момент перед выполнением сценария.

0 голосов
/ 28 ноября 2011

Я думаю, что render_partial происходит после того, как страницы начинают отображаться, в то время как включение происходит раньше, поэтому у него есть значение для pagetype.

Я думаю, что решение будет сохранить ихвключает в себя.Я просто не смогу иметь каждый файл в их админ / бэкэнд-системе.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...