<?php  
\Core\Router::loadView("api/html/_template/".\Core\Router::$disposition."/top"); 
?> 
<h1>Welcome to Boiler:Data</h1> 
<p>Boiler:Data is the AJAX framework designed for data hackers. It's special because it does all the coding for you!</p> 
<p>Also, because it's built on Boiler, it's fast, easy to manipulate and easy to extend!</p> 
<p>To begin just follow these simple steps</p> 
<ol> 
    <li>Clone the repo: git clone https://github.com/ivebeenlinuxed/Boiler.git</li> 
    <li>Point your webserver to [project_root]/htdocs (make sure .htaccess rewrite is on)</li> 
    <li>Build the config file: ant build (you may need to install 'ant')</li> 
    <li>Edit the config file config.php in your favourite editor</li> 
    <li>Get Boiler to build all of your models for you: ant models</li> 
    <li>Get Boiler to build all your API for you: ant api</li> 
</ol> 
<p>You're done!</p> 
Below is a list of all the models that you have created. Make sure you run the API command for the links to work! 
 
<table class="table table-striped table-bordered"> 
    <tr> 
        <th colspan="4">Modal</th> 
    </tr> 
    <tr> 
        <th>List</th> 
        <th>Add</th> 
        <th>View</th> 
        <th>Edit</th> 
    </tr> 
<?php  
$dir = opendir(BOILER_LOCATION."/application/model/"); 
while ($d = readdir($dir)) { 
    if ($d == "." || $d == "..") { 
        continue; 
    } 
    if (!class_exists("\\Model\\".\System\Library\Lexical::getClassName(substr($d, 0, -4)))) { 
        include BOILER_LOCATION."/application/model/$d"; 
    } 
} 
?> 
<?php 
foreach (get_declared_classes() as $class) { 
    if (strpos($class, "Model\\") === 0) { 
        if ($class == "Model\\DBObject") { 
            continue; 
        } 
        echo "<tr><td><a data-type='api-modal' href='/api/{$class::getTable()}'>/api/{$class::getTable()}</a></td>"; 
        echo "<td><a data-type='api-modal' href='/api/{$class::getTable()}/add'>/api/{$class::getTable()}/add</a></td>"; 
        $data = $class::getAll(null, 0, 1); 
        $key = $class::getPrimaryKey()[0]; 
        if (count($data) == 1 && is_object($data[0])) { 
            $data = $data[0]; 
            echo "<td><a data-type='api-modal' href='/api/{$class::getTable()}/{$data->$key}'>/api/{$class::getTable()}/{$data->$key}</a></td>"; 
            echo "<td><a data-type='api-modal' href='/api/{$class::getTable()}/{$data->$key}/edit'>/api/{$class::getTable()}/{$data->$key}/edit</a></td>"; 
        } else { 
            echo "<td>/api/{$class::getTable()}/{id}</td>"; 
            echo "<td>/api/{$class::getTable()}/{id}/edit</td>"; 
        } 
    } 
} 
?> 
</table> 
<table class="table table-striped table-bordered"> 
    <tr> 
        <th colspan="4">Main</th> 
    </tr> 
    <tr> 
        <th>List</th> 
        <th>Add</th> 
        <th>View</th> 
        <th>Edit</th> 
    </tr> 
<?php 
foreach (get_declared_classes() as $class) { 
    if (strpos($class, "Model\\") === 0) { 
        if ($class == "Model\\DBObject") { 
            continue; 
        } 
        
 
        echo "<td><a href='/api/{$class::getTable()}'>/api/{$class::getTable()}</a></td>";
 
        echo "<td><a href='/api/{$class::getTable()}/add'>/api/{$class::getTable()}/add</a></td>";
 
        $data = $class::getAll(null, 0, 1);
 
        $key = $class::getPrimaryKey()[0];
 
        if (count($data) == 1 && is_object($data[0])) {
 
            $data = $data[0];
 
            echo "<td><a href='/api/{$class::getTable()}/{$data->$key}'>/api/{$class::getTable()}/{$data->$key}</a></td>";
 
            echo "<td><a href='/api/{$class::getTable()}/{$data->$key}/edit'>/api/{$class::getTable()}/{$data->$key}/edit</a></td>";
 
        } else {
 
            echo "<td>/api/{$class::getTable()}/{id}</td>";
 
            echo "<td>/api/{$class::getTable()}/{id}/edit</td>";
 
        } 
        echo "</tr>"; 
    } 
} 
?> 
</table> 
<table class="table table-striped table-bordered"> 
    <tr> 
        <th colspan="4">JSON</th> 
    </tr> 
    <tr> 
        <th>List</th> 
        <th>View</th> 
    </tr> 
<?php 
foreach (get_declared_classes() as $class) { 
    if (strpos($class, "Model\\") === 0) { 
        if ($class == "Model\\DBObject") { 
            continue; 
        } 
         
        echo "<td><a href='/api/{$class::getTable()}.json'>/api/{$class::getTable()}.json</a></td>"; 
        $data = $class::getAll(null, 0, 1); 
        $key = $class::getPrimaryKey()[0]; 
        if (count($data) == 1 && is_object($data[0])) { 
            $data = $data[0]; 
            echo "<td><a href='/api/{$class::getTable()}/{$data->$key}.json'>/api/{$class::getTable()}/{$data->$key}.json</a></td>"; 
        } else { 
            echo "<td>/api/{$class::getTable()}/{id}.json</td>"; 
        } 
        echo "</tr>"; 
    } 
} 
?> 
</table> 
<table class="table table-striped table-bordered"> 
    <tr> 
        <th colspan="2">Special Functions</th> 
    </tr> 
    <tr> 
        <th>Filter</th> 
<?php 
foreach (get_declared_classes() as $class) { 
    if (strpos($class, "Model\\") === 0) { 
        if ($class == "Model\\DBObject") { 
            continue; 
        } 
         
        echo "<td><a href='/api/{$class::getTable()}.html?__where=%5B%5B%22id%22%2C%22!%3D%22%2C%221%22%5D%5D'>/api/{$class::getTable()}?__where=[['id', '!=', 1]]</a></td>"; 
        break; 
    } 
} 
?> 
</tr> 
    <tr> 
        <th>Page (size 4, page 1 - pages start at zero)</th> 
<?php 
foreach (get_declared_classes() as $class) { 
    if (strpos($class, "Model\\") === 0) { 
        if ($class == "Model\\DBObject") { 
            continue; 
        } 
         
        echo "<td><a href='/api/{$class::getTable()}.html?__X_PAGE=2/4'>/api/{$class::getTable()}?__X_PAGE=1/4</a></td>"; 
        break; 
    } 
} 
?> 
</tr> 
<tr> 
    <th>Headers: X-*</th> 
    <td>?__X_* (Where headers cannot be sent nicely - such as an HTML anchor tag)</td> 
</tr> 
<tr> 
    <th>Request Method (e.g. PUT,DELETE,GET,POST)</th> 
    <td>X-Request-Method: PUT</td> 
</tr> 
<tr> 
    <th>Order By</th> 
    <td>X-Order-By: id+, name- (Not yet implemented)</td> 
</tr> 
<tr> 
    <th>Show only fields id and name</th> 
    <td>X-Fields: id, name (Not yet implemented)</td> 
</tr> 
</table> 
 
<ul> 
 
</ul> 
<?php  
\Core\Router::loadView("api/html/_template/".\Core\Router::$disposition."/bottom"); 
?>
 
 |