<MyRusakov.ru />

Создание Интернет-магазина на OpenCart 2.0

Создание Интернет-магазина на OpenCart 2.0

Видеокурс "Создание Интернет-магазина на OpenCart 2.0" обучит Вас созданию любых Интернет-магазинов на OpenCart 2. В первом разделе курса разбираются абсолютно все возможности данного движка с примерами.

Во втором разделе создаётся полноценный Интернет-магазин, где Вы уже всё увидите своими глазами.

И, наконец, в третьем разделе курса созданный Интернет-магазин будет размещён в Интернете.

К курсу так же идут бесплатные и очень ценные Бонусы сопоставимые с самим курсом: "Как сэкономить на Яндекс.Директ до 50%", "Дропшиппинг" и "Как раскрутить Интернет-магазин".

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Цикл и tpl
17.11.2011 23:16:02 Цикл и tpl Сообщение #1
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, подскажите пожалуйста, как значения из цикла while вывести в tpl???
Ведь там получается конструкция
$cikl = while ($row = mysqli_fetch_array($result)) echo "<input type = 'checkbox' name = 'style[]' value = '" . $row['id'] . "'>" . $row['name'] . "<br />";
$styles = file_get_contents("./templates/reg_form.tpl";
$styles = str_replace("{styles}", $cikl, $styles);
echo $styles;

А это вообще смешно выглядит) Ведь наверное есть какие нибудь способы записи такого цикла?
Профиль Ответить
17.11.2011 23:22:30 Цикл и tpl Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Насколько я понимаю, в $row содержится набор элементов, которые необходимо подставить в reg_form.tpl. Если так, то нужно создать внутри цикла 2 массива: элементов шаблона и соответствующие значения.
Далее вызвать str_replace($el_templates, $el_values, $template); Первые две переменные - это и есть массивы, которые были созданы в цикле.
Профиль Ответить
17.11.2011 23:23:56 Цикл и tpl Сообщение #3
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Ага, вроде понял))) Пойду пробовать)))
Профиль Ответить
17.11.2011 23:56:55 Цикл и tpl Сообщение #4
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, ну значения я понял как сделать в массив, а вот как саму заменяемую строку в tpl файле тогда заменять? Ведь получается, что цикл у меня сам делает код и html
вот примерно код с массивом значений
public function styles() {
$query = "SELECT * FROM styles";
$result = mysqli_query($this->connect, $this->close) or die("Ошибка!!!!";
$styles = file_get_contents("./templates/reg_form.tpl";
while ($row = mysqli_fetch_array($result)) {
$asd[] = "<input type = 'checkbox' name = 'style[]' value = '" . $row['id'] . "'>" . $row['name'] . "<br />";

}
$styles = str_replace("{styles}", $asd[], $styles);
echo $styles;
}

Как заменить этим строку "{styles}"?
Вот код tpl файла
<form name = "form1" action = "obr.php" method = "post">
<input type = "text" name = "name">Имя<br />
{styles}
</form>
Профиль Ответить
18.11.2011 00:00:17 Цикл и tpl Сообщение #5
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

У Вас проще, чем я думал. Здесь даже массивы не нужны. Достаточно в цикле вместо массива использовать обычную переменную:
$text .= "<input type = 'checkbox' name = 'style[]' value = '" . $row['id'] . "'>" . $row['name'] . "<br />";
Заметьте, она с каждой итерацией увеличивается.
А затем: $styles = str_replace("{styles}", $text, $styles);
Профиль Ответить
18.11.2011 00:12:20 Цикл и tpl Сообщение #6
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Спасибо, Михаил))))Заработало))) Только вот появился вопрос, что означачет точка перед знаком = ???
Профиль Ответить
18.11.2011 00:13:16 Цикл и tpl Сообщение #7
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Это аналогично: $text = $text."какая-то строка";
Профиль Ответить
18.11.2011 00:14:35 Цикл и tpl Сообщение #8
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

аааа, спасибо за инфо)))
Профиль Ответить
18.11.2011 00:36:26 Цикл и tpl Сообщение #9
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, а как сделать, что бы в цикле было размещение не
<input type = 'checkbox' name = 'style[]' value = '15'>Acid Breaks<br /><input type = 'checkbox' name = 'style[]' value = '16'>Ambient Breaks<br />
<input type = 'checkbox' name = 'style[]' value = '15'>Acid Breaks<br /><input type = 'checkbox' name = 'style[]' value = '16'>Ambient Breaks<br />

а допустим
<input type = 'checkbox' name = 'style[]' value = '15'>Acid Breaks<br /><input type = 'checkbox' name = 'style[]' value = '16'>Ambient Breaks

<input type = 'checkbox' name = 'style[]' value = '15'>Acid Breaks<br /><input type = 'checkbox' name = 'style[]' value = '16'>Ambient Breaks<br />

То есть через каждые 2 прохода он ставил <br /> в конце?
Профиль Ответить
18.11.2011 00:45:24 Цикл и tpl Сообщение #10
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Идея примерно такая:
$i = 0;
while (...) {
$i++;
if ($i % 2 == 0) $text .= с br;
else $text .= без br;
}
Профиль Ответить