На самом деле, я застрял в какой-то момент, я конвертирую библиотеку Datatables, которая уже интегрирована в проект на основе Zend Framework v2.5.1.
Я хочу использовать ajax-версию таблиц данных.поэтому я использую эту библиотеку таблиц данных.
Я могу изменить ее и интегрировать в нее преобразованный 90% кода, но я не очень хорош в Zend, я впервые работаю сZend
застрял часть: я хочу использовать эту функцию Zend в моем внешнем классе PHP.
echo $this->partialLoop('html/iconButton', $this->viewHelper()->checkUrlPermission($listIconDatauser));
Я много искал и нашел эту часть информации
здесь он интегрировал функцию part (), но в моем коде вы можете ясно увидеть, что это функция partlolo ().
Итак, вот что я делал до сих пор
include '../../public/constant.php';
$cwd = getcwd();
chdir(ROOT_DIR);
require 'init_autoloader.php';
Zend\Mvc\Application::init(require 'config/application.config.php');
use Zend\View\Renderer\PhpRenderer;
use Zend\View\Resolver;
//create a Template Stack
$stack = new Resolver\TemplatePathStack(array('script_paths' => array(__DIR__ . '/module/Module/view/partial')));
//create a Resolver
$resolver = new Resolver\AggregateResolver();
$resolver->attach($stack);
//create a Renderer
$renderer = new PhpRenderer();
$renderer->setResolver($resolver);
//Zend\Mvc\Application::init(require 'vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php');
session_start();
//var_dump($this->partial());
//$permission = @$_SESSION['base']->permission;
//echo "<pre>";print_R($permission);die;
/*
$file = $_SERVER['DOCUMENT_ROOT'].'/datatables/pdo.php';
$customArray = [];
if ( is_file( $file ) ) {
include( $file );
}
*/
class SSP {
/**
* Create the data output array for the DataTables rows
*
* @param array $columns Column information array
* @param array $data Data from the SQL get
* @return array Formatted data in a row based format
*/
static function checkUrlPermission($data) {
if (!empty($data)) {
//$session = new \Zend\Session\Container('base');
//$permission = $session->offsetGet('permission');
$permission = @$_SESSION['base']->permission;
// echo "<pre>";print_R($permission);die;
for ($i = 0; $i < sizeof($data); $i++) {
if (!empty($data[$i]['controller'])) {
if (!in_array($data[$i]['controller'] . '###' . $data[$i]['action'], $permission)) {
$data[$i]['controller'] = '';
$data[$i]['action'] = '';
$data[$i]['class'] = 'disabled';
}
} else {
$data[$i]['controller'] = '';
$data[$i]['action'] = '';
}
}
}
return $data;
}
static function data_output ( $columns, $data )
{ // print_R($data);die;
$out = array();
for ( $i=0, $ien=count($data) ; $i<$ien ; $i++ ) {
$row = array();
for ( $j=0, $jen=count($columns) ; $j<$jen ; $j++ ) {
$column = $columns[$j];
// Is there a formatter?
if ( isset( $column['formatter'] ) ) {
$row[ $column['dt'] ] = $data[$i][$j];
}
else {
$row[ $column['dt'] ] = $data[$i][$j];
// if($column['dt'] == 8){
// }
}
}
$out[] = $row;
}
foreach($out as $val){
$listIconDatauser= [
['name' => 'user', 'controller' => 'user', 'action' => 'showuserbydoc', 'icon' => 'icon-user', 'iconClass' => 'btn-primary fancybox fancybox.iframe titleIcon', 'data' => ['userId' => $val[8]],'isframe'=>1],
];
//print_R($listIconDatauser);die;
//$data = self::checkUrlPermission($listIconDatauser);
/*
echo $renderer->partial('name', array( //resolves to "__DIR__ . '/module/Module/view/partial/name.phtml"
'from' => 'Team Framework',
'subject' => 'view partials'
));die;
*/
echo $renderer->partialLoop('html/iconButton', self::checkUrlPermission($listIconDatauser));die;
print_R($data);die;
}
return $out;
}
в вышеприведенном коде sessionpart работает и функция checkUrlPermission работает, но echo $ renderer-> частичный цикл не работает.
Я пытаюсь интегрировать модуль / приложение / представление / частичное / iconButton.phtml вот код.
<?php
$href='';
//PR($this);die;
if (!empty($this->controller)) {
$urPart = array("controller" => $this->controller, "action" => $this->action);
$urPart = ($this->data)?array_merge($urPart, $this->data):$urPart;
$options=array();
if($this->isframe){
$options["query"]=array("isframe"=>1);
}
$href = "href='".$this->url($this->controller, $urPart,$options)."'";
}
if(!isset($this->dataVal))
{
$this->dataVal="";
}
?>
<?php if(empty($this->class)){?>
<a <?=$href; ?> class="btn btn-mini tip no-margin <?= $this->iconClass; ?> <?= $this->class; ?>" title="<?= $this->name; ?>" data-val="<?=$this->dataVal?>"><i class="<?= $this->icon; ?>"></i></a>
<?php }?>