Knak благодарю что откликнулись. но вы походу далеко не в теме, не даже не в познани virtuemart и самого php, если вы мне задаете такие вопросы.
И order_number и virtuemart_order_id это все есть в массиве $row
Тут без обид, просто я кое что понимаю в этом, но у меня проблема именно с буферизацией, так как ситуация не стандартная.
echo $row->virtuemart_order_id; или print_r($row->virtuemart_order_id, true);
Пусто к сожалению...😡
echo $virtuemart_order_id;
Она не чего не выдает, так как она в $row
Тут что то не так с буферизацией, вот что понять не могу не как.
$order_id = $_GET['order_id'];
Вам это кажется. Нет в скриптах не какого $order_id , есть $virtuemart_order_id
И отношение как раз к буферизации, так как переменная вставляется из вне---------- Добавлено 19.08.2016 в 13:36 ----------то есть плагином вставляется переменная $virtuemart_order_id в цикл foreach ($this->orderlist as $row) { в скрипте списков всех заказов.
Проблем е с этой переменной нет если вставить ее в сам скрипт, но через буфер если вставляеш то вот такие идут нюансы---------- Добавлено 19.08.2016 в 13:42 ----------Она есть в $row
если посмотрите выше немного то увидите цикл
<?php $k = 0; foreach ($this->orderlist as $row) {
Да, но все ровно пустой параметр...
$buffer = JResponse::getBody(); // Обратим внимание что появились одиночные кавычки //$phpscript = '<input type=text name="orders" value="'. $order_id .'">'; // Тут $order_id у вас пустой, переменная не объявлена // Заменим на $phpscript = '<input type=text name="orders" value="'. print_r($row->virtuemart_order_id, true) .'">'; // будет value="NULL" скорее всего $buffer = preg_replace("/<\/shcodes>/", "\n\n" . $str . "\n\n" . $br . "\n\n" . $phpscript . "\n\n" . $jscript ."\n\n</shcodes>", $buffer); JResponse::setBody($buffer); // Тут сохраняем строку, а не буфер результат ob_start, по этому у вас и нет данных, потому что они улетают в поток вывода return true;
сейчас в исходном коде вот
<input type=text name="orders" value="">
Добрый день, скажите пожалуйста... почему же все таки NULL
$phpscript = '<input type=text name="orders" value="'. gettype ($row->virtuemart_order_id) .'">'; // будет value="NULL" скорее всего
переменная объявлена в том скрипте куда вставляется $row->virtuemart_order_id
вот
<?php $k = 0; foreach ($this->orderlist as $row) { $editlink = JRoute::_('index.php?option=com_virtuemart&view=orders&layout=details&order_number=' . $row->order_number, FALSE); ?> <tr class="<?php echo "row$k"; ?>"> <td> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_ORDER_NUMBER'); ?></span> <a href="<?php echo $editlink; ?>"><?php echo $row->order_number; ?></a> </td> <td class="hidden-xs"> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_CDATE'); ?></span> <?php echo vmJsApi::date($row->created_on,'LC4',true); ?> </td> <td class="hidden-xs"> <?php echo vmJsApi::date($row->modified_on,'LC4',true); ?> </td> <td> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_STATUS'); ?></span> <?php echo ShopFunctions::getOrderStatusName($row->order_status); ?> </td> <td> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_PODTVERGDENI'); ?></span> <?php//print_r($row->virtuemart_order_id); ?> </shcodes> </td> <td> <?php } ?>
Я пытаюсь через буфер вставить в сам цикл foreach ($this->orderlist as $row) {
вставляю print_r($row->virtuemart_order_id);
получаю цифру 1
Как применит другой параметр print_r($data,true) не пойму
если вывожу $phpscript = '<input type=text name="orders" value="'. gettype ($row->virtuemart_order_id) .'">'; // будет value="NULL" скорее всего
то получаю NULL
Может хоть какие то у кого есть мысли что может быть не так?
Вот скрипт куда выводится мой php
место вывода мой тег </shcodes>
<?phpdefined('_JEXEC') or die('Restricted access');?><?phpif (count($this->orderlist) == 0) { ?><div class="box-bg login-box2 cart-view"> <h3 class="module-title"><?php echo vmText::_('COM_VIRTUEMART_ORDER_ANONYMOUS') ?></h3> <div class="box-bg-indent"> <?php echo shopFunctionsF::getLoginForm(false,true); ?> </div></div> <?php } else { ?><div id="editcell" class="order-list"><h1><?php echo JText::_('COM_VIRTUEMART_ORDERS_VIEW_DEFAULT_TITLE'); ?></h1><div class="order-items-box"><div class="table-responsive"><table class="table table-striped table-bordered table-hover"> <tr class="info"> <td> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_ORDER_NUMBER'); ?> </td> <td class="hidden-xs"> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_CDATE'); ?> </td> <td class="hidden-xs"> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_MDATE_MY'); ?> </td> <td> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_STATUS_MY'); ?> </td> <td> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_PODTVERGDENI'); ?> </td> <td> <?php echo JText::_('COM_VIRTUEMART_DELIVERY_RPO'); ?> </td> <td> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_TOTAL'); ?> </td> <?php $k = 0; foreach ($this->orderlist as $row) { $editlink = JRoute::_('index.php?option=com_virtuemart&view=orders&layout=details&order_number=' . $row->order_number, FALSE); ?> <tr class="<?php echo "row$k"; ?>">$row->order_number <td> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_ORDER_NUMBER'); ?></span> <a href="<?php echo $editlink; ?>"><?php echo ; ?></a> </td> <td class="hidden-xs"> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_CDATE'); ?></span> <?php echo vmJsApi::date($row->created_on,'LC4',true); ?> </td> <td class="hidden-xs"> <?php echo vmJsApi::date($row->modified_on,'LC4',true); ?> </td> <td> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_STATUS'); ?></span> <?php echo ShopFunctions::getOrderStatusName($row->order_status); ?> </td> <td> </shcodes> </td> <td> <?php if(!empty($row->order_track )){ //if ($row->order_track != NULL) { echo "<span class=\"divice-name\">".JText::_('COM_VIRTUEMART_DELIVERY_RPO')."</span>"; echo $row->order_track; } ?> </td> <td class="total"> <?php echo $this->currency->priceDisplay($row->order_total, $row->currency); ?> </td> </tr> <?php $k = 1 - $k; } ?> </table> </div></div></div><?php } ?>
вывожу
$buffer = JResponse::getBody();$phpscript = "<button onclick='statusUp(".$i->id.",this)' class='btn off btn-success btn-sm'>".JText::_('COM_VIRTUEMART_STATUS_POLUCHEN')."</button> <input type=text name=orders value=". $row->order_number .">"; $buffer = preg_replace("/<\/shcodes>/", "\n\n" . $ps . "\n\n" . $br . "\n\n" . $phpscript . "\n\n" . $jscript ."\n\n</shcodes>", $buffer); JResponse::setBody($buffer); return true;
получается через тег я вставляю в сам цыкл foreach
но нечего не выводится
пробовал принтовать
<input type=text name=orders value=". print_r($row->order_number) .">
выводится только---------- Добавлено 18.08.2016 в 14:02 ----------получается если вывожу через буферизацию то php как не в теле что ли получается, и из за этого он не читаемый. Но почему...---------- Добавлено 18.08.2016 в 15:26 ----------пробую вывести принт по другому
$buffer = JResponse::getBody(); $buffer = preg_replace('#(<shcodes[^\>]*?>)#ism', print_r($row->order_number), $buffer); JResponse::setBody($buffer); return true;
скрипт где выводится мой тег
<?php defined('_JEXEC') or die('Restricted access'); ?> <?php if (count($this->orderlist) == 0) { ?> <div class="box-bg login-box2 cart-view"> <h3 class="module-title"><?php echo vmText::_('COM_VIRTUEMART_ORDER_ANONYMOUS') ?></h3> <div class="box-bg-indent"> <?php echo shopFunctionsF::getLoginForm(false,true); ?> </div> </div> <?php } else { ?> <div id="editcell" class="order-list"> <h1><?php echo JText::_('COM_VIRTUEMART_ORDERS_VIEW_DEFAULT_TITLE'); ?></h1> <div class="order-items-box"> <div class="table-responsive"> <table class="table table-striped table-bordered table-hover"> <tr class="info"> <td> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_ORDER_NUMBER'); ?> </td> <td class="hidden-xs"> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_CDATE'); ?> </td> <td class="hidden-xs"> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_MDATE_MY'); ?> </td> <td> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_STATUS_MY'); ?> </td> <td> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_PODTVERGDENI'); ?> </td> <!--solopov добавил Р*РџРћ--> <td> <?php echo JText::_('COM_VIRTUEMART_DELIVERY_RPO'); ?> </td> <td> <?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_TOTAL'); ?> </td> <?php $k = 0; foreach ($this->orderlist as $row) { $editlink = JRoute::_('index.php?option=com_virtuemart&view=orders&layout=details&order_number=' . $row->order_number, FALSE); ?> <tr class="<?php echo "row$k"; ?>"> <td> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_ORDER_NUMBER'); ?></span> <a href="<?php echo $editlink; ?>"><?php echo $row->order_number; ?></a> </td> <td class="hidden-xs"> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_CDATE'); ?></span> <?php echo vmJsApi::date($row->created_on,'LC4',true); ?> </td> <td class="hidden-xs"> <?php echo vmJsApi::date($row->modified_on,'LC4',true); ?> </td> <td> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_STATUS'); ?></span> <?php echo ShopFunctions::getOrderStatusName($row->order_status); ?> </td> <td> <span class="divice-name"><?php echo JText::_('COM_VIRTUEMART_ORDER_LIST_PODTVERGDENI'); ?></span> <shcodes> </td> <td> <?php if(!empty($row->order_track )){ //if ($row->order_track != NULL) { echo "<span class=\"divice-name\">".JText::_('COM_VIRTUEMART_DELIVERY_RPO')."</span>"; echo $row->order_track; } ?> </td> <td class="total"> <?php echo $this->currency->priceDisplay($row->order_total, $row->currency); ?> </td> </tr> <?php $k = 1 - $k; } ?> </table> </div></div> </div> <?php } ?>
но выводится не понятная цифра 1
<tr class="row0"> <td> <span class="divice-name">Номер заказа</span> <a href="/index.php?option=com_virtuemart&view=orders&layout=details&order_number=8T8T089&Itemid=133">8T8T089</a> </td> <td class="hidden-xs"> <span class="divice-name">Дата заказа</span> 2016-08-13 </td> <td class="hidden-xs"> 2016-08-16 </td> <td> <span class="divice-name">Статус заказа</span> Оплачен </td> <td> <span class="divice-name">Получение заказа</span> 1 </td> <td> </td> <td class="total"> 5600,56 € </td> </tr>
хотя если в сам скрипт вставляю принт print_r($row->order_number) то выводится номер заказа, какая то лобуда получается...---------- Добавлено 18.08.2016 в 15:53 ----------даже если вставлять сразу после <body> тоже не пашет и не читается как php
$buffer = JResponse::getBody(); $buffer = preg_replace('#(<body[^\>]*?>)#ism', '\\1<?php var_dump($params);?>', $buffer); id="proofreader_highlighter_end" /></body>', $buffer); JResponse::setBody($buffer); } return true;
и почемуто читается как текст что ли... вот в исходном коде как выглядит
</head> <body class="site com_virtuemart view-orders layout-list no-task itemid-133 fluid"><?php var_dump($params);?> <!-- Body -->
Оно может и пом... как вы говорите.Но другим методом то как это реализовать?
Код простой. Я пытаюсь сделать покупку в магазине VM2 - покупка всех товаров в один клик. На странице к примеру три товара и под ними кнопка с возможностью все три сразу положить в корзину.И получается что первый клик срабатывает. а остальные два нет. Хотя в ручную быстренько
все товары добавить успеваю, это так пробовал если быстрой кликнуть по всем трем товарам.То они до переадрисации в корзину успевают добавится.
<script type = 'text/javascript'> function submit_forms () { document.getElementById('41').click(); document.getElementById('42').click(); document.getElementById('43').click(); } </script> <button type="submit" id="41" value="<?php echo $button_lbl ?>" title="<?php echo JText::_('COM_VIRTUEMART_CART_ADD_TO');?>" class="<?php echo $button_cls ?>"><?php echo $button_lbl ?><span> </span></button> <button type="submit" id="42" value="<?php echo $button_lbl ?>" title="<?php echo JText::_('COM_VIRTUEMART_CART_ADD_TO');?>" class="<?php echo $button_cls ?>"><?php echo $button_lbl ?><span> </span></button> <button type="submit" id="43" value="<?php echo $button_lbl ?>" title="<?php echo JText::_('COM_VIRTUEMART_CART_ADD_TO');?>" class="<?php echo $button_cls ?>"><?php echo $button_lbl ?><span> </span></button> и кнопка добавить все товары в корзину, тоб то кликнуть по всем трем кнопкам сабмит на товаре. <div class="btn-holder" style="float: left"> <input type="submit" onclick="submit_forms();" class="btn-yellow js-addmulti-basket" value="<?php echo JText::_('OPT_SALE')?>"/>
Похожая функция реализована на этом сайте http://www.biofa.ru/fasad-derevyannogo-doma-kleenuy-brus/
но не как не пойму как там сделано у них.