settings.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. {include="header"}
  2. <!--
  3. @nom: settings
  4. @auteur: Idleman (idleman@idleman.fr)
  5. @description: Page de gestion de toutes les préférences/configurations administrateur
  6. -->
  7. {if="($configurationManager->get('articleDisplayAnonymous')=='1') || ($myUser!=false)"}
  8. <div id="main" class="wrapper clearfix settings">
  9. <div id="menuBar">
  10. <aside>
  11. <h3>{function="_t('FEED_OPTION')"}</h3>
  12. <ul>
  13. <li><a class="toggle" href="#manageBloc">{function="_t('FEED_MANAGING')"}</a></li>
  14. <li><a class="toggle" href="#synchronizeBloc">{function="_t('MANUAL_FEED_UPDATE')"}</a></li>
  15. <li><a class="toggle" href="#preferenceBloc">{function="_t('PREFERENCES')"}</a></li>
  16. <li><a class="toggle" href="#importBloc">{function="_t('IMPORT')"}</a></li>
  17. <li><a class="toggle" href="#exportBloc">{function="_t('EXPORT')"}</a></li>
  18. <li><a class="toggle" href="#bookBloc">{function="_t('BOOKMARKLET')"}</a></li>
  19. <li><a class="toggle" href="#pluginBloc">{function="_t('AVAILABLES_PLUGINS')"}</a></li>
  20. <li class="pointer" onclick="if(confirm('{function="_t('CONFIRM_TRASH_EVENTS')"}')){window.location='action.php?action=purge';}">{function="_t('TRASH_EVENTS')"}</li>
  21. </ul>
  22. <h3>{function="_t('PLUGINS_INSTALLED')"}</h3>
  23. <ul>
  24. {function="Plugin::callHook("setting_post_link", array(&$myUser))"}
  25. </ul>
  26. </aside>
  27. </div>
  28. <article>
  29. {if="$logs"}
  30. <section class="logs">
  31. <h2>{function="_t('LOGS')"}</h2>
  32. {loop="$logs"}
  33. <div>{$value}</div>
  34. {/loop}
  35. </section>
  36. {/if}
  37. <section class="manageBloc">
  38. <h2>{function="_t('FEED_MANAGING')"} :</h2>
  39. <form action="action.php?action=addFeed" method="POST">
  40. <section class="addBloc">
  41. <h3>{function="_t('ADD_FEED')"}</h3>
  42. <p>{function="_t('FEED_RSS_LINK')"} : <input type="text" name="newUrl" placeholder="http://monflux.com/rss"/>&nbsp;
  43. <select name="newUrlCategory">
  44. {loop="$folders"}
  45. <option {if="$value->getId()==1"}selected="selected"{/if} value="{$value->getId()}">{$value->getName()}</option>
  46. {/loop}
  47. </select>
  48. <button>{function="_t('ADD')"}</button></p>
  49. </section>
  50. </form>
  51. <section class="addBloc">
  52. <h3>{function="_t('ADD_FOLDER')"}</h3>
  53. <form method="POST" action="action.php?action=addFolder">
  54. {function="_t('NEW_FOLDER')"} <input type="text" name="newFolder"> <button>{function="_t('ADD')"}</button>
  55. </form>
  56. </section>
  57. <section class="addBloc">
  58. <h3>{function="_t('FEED_OPTION')"}</h3>
  59. <span>{function="_t('FEED_OPTION_ISVERBOSE')"}</span>
  60. {if="$optionFeedIsVerbose==0"}
  61. <input class="" onclick="toggleOptionFeedVerbose(this,1)" type="checkbox" checked>
  62. {else}
  63. <input class="" onclick="toggleOptionFeedVerbose(this,0)" type="checkbox">
  64. {/if}
  65. </section>
  66. <ul class="clear nochip">
  67. {$feedsForFolder=""}
  68. {loop="$folders"}
  69. {$feedsForFolder=$value->getFeeds()}
  70. <li>
  71. <h1 class="folder left" ><span>{$value->getName()}</span> ({function="count($feedsForFolder)"})
  72. <button onclick="renameFolder(this,{$value->getId()})">{function="_t('RENAME')"}</button>
  73. <button onclick="if(confirm('{function="_t('CONFIRM_DELETE_FOLDER')"}\n\n{$value->getName()}'))window.location='action.php?action=removeFolder&amp;id={$value->getId()}'">{function="_t('DELETE')"}</button>
  74. <div class="clear"></div>
  75. </h1>
  76. <div class="clear"></div>
  77. <ul class="feedsList">
  78. {if="count($feeds)!=0"}
  79. {loop="$feedsForFolder"}
  80. {$feedName=Functions::truncate($value2->getName(),40)}
  81. <li class="feedListItem{if="$value->getLastSyncInError()==1"} errorSync{/if}">
  82. <span class="feedTitle js-feedTitle"{if="$value->getLastSyncInError()==1"} title="{function="_t('SYNCHRONISATION_ERROR')"}"{/if}>
  83. <a{if="$value->getLastSyncInError()==1"} class="inError"{/if} href="index.php?action=selectedFeed&feed={$value2->getId();}" data-feed-id="{$value2->getId()}">{$feedName}</a><a href="{$value2->getUrl()}" class="underlink">{$value2->getUrl()}</a>
  84. </span>
  85. <div class="feedButtons">
  86. <button class="feedRename" onclick="renameFeed(this,{$value2->getId()})">{function="_t('RENAME')"}</button>
  87. <button class="feedDelete" onclick="if(confirm('{function="_t('CONFIRM_DELETE_FEED')"}\n\n'+getFeedName({$value2->getId()}))){window.location='action.php?action=removeFeed&id={$value2->getId()}';}">{function="_t('DELETE')"}</button>
  88. </div>
  89. <div class="feedAction">
  90. <select class="feedFolder" onchange="changeFeedFolder(this,{$value2->getId()});">
  91. {loop="$folders"}
  92. <option {if="$value2->getFolder()==$value3->getId()"}selected="selected"{/if} value="{$value3->getId()}">{$value3->getName()}</option>
  93. {/loop}
  94. </select>
  95. {if="$optionFeedIsVerbose==0"}
  96. {if="$value2->getIsverbose()==0"}
  97. <input class="feedVerbose" onclick="toggleFeedVerbose(this,{$value2->getIsverbose()},{$value2->getId()})" type="checkbox" title="{function="_t('HIDE_FEED_IS_VERBOSE')"}">
  98. {else}
  99. <input class="feedVerbose" onclick="toggleFeedVerbose(this,{$value2->getIsverbose()},{$value2->getId()})" type="checkbox" title="{function="_t('HIDE_FEED_IS_VERBOSE')"}" checked>
  100. {/if}
  101. {else}
  102. {if="$value2->getIsverbose()==0"}
  103. <input class="feedVerbose" style="display: none;" onclick="toggleFeedVerbose(this,{$value2->getIsverbose()},{$value2->getId()})" type="checkbox" title="{function="_t('HIDE_FEED_IS_VERBOSE')"}">
  104. {else}
  105. <input class="feedVerbose" style="display: none;" onclick="toggleFeedVerbose(this,{$value2->getIsverbose()},{$value2->getId()})" type="checkbox" title="{function="_t('HIDE_FEED_IS_VERBOSE')"}" checked>
  106. {/if}
  107. {/if}
  108. </div>
  109. </li>
  110. {/loop}
  111. {/if}
  112. </ul>
  113. </li>
  114. {/loop}
  115. </ul>
  116. </section>
  117. <section class="synchronizeBloc">
  118. <h2>{function="_t('FEED_SYNCHRONISATION')"} :</h2>
  119. <iframe class="importFrame" src="action.php?action=synchronizeForm" name="idFrameSynchro" id="idFrameSynchro" width="100%" height="300" ></iframe>
  120. </section>
  121. {if="(isset($myUser)) && ($myUser!=false)"}
  122. <section class="preferenceBloc">
  123. <h2>{function="_t('PREFERENCES')"} :</h2>
  124. <form method="POST" action="action.php?action=updateConfiguration">
  125. <section>
  126. <h3>{function="_t('GENERALITY')"}</h3>
  127. <p><label for="root">{function="_t('PROJECT_ROOT')"} :</label> <input type="text" id="root" name="root" value="{$configurationManager->get('root')}"></p>
  128. <h4>{function="_t('LET_SLASH_AT_END')"}</h4>
  129. <p>{function="_t('INSTALL_LANGUAGE')"} :
  130. <select name="ChgLanguage">
  131. {loop="$languageList"}
  132. {if="$value==$currentLanguage"}
  133. <option selected=selected value='{$value}'>{$value}</option>";
  134. {else}
  135. <option value='{$value}'>{$value}</option>";
  136. {/if}
  137. {/loop}
  138. </select></p>
  139. <p>{function="_t('THEMES')"} :
  140. <select name="ChgTheme">
  141. {loop="$themeList"}
  142. {if="$value==$currentTheme"}
  143. <option selected=selected value='{$value}'>{$value}</option>";
  144. {else}
  145. <option value='{$value}'>{$value}</option>";
  146. {/if}
  147. {/loop}
  148. </select></p>
  149. </section>
  150. <section>
  151. <h3>{function="_t('USER')"}</h3>
  152. <p><label for="login">{function="_t('LOGIN')"} :</label> <input type="text" id="login" name="login" value="{$myUser->getLogin()}"></p>
  153. <p><label for="password">{function="_t('PASSWORD')"} :</label> <input type="text" id="password" name="password" autocomplete="off" value="" placeholder="{function="_t('INSTALL_DISPLAY_CLEAR')"}"></p>
  154. <p>{function="_t('LET_EMPTY_IF_NO_PASS_CHANGE')"}<br/>
  155. {function="_t('HOWTO_RESET_PASSWORD')"}</p>
  156. <fieldset>
  157. <!-- <img id="qrCodeOtp" src="../../qrcode.php?qr&label={$serviceUrl}&user={$myUser->getLogin()}&key={$myUser->getOtpSecret()}&issuer={$serviceUrl}&algorithm=sha1&digits=8&period=30&_qrSize=4&_qrMargin=1" style='float:left;margin:0em 1em 1em 0em'/> -->
  158. <img id="qrCodeOtp" src="../../qrcode.php?qr&label={$myUser->getOtpSecret()}&user=DEBUG%20{$myUser->getLogin()}&key={$myUser->getOtpSecret()}&issuer={$serviceUrl}&algorithm=sha1&digits=8&period=30&_qrSize=4&_qrMargin=1" style='float:left;margin:0em 1em 1em 0em'/>
  159. <legend>{function="_t('OTP_SETTINGS')"}</legend>
  160. <input type="radio" {if="$otpEnabled"} checked="checked" {/if} value="1" id="otpEnabledYes" name="otpEnabled" /><label for="otpEnabledYes">{function="_t('YES')"}</label>
  161. <input type="radio" {if="!$otpEnabled"} checked="checked" {/if} value="0" id="otpEnabledNo" name="otpEnabled" /><label for="otpEnabledNo">{function="_t('NO')"}</label>
  162. <p>{function="_t('OTP_SETTINGS_DESC')"}{$myUser->getOtpKey()}.</p>
  163. <p><label for="otpSecret">{function="_t('OTP_SECRET')"} :</label> <input type="text" id="otpSecret" name="otpSecret" autocomplete="off" placeholder="{function="_t('OTP_DISABLED_EMPTY')"}" value="{$myUser->getOtpSecret()}">
  164. <i class="icon-random-otp" onclick="randomOtpSecret('#otpSecret')" style="cursor:pointer" title="Random OTP secret"></i>
  165. </p>
  166. </fieldset>
  167. </section>
  168. <section>
  169. <h3>{function="_t('SYNCHRONISATION')"}</h3>
  170. <p><input type="radio" {if="$synchronisationType=='auto'"} checked="checked" {/if} value="auto" id="synchronisationTypeComplete" name="synchronisationType"> <label for="synchronisationTypeComplete"><strong>
  171. {function="_t('AUTOMATIC_FULL')"} :</strong></label> {function="_t('AUTOMATIC_FULL_DESC')"}</p>
  172. <p><input type="radio" {if=" $synchronisationType=='graduate'"} checked="checked" {/if} value="graduate" id="synchronisationTypeGraduated" name="synchronisationType"> <label for="synchronisationTypeGraduated"><strong>{function="_t('AUTOMATIC_GRADUATE')"} :</strong></label> {function="_t('AUTOMATIC_GRADUATE_DESC')"}</p>
  173. {function="Plugin::callHook("setting_post_synchronisation_options", array($synchronisationType))"}
  174. <p><strong>{function="_t('SYNCHRONISATION_CODE')"} :</strong>
  175. {$synchronisationCode}
  176. </p>
  177. <p><strong>{function="_t('SYNCHRONISATION_OPTION')"}</strong>
  178. <fieldset>
  179. <legend>{function="_t('ENABLE_CACHE')"}</legend>
  180. <input type="radio" {if="$synchronisationEnableCache"} checked="checked" {/if} value="1" id="synchronisationEnableCacheYes" name="synchronisationEnableCache" /><label for="synchronisationEnableCacheYes">{function="_t('YES')"}</label>
  181. <input type="radio" {if="!$synchronisationEnableCache"} checked="checked" {/if} value="0" id="synchronisationEnableCacheNo" name="synchronisationEnableCache" /><label for="synchronisationEnableCacheNo">{function="_t('NO')"}</label>
  182. <p>{function="_t('ENABLE_CACHE_DESC')"}</p>
  183. </fieldset>
  184. <fieldset>
  185. <legend>{function="_t('FORCE_INTEGRATION')"}</legend>
  186. <input type="radio" {if="$synchronisationForceFeed"} checked="checked" {/if} value="1" id="synchronisationForceFeedYes" name="synchronisationForceFeed" /><label for="synchronisationForceFeedYes">{function="_t('YES')"}</label>
  187. <input type="radio" {if="!$synchronisationForceFeed"} checked="checked" {/if} value="0" id="synchronisationForceFeedNo" name="synchronisationForceFeed" /><label for="synchronisationForceFeedNo">{function="_t('NO')"}</label>
  188. <p>{function="_t('FORCE_INTEGRATION_DESC')"}</p>
  189. </fieldset>
  190. </p>
  191. </section>
  192. <section>
  193. {if="$myUser!=false"}
  194. <h3>{function="_t('PREFERENCES')"}</h3>
  195. <fieldset>
  196. <legend>{function="_t('ALLOW_ANONYMOUS_READ')"}</legend>
  197. <input type="radio" {if="$articleDisplayAnonymous=='1'"} checked="checked" {/if} value="1" id="articleDisplayAnonymousYes" name="articleDisplayAnonymous" /><label for="articleDisplayAnonymousYes">{function="_t('YES')"}</label>
  198. <input type="radio" {if="$articleDisplayAnonymous=='0'"} checked="checked" {/if} value="0" id="articleDisplayAnonymousNo" name="articleDisplayAnonymous" /><label for="articleDisplayAnonymousNo">{function="_t('NO')"}</label>
  199. <h4>{function="_t('ALLOW_ANONYMOUS_READ_DESC')"}</h4>
  200. </fieldset>
  201. <fieldset>
  202. <legend><label for="articlePerPages">{function="_t('EVENT_NUMBER_PER_PAGES')"}</label></legend>
  203. <input type="text" value="{$configurationManager->get('articlePerPages')}" id="articlePerPages" name="articlePerPages" size="4" />
  204. </fieldset>
  205. <fieldset>
  206. <legend>{function="_t('SORT_BY_RECENT_EVENT_HOME')"}</legend>
  207. <input type="radio" {if="$articleDisplayHomeSort"} checked="checked" {/if} value="1" id="articleDisplayHomeSortYes" name="articleDisplayHomeSort" /><label for="articleDisplayHomeSortYes">{function="_t('YES')"}</label>
  208. <input type="radio" {if="!$articleDisplayHomeSort"} checked="checked" {/if} value="0" id="articleDisplayHomeSortNo" name="articleDisplayHomeSort" /><label for="articleDisplayHomeSortNo">{function="_t('NO')"}</label>
  209. </fieldset>
  210. <fieldset>
  211. <legend>{function="_t('SORT_BY_RECENT_EVENT_FOLDER')"}</legend>
  212. <input type="radio" {if="$articleDisplayFolderSort"} checked="checked" {/if} value="1" id="articleDisplayFolderSortYes" name="articleDisplayFolderSort" /><label for="articleDisplayFolderSortYes">{function="_t('YES')"}</label>
  213. <input type="radio" {if="!$articleDisplayFolderSort"} checked="checked" {/if} value="0" id="articleDisplayFolderSorttNo" name="articleDisplayFolderSort" /><label for="articleDisplayFolderSortNo">{function="_t('NO')"}</label>
  214. </fieldset>
  215. <fieldset>
  216. <legend>{function="_t('SHOW_EVENT_LINK')"}</legend>
  217. <input type="radio" {if="$articleDisplayLink=='1'"} checked="checked" {/if}value="1" id="articleDisplayLinkYes" name="articleDisplayLink" /><label for="articleDisplayLinkYes">{function="_t('YES')"}</label>
  218. <input type="radio" {if="$articleDisplayLink=='0'"} checked="checked" {/if} value="0" id="articleDisplayLinkNo" name="articleDisplayLink" /><label for="articleDisplayLinkNo">{function="_t('NO')"}</label>
  219. </fieldset>
  220. <fieldset>
  221. <legend>{function="_t('SHOW_EVENT_DATE')"}</legend>
  222. <input type="radio" {if="$articleDisplayDate=='1'"} checked="checked" {/if} value="1" id="articleDisplayDateYes" name="articleDisplayDate" /><label for="articleDisplayDateYes">{function="_t('YES')"}</label>
  223. <input type="radio" {if="$articleDisplayDate=='0'"} checked="checked" {/if} value="0" id="articleDisplayDateNo" name="articleDisplayDate" /><label for="articleDisplayDateNo">{function="_t('NO')"}</label>
  224. </fieldset>
  225. <fieldset>
  226. <legend>{function="_t('SHOW_EVENT_AUTHOR')"}</legend>
  227. <input type="radio" {if="$articleDisplayAuthor=='1'"} checked="checked" {/if} value="1" id="articleDisplayAuthorYes" name="articleDisplayAuthor" /><label for="articleDisplayAuthorYes">{function="_t('YES')"}</label>
  228. <input type="radio" {if="$articleDisplayAuthor=='0'"} checked="checked" {/if} value="0" id="articleDisplayAuthorNo" name="articleDisplayAuthor" /><label for="articleDisplayAuthorNo">{function="_t('NO')"}</label>
  229. </fieldset>
  230. <fieldset>
  231. <legend>{function="_t('SHOW_EVENT_CONTENT')"}</legend>
  232. <input type="radio" {if="$articleDisplayMode=='title'"} checked="checked" {/if} value="title" id="articleDisplayModeTitle" name="articleDisplayMode" /><label for="articleDisplayModeTitle">{function="_t('TITLE')"}</label>
  233. <input type="radio" {if="$articleDisplayMode=='summary'"} checked="checked" {/if} value="summary" id="articleDisplayModeSummary" name="articleDisplayMode" /><label for="articleDisplayModeSummary">{function="_t('SUMMARY')"}</label>
  234. <input type="radio" {if="$articleDisplayMode=='content'"} checked="checked" {/if} value="content" id="articleDisplayModeContent" name="articleDisplayMode" /><label for="articleDisplayModeContent">{function="_t('CONTENT')"}</label>
  235. </fieldset>
  236. <fieldset>
  237. <legend>{function="_t('KEEP_LAST_X_EVENTS_FEED',array('<input type="text" value="'.$configurationManager->get('feedMaxEvents').'" name="feedMaxEvents" size="4" />'))"}</legend>
  238. <h4>{function="_t('KEEP_LAST_X_EVENTS_FEED_DESC')"}</h4>
  239. </fieldset>
  240. </section>
  241. <button name="installButton">{function="_t('SAVE')"}</button>
  242. </form>
  243. {else}
  244. <p>{function="_t('YOU_MUST_BE_CONNECTED_BOOKMARK')"}</p>
  245. {/if}
  246. </section>
  247. {/if}
  248. <section class="importBloc">
  249. <h2>{function="_t('IMPORT_FEED_OPML_FORMAT')"}</h2>
  250. <iframe class="importFrame" src="action.php?action=importForm" name="idFrame" id="idFrame" width="100%" height="300" ></iframe>
  251. </section>
  252. <section class="exportBloc">
  253. <form action="action.php?action=exportFeed" method="POST">
  254. <h2>{function="_t('EXPORT_FEED_OPML_FORMAT')"}</h2>
  255. <p>{function="_t('OPML_FILE')"} : <button name="exportButton">{function="_t('EXPORT')"}</button></p>
  256. </form>
  257. </section>
  258. <section class="bookBloc">
  259. <h2>{function="_t('USE_BOOKMARK')"} :</h2>
  260. {if="$myUser!=false"}
  261. <a class="button" href="javascript:document.location='{$configurationManager->get('root')}action.php?action=login&newUrl='+escape(document.location)+'&usr={function="$myUser->getToken()"}'">+ {function="_t('ADD_TO_LEED')"}</a>
  262. <p>{function="_t('USE_BOOKMARK_DESC')"}</p>
  263. {else}
  264. <p>{function="_t('YOU_MUST_BE_CONNECTED_BOOKMARK')"}</p>
  265. {/if}
  266. </section>
  267. <section class="pluginBloc">
  268. <h2>{function="_t('PLUGINS')"} :</h2>
  269. <p>{function="_t('CAN_DOWNLOAD_PLUGINS')"} : <a href="https://github.com/Leed-market/">Leed Market</a>.</p>
  270. {if="$myUser!=false"}
  271. <ul class="pluginMenu">
  272. <li class="selected" data-toggle-group="plugins" data-toggle-tab="installed">Plugins installés</li>
  273. <li data-toggle-group="plugins" data-toggle-tab="installation">{function="_t('PLUGINS_INSTALLATION')"}</li>
  274. <li data-toggle-group="plugins" data-toggle-tab="market">Market</li>
  275. <div class="clear"></div>
  276. </ul>
  277. <div class="plugin-tab" data-zone="installed" data-group="plugins" aria-hidden="false">
  278. <h3 class="plugin-title">{function="_t('AVAILABLE_PLUGIN_LIST')"} :</h3>
  279. <ul class="pluginList">
  280. {if="count($plugins)==0"}
  281. {function="_t('NO_INSTALLED_PLUGINS')"}
  282. {else}
  283. {loop="$plugins"}
  284. <li>
  285. <ul>
  286. <li><h4>{function="_t('NAME')"}: </h4>{$value->getName()}</li>
  287. {$authors=$value->getAuthor()}
  288. {$addresses=$value->getAddress()}
  289. {if="is_array($authors)"}
  290. {loop="authors"}
  291. {$address=$addresses[$key2]}
  292. <li><h4>{function="_t('AUTHOR')"}: </h4>{if="$address"}<a href="{if="strpos($address, '@')"}mailto:{/if}{$address}">{/if}{$value}{if="$address"}</a>{/if}</li>
  293. {/loop}
  294. {/if}
  295. <li><h4>{function="_t('LICENCE')"}: </h4>{$value->getLicence()}</li>
  296. <li><h4>{function="_t('VERSION')"}: </h4><code>{$value->getVersion()}</code></li>
  297. <li><h4>{function="_t('SITE')"}: </h4><a href="{$value->getLink()}">{$value->getLink()}</a></li>
  298. <li>{$value->getDescription()}</li>
  299. <li><a href="action.php?action=changePluginState&plugin={$value->getUid()}&state={$value->getState()}" class="button">{$value->getState()=="0"?_t('ENABLE'):_t('DISABLE')}</a></li>
  300. </ul>
  301. </li>
  302. {/loop}
  303. {/if}
  304. </ul>
  305. </div>
  306. <div class="plugin-tab" data-zone="installation" data-group="plugins" aria-hidden="true">
  307. <form action="action.php" method="get">
  308. <h3 class="plugin-title">{function="_t('PLUGINS_INSTALL_FROM_URL')"}</h3>
  309. <p>{function="_t('PLUGINS_INSTALL_FROM_URL_FILE_SHOULD_BE_ZIP')"}</p>
  310. <input type="text" name="zip" />
  311. <input type="hidden" name="action" value="installPlugin" />
  312. <button type="submit">{function="_t('PLUGINS_INSTALL')"}</button>
  313. </form>
  314. </div>
  315. <div class="plugin-tab" data-zone="market" data-group="plugins" aria-hidden="true">
  316. </div>
  317. {else}
  318. <p>{function="_t('YOU_MUST_BE_CONNECTED_PLUGIN')"}</p>
  319. {/if}
  320. </section>
  321. {function="Plugin::callHook("setting_post_section", array(&$myUser,&$feeds))"}
  322. </article>
  323. </div> <!-- #main -->
  324. {else}
  325. <div id="main" class="wrapper clearfix">
  326. <article>
  327. <h3>{function="_t('YOU_MUST_BE_CONNECTED_FEED')"}</h3>
  328. <p>{function="_t('IF_ADMIN_THEN_CONFIG')"}</p>
  329. </article>
  330. </div>
  331. {/if}
  332. {include="footer"}