<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

Этот курс научит Вас созданию самых разных сайтов на самой популярной в мире CMS - WordPress. Вы увидите установку и настройку локального сервера, разбор каждой настройки, каждой кнопки и каждого пункта меню в панели WordPress.

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

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

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

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

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

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

Какая тема Вас интересует больше?

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

Выпадающее меню из БД
22.03.2013 22:47:20 Выпадающее меню из БД Сообщение #1
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

Делаю меню в движке из уроков по PHP. И возник такой вопрос: как из одной функции передать значение переменной в другую?
А именно: я добавил метод getListMenu, и именно в него нужно передать переменную i.
protected function getMenu() {
$menu = $this->menu->getAll();
for ($i = 0; $i < count($menu); $i++) {
$sr["title"] = $menu[$i]["title"];
$sr["link"] = $menu[$i]["link"];
$text .= $this->getReplaceTemplate($sr, "menu_item";
$list_menu = $this->getListMenu($i);
}
return $text;
}
protected function getListMenu() {
$list_menu = $this->list_menu->getAllOnField("menu_id", $i);
for ($j = 0; $j <count($list_menu); $j++) {
$sr["title"] = $list_menu[$j]["title"];
$sr["link"] = $list_menu[$j]["link"];
$text .= $this->getReplaceTemplate($sr, "menu_list";
}
return $text;
}

Если вместо i подставлю число, то все работает, но соответственно у каждого пункта меню выпадает список с пунктами которые должны быть только у пункта меню у которого id соответствует числу которое я ставлю.
Вот и как и ее передать? И есть ли какие нибудь замечания или предложения по моему решению?
Профиль
22.03.2013 22:56:28 Выпадающее меню из БД Сообщение #2
Admin

Admin

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

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

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

Сообщений: 3063

protected function getListMenu($i) { - вот так и передаётся. Если всё это будет работать, то никаких проблем я тут не вижу.
Профиль
23.03.2013 05:50:23 Выпадающее меню из БД Сообщение #3
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

я уже так делал, появлялась ошибка. сейчас в getContent()в $sr["list_menu"] = $this->getListMenu() поставил $i в скобки. ошибка исчезла, но по прежнему ничего не выводится. а конкретно число ставлю, то выводится
Профиль
23.03.2013 07:12:57 Выпадающее меню из БД Сообщение #4
Admin

Admin

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

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

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

Сообщений: 3063

Покажите текст ошибки.
Профиль
23.03.2013 10:38:52 Выпадающее меню из БД Сообщение #5
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

Warning: Missing argument 1 for Modules::getListMenu(), called in Z:\home\projectrem\www\lib\modules_class.php on line 50 and defined in Z:\home\projectrem\www\lib\modules_class.php on line 74
Профиль
23.03.2013 11:44:36 Выпадающее меню из БД Сообщение #6
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

может здесь нужно как то getListMenu в getMenu вставить?

public function getContent() {
...
$sr["menu"] = $this->getMenu();
$sr["list_menu"] = $this->getListMenu($i);
...
}
Профиль
23.03.2013 15:03:01 Выпадающее меню из БД Сообщение #7
Admin

Admin

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

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

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

Сообщений: 3063

Missing argument 1 for Modules::getListMenu() - это означает, что при вызове getListMenu() не был передан параметр.
Профиль
23.03.2013 15:19:32 Выпадающее меню из БД Сообщение #8
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

а когда я его здесь вставляю ошибка исчезает, но ничего не работает.
public function getContent() {
...
$sr["menu"] = $this->getMenu();
$sr["list_menu"] = $this->getListMenu($i);
...
}

а также в самой функции поставил.
почему он не передается? как его правильно передать?
Профиль
23.03.2013 15:20:29 Выпадающее меню из БД Сообщение #9
Admin

Admin

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

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

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

Сообщений: 3063

Всё правильно Вы передаёте, и он должен передаваться. Смотрите значения переменных: http://myrusakov.ru/php-finderror.html
Профиль
23.03.2013 16:54:16 Выпадающее меню из БД Сообщение #10
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

в общем переменная передается нормально, это что то с функцией. Например эта функция
protected function getMenu() {
$menu = $this->menu->getAll();
for ($i = 0; $i < count($menu); $i++) {
$sr["title"] = $menu[$i]["title"];
$sr["link"] = $menu[$i]["link"];
$text .= $this->getReplaceTemplate($sr, "menu_item";
print_r($text);
$list_menu = $this->getListMenu($menu[$i]["id"]);
}
return $text;
}
выводит вот что:

Главная
%list_menu%

Главная
%list_menu%

Квартира
%list_menu%

Главная
%list_menu%

Квартира
%list_menu%

Дома и коттеджи
%list_menu%

должно же без повторений быть. вторая функция также выполняется. все формируется но выводится через getReplaceTemplate.

protected function getListMenu($i) {
$list_menu = $this->list_menu->getAll();
echo $i;
for ($j = 0; $j < count($list_menu); $j++) {
if ($list_menu[$j]["menu_id"] == $i) {
$sr["title"] = $list_menu[$j]["title"];
$sr["link"] = $list_menu[$j]["link"];
$text .= $this->getReplaceTemplate($sr, "menu_list";
echo $text;
}
}
return $text;
}

а вот что получается:

12
Пол
Пол
Стены
Пол
Стены
Потолок
3
Фундамент
Фундамент
Стены
Профиль