Nano Hash - криптовалюты, майнинг, программирование

Пользовательская функция OpenCart PHP не работает

У меня возникли некоторые трудности с включением пользовательской функции php в шаблон opencart. Вот что происходит.

В файле header.tpl я вставляю этот код в часть:

<?php
$blah = file_get_contents("my_url_goes_here");
?>
<?php       
echo $blah;   
?>

Затем в файл footer.tpl я вставляю этот код:

<?php if(!isset($blah)) die; ?>

Цель этого состоит в том, чтобы определить, существует ли еще моя бла-функция в заголовке, и если ее нет, чтобы выйти из скрипта.

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

Но если я перемещу его в файл footer.tpl, куда я хочу, он убьет сценарий, несмотря ни на что, и я получу пустую страницу, даже если переменная blah в файле header.tpl не повреждена.

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

Заранее спасибо за любые мысли!

31.08.2013

Ответы:


1

Это два отдельных объекта, и поэтому данные из одного не будут находиться в другом. Я предполагаю, что это какой-то сценарий обнаружения обратного кода, как многие делают для шаблонов WordPress. OpenCart основан на MVC, не является линейным, и поэтому $blah в заголовке игнорируется почти сразу после того, как код в нем полностью выполнен.

31.08.2013
  • Джей - спасибо за пост. Ты вроде прав. Любой способ обойти эту проблему, например, сделать переменную глобальной? 31.08.2013
  • Вы могли бы сделать именно это наверняка. Возможно, даже сохраните значение в значение сеанса, чтобы вам не приходилось вызывать его при каждой загрузке страницы, что будет накладными расходами как на вашем сервере, так и на клиентском сайте. 31.08.2013
  • Отличная идея. Я попробую это реализовать. Спасибо!! 31.08.2013
  • Джей, что касается сохранения этого значения в сеансе, как это будет выглядеть? 31.08.2013
  • Я добавил $_SESSION['blah'] = $blah; после первой функции php выше, но мой код нижнего колонтитула все еще не читает его. 31.08.2013
  • Во-первых, вам не нужны кавычки вокруг $blah или даже делать это таким образом. Вы можете просто назначить его напрямую. $this->session->data['blah'] = file_get_contents('url');. Затем вы проверяете значение, установленное в нижнем колонтитуле: if(isset($this->session->data['blah'])) die(); 01.09.2013
  • Джей — имейте в виду, это происходит внутри файла header.tpl — мне нужно попытаться сохранить весь код внутри файлов шаблонов. Это все еще что-то, что будет работать? Могу ли я определить бла изнутри header.tpl? 01.09.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..