mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-29 05:28:44 +02:00
Doc update
This commit is contained in:
@@ -1,19 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="writer-html4" lang="en" >
|
||||
<html class="writer-html5" lang="en" >
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>2. Hello World! — iTop UI 3.0.0 documentation</title><link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<title>2. Hello World! — iTop UI 3.0.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/css/ui-doc.css" type="text/css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../../_static/js/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
<script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
|
||||
<script type="text/javascript" src="../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="../../_static/language_data.js"></script>
|
||||
|
||||
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<script src="../../_static/js/theme.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
@@ -26,7 +28,8 @@
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
<a href="../../index.html" class="icon icon-home"> iTop UI<img src="../../_static/itop-logo.png" class="logo" alt="Logo"/>
|
||||
<a href="../../index.html" class="icon icon-home"> iTop UI
|
||||
<img src="../../_static/itop-logo.png" class="logo" alt="Logo"/>
|
||||
</a>
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
|
||||
@@ -36,7 +39,7 @@
|
||||
</form>
|
||||
</div>
|
||||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||
<p class="caption"><span class="caption-text">Twig Base:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Twig Base:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../TwigBase/TwigBase.html">Twig Base Presentation</a></li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="../TwigBaseTuto.html">Twig Base Tutorial</a><ul class="current">
|
||||
@@ -53,7 +56,7 @@
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../TwigBaseReference/TwigBaseReference.html">Twig Base Reference</a></li>
|
||||
</ul>
|
||||
<p class="caption"><span class="caption-text">Tags reference:</span></p>
|
||||
<p class="caption" role="heading"><span class="caption-text">Tags reference:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../generated/Component/Component.html">UI Components</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../generated/Layout/Layout.html">UI Layouts</a></li>
|
||||
@@ -84,99 +87,74 @@
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="hello-world">
|
||||
<span id="step2"></span><h1>2. Hello World!<a class="headerlink" href="#hello-world" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="the-controller">
|
||||
<h2>The controller<a class="headerlink" href="#the-controller" title="Permalink to this headline">¶</a></h2>
|
||||
<section id="hello-world">
|
||||
<span id="step2"></span><h1>2. Hello World!<a class="headerlink" href="#hello-world" title="Permalink to this headline"></a></h1>
|
||||
<section id="the-controller">
|
||||
<h2>The controller<a class="headerlink" href="#the-controller" title="Permalink to this headline"></a></h2>
|
||||
<p>Create a controller into <code class="docutils literal notranslate"><span class="pre">my-module/src/Controller</span></code>, let’s call it <code class="docutils literal notranslate"><span class="pre">MyModuleController</span></code> extending <code class="docutils literal notranslate"><span class="pre">Combodo\iTop\Application\TwigBase\Controller\Controller</span></code></p>
|
||||
<div class="literal-block-wrapper docutils container" id="id1">
|
||||
<div class="code-block-caption"><span class="caption-text">src/Controller/MyModuleController.php</span><a class="headerlink" href="#id1" title="Permalink to this code">¶</a></div>
|
||||
<div class="highlight-php notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp"><?php</span>
|
||||
|
||||
<span class="k">namespace</span> <span class="nx">MyCompany\iTop\MyModule\Controller</span><span class="p">;</span>
|
||||
<span class="k">use</span> <span class="nx">Combodo\iTop\Application\TwigBase\Controller\Controller</span><span class="p">;</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">MyModuleController</span> <span class="k">extends</span> <span class="nx">Controller</span>
|
||||
<span class="p">{</span>
|
||||
<span class="p">}</span>
|
||||
<div class="code-block-caption"><span class="caption-text">src/Controller/MyModuleController.php</span><a class="headerlink" href="#id1" title="Permalink to this code"></a></div>
|
||||
<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="o"><?</span><span class="nx">php</span>
|
||||
<span class="linenos">2</span>
|
||||
<span class="linenos">3</span><span class="k">namespace</span> <span class="nx">MyCompany\iTop\MyModule\Controller</span><span class="p">;</span>
|
||||
<span class="linenos">4</span><span class="k">use</span> <span class="nx">Combodo\iTop\Application\TwigBase\Controller\Controller</span><span class="p">;</span>
|
||||
<span class="linenos">5</span>
|
||||
<span class="linenos">6</span><span class="k">class</span> <span class="nc">MyModuleController</span> <span class="k">extends</span> <span class="nx">Controller</span>
|
||||
<span class="linenos">7</span><span class="p">{</span>
|
||||
<span class="linenos">8</span><span class="p">}</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Let’s add a <em>Hello World</em> operation</p>
|
||||
<div class="literal-block-wrapper docutils container" id="id2">
|
||||
<div class="code-block-caption"><span class="caption-text">src/Controller/MyModuleController.php</span><a class="headerlink" href="#id2" title="Permalink to this code">¶</a></div>
|
||||
<div class="highlight-php notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp"><?php</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">MyModuleController</span> <span class="k">extends</span> <span class="nx">Controller</span>
|
||||
<span class="p">{</span>
|
||||
<span class="k">public</span> <span class="k">function</span> <span class="nf">OperationHelloWorld</span><span class="p">()</span>
|
||||
<span class="p">{</span>
|
||||
<span class="nv">$this</span><span class="o">-></span><span class="na">DisplayPage</span><span class="p">();</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<div class="code-block-caption"><span class="caption-text">src/Controller/MyModuleController.php</span><a class="headerlink" href="#id2" title="Permalink to this code"></a></div>
|
||||
<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="o"><?</span><span class="nx">php</span>
|
||||
<span class="linenos">2</span>
|
||||
<span class="linenos">3</span><span class="k">class</span> <span class="nc">MyModuleController</span> <span class="k">extends</span> <span class="nx">Controller</span>
|
||||
<span class="linenos">4</span><span class="p">{</span>
|
||||
<span class="linenos">5</span> <span class="k">public</span> <span class="k">function</span> <span class="nf">OperationHelloWorld</span><span class="p">()</span>
|
||||
<span class="linenos">6</span> <span class="p">{</span>
|
||||
<span class="linenos">7</span> <span class="nv">$this</span><span class="o">-></span><span class="na">DisplayPage</span><span class="p">();</span>
|
||||
<span class="linenos">8</span> <span class="p">}</span>
|
||||
<span class="linenos">9</span><span class="p">}</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
</div>
|
||||
<p>This will just display the Twig template corresponding to this operation.
|
||||
Here the operation is <strong>HelloWorld</strong> without space.
|
||||
The name of the method is built from the operation name by adding <em>Operation</em> at the beginning: <code class="docutils literal notranslate"><span class="pre">OperationHelloWorld</span></code>.</p>
|
||||
<p>Calling the method <code class="docutils literal notranslate"><span class="pre">DisplayPage()</span></code> will render the template named after the operation: <code class="docutils literal notranslate"><span class="pre">HelloWorld.html.twig</span></code> it will be located in the folder <code class="docutils literal notranslate"><span class="pre">my-module/templates</span></code>.</p>
|
||||
</div>
|
||||
<div class="section" id="the-template">
|
||||
<h2>The template<a class="headerlink" href="#the-template" title="Permalink to this headline">¶</a></h2>
|
||||
</section>
|
||||
<section id="the-template">
|
||||
<h2>The template<a class="headerlink" href="#the-template" title="Permalink to this headline"></a></h2>
|
||||
<p>Let’s create the template <code class="docutils literal notranslate"><span class="pre">my-module/templates/HelloWorld.html.twig</span></code> with a nice title.</p>
|
||||
<div class="literal-block-wrapper docutils container" id="id3">
|
||||
<div class="code-block-caption"><span class="caption-text">templates/HelloWorld.html.twig</span><a class="headerlink" href="#id3" title="Permalink to this code">¶</a></div>
|
||||
<div class="highlight-twig notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">UITitle</span> <span class="p">F</span><span class="nv">orPage</span> <span class="o">{</span><span class="nv">sTitle</span><span class="s1">:'Hello World!'</span><span class="o">}</span> <span class="cp">%}{%</span> <span class="k">EndUITitle</span> <span class="cp">%}</span><span class="x"></span>
|
||||
<div class="code-block-caption"><span class="caption-text">templates/HelloWorld.html.twig</span><a class="headerlink" href="#id3" title="Permalink to this code"></a></div>
|
||||
<div class="highlight-twig notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="cp">{%</span> <span class="k">UITitle</span> <span class="p">F</span><span class="nv">orPage</span> <span class="o">{</span><span class="nv">sTitle</span><span class="s1">:'Hello World!'</span><span class="o">}</span> <span class="cp">%}{%</span> <span class="k">EndUITitle</span> <span class="cp">%}</span><span class="x"></span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Twig syntax can be found <a class="reference external" href="https://twig.symfony.com/doc/3.x/">Here</a>.</p>
|
||||
<p>For more information on specific iTop Twig tags you can check <a class="reference internal" href="../../generated/Component/Component.html#components"><span class="std std-ref">UI Components</span></a> and <a class="reference internal" href="../../generated/Layout/Layout.html#layouts"><span class="std std-ref">UI Layouts</span></a></p>
|
||||
</div>
|
||||
<div class="section" id="the-end-point">
|
||||
<h2>The end point<a class="headerlink" href="#the-end-point" title="Permalink to this headline">¶</a></h2>
|
||||
</section>
|
||||
<section id="the-end-point">
|
||||
<h2>The end point<a class="headerlink" href="#the-end-point" title="Permalink to this headline"></a></h2>
|
||||
<p>Then create landing page for your module <code class="docutils literal notranslate"><span class="pre">my-module/index.php</span></code></p>
|
||||
<div class="literal-block-wrapper docutils container" id="id4">
|
||||
<div class="code-block-caption"><span class="caption-text">index.php</span><a class="headerlink" href="#id4" title="Permalink to this code">¶</a></div>
|
||||
<div class="highlight-php notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="cp"><?php</span>
|
||||
|
||||
<span class="k">namespace</span> <span class="nx">MyCompany\iTop\SystemInformation</span><span class="p">;</span>
|
||||
|
||||
<span class="k">use</span> <span class="nx">MyCompany\iTop\MyModule\Controller\MyModuleController</span><span class="p">;</span>
|
||||
|
||||
<span class="k">require_once</span><span class="p">(</span><span class="nx">APPROOT</span><span class="o">.</span><span class="s1">'application/startup.inc.php'</span><span class="p">);</span>
|
||||
|
||||
<span class="nv">$oUpdateController</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">MyModuleController</span><span class="p">(</span><span class="nx">MODULESROOT</span><span class="o">.</span><span class="s1">'my-module/templates'</span><span class="p">,</span> <span class="s1">'my-module'</span><span class="p">);</span>
|
||||
<span class="nv">$oUpdateController</span><span class="o">-></span><span class="na">SetDefaultOperation</span><span class="p">(</span><span class="s1">'HelloWorld'</span><span class="p">);</span>
|
||||
<span class="nv">$oUpdateController</span><span class="o">-></span><span class="na">HandleOperation</span><span class="p">();</span>
|
||||
<div class="code-block-caption"><span class="caption-text">index.php</span><a class="headerlink" href="#id4" title="Permalink to this code"></a></div>
|
||||
<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="o"><?</span><span class="nx">php</span>
|
||||
<span class="linenos"> 2</span>
|
||||
<span class="linenos"> 3</span><span class="k">namespace</span> <span class="nx">MyCompany\iTop\SystemInformation</span><span class="p">;</span>
|
||||
<span class="linenos"> 4</span>
|
||||
<span class="linenos"> 5</span><span class="k">use</span> <span class="nx">MyCompany\iTop\MyModule\Controller\MyModuleController</span><span class="p">;</span>
|
||||
<span class="linenos"> 6</span>
|
||||
<span class="linenos"> 7</span><span class="k">require_once</span><span class="p">(</span><span class="nx">APPROOT</span><span class="o">.</span><span class="s1">'application/startup.inc.php'</span><span class="p">);</span>
|
||||
<span class="linenos"> 8</span>
|
||||
<span class="linenos"> 9</span><span class="nv">$oUpdateController</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">MyModuleController</span><span class="p">(</span><span class="nx">MODULESROOT</span><span class="o">.</span><span class="s1">'my-module/templates'</span><span class="p">,</span> <span class="s1">'my-module'</span><span class="p">);</span>
|
||||
<span class="linenos">10</span><span class="nv">$oUpdateController</span><span class="o">-></span><span class="na">SetDefaultOperation</span><span class="p">(</span><span class="s1">'HelloWorld'</span><span class="p">);</span>
|
||||
<span class="linenos">11</span><span class="nv">$oUpdateController</span><span class="o">-></span><span class="na">HandleOperation</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Create an instance of the controller indicating the templates path and the module name.
|
||||
The default operation is set to the operation we want when entering the module.
|
||||
@@ -187,8 +165,8 @@ The method <code class="docutils literal notranslate"><span class="pre">HandleOp
|
||||
<p>For more comfort during the development of your module, you can <a class="reference external" href="https://www.itophub.io/wiki/page?id=latest%3Acustomization%3Adatamodel#installing_the_toolkit">install the toolkit</a> and update your iTop with symlinks.</p>
|
||||
<p>if you go to your module page <code class="docutils literal notranslate"><span class="pre">https://localhost/itop/pages/exec.php?exec_module=my-module&exec_page=index.php</span></code> you should see:</p>
|
||||
<img alt="../../_images/Step2.png" src="../../_images/Step2.png" />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user