From: <ar...@us...> - 2013-05-28 13:29:19
|
Revision: 46066 http://sourceforge.net/p/tikiwiki/code/46066 Author: arildb Date: 2013-05-28 13:29:16 +0000 (Tue, 28 May 2013) Log Message: ----------- [bp/46043-46046][FIX] Load content templates when "templates" ckeditor toolbar button is pressed. Modified Paths: -------------- branches/11.x/lib/ckeditor_tiki/tikitemplates.js branches/11.x/lib/ckeditor_tiki/wysiwyglib.php branches/11.x/lib/servicelib.php Added Paths: ----------- branches/11.x/lib/core/Services/ContentTemplate/ branches/11.x/lib/core/Services/ContentTemplate/Controller.php branches/11.x/lib/core/Services/ContentTemplate/index.php Modified: branches/11.x/lib/ckeditor_tiki/tikitemplates.js =================================================================== --- branches/11.x/lib/ckeditor_tiki/tikitemplates.js 2013-05-28 12:42:21 UTC (rev 46065) +++ branches/11.x/lib/ckeditor_tiki/tikitemplates.js 2013-05-28 13:29:16 UTC (rev 46066) @@ -5,7 +5,55 @@ * All Rights Reserved. See copyright.txt for details and a complete list of authors. * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. * - * Ckeditor templates definition for Tiki 6 - * - * TODO: Needs tying in to the content templates somehow - placeholder here for now... - */ \ No newline at end of file + * Ckeditor templates definition for Tiki + */ + + +// Register a template definition set named "default". +CKEDITOR.addTemplates('default', +{ + // Not used. The name of the subfolder that contains the preview images of the templates. + // imagesPath: '', // CKEDITOR.getUrl(''), + + // Template definitions. + templates: getContentTemplates() +}) + +function getContentTemplates() { + + // Do a synchronous call, to be able to fill the listbox. + // Can lockup the GUI a bit. Especially if the are many, large content templates defined. + // Updating the element "on success" would be better, but I am not sure how at the moment...Arild + var result = $.ajax({ + type: 'GET', + url: 'tiki-ajax_services.php?', + dataType: 'json', + data: { + controller: 'contenttemplate', + action: 'list' + }, + async: false, // Synchronous call + success: function(data) { + + var content = data["data"]; + var cant = data["cant"]; + + result = []; + for (var i = 0; i < cant; i++) { + result.push( + [{ + title: content[i]['title'], + html: content[i]['html'], + }]); + } + return result; + } + }); + + if(result.status == 200) { + var ret = $.parseJSON(result.responseText); + return ret['data']; + } else { + return []; + } +} Modified: branches/11.x/lib/ckeditor_tiki/wysiwyglib.php =================================================================== --- branches/11.x/lib/ckeditor_tiki/wysiwyglib.php 2013-05-28 12:42:21 UTC (rev 46065) +++ branches/11.x/lib/ckeditor_tiki/wysiwyglib.php 2013-05-28 13:29:16 UTC (rev 46066) @@ -92,7 +92,7 @@ font_names: "' . trim($prefs['wysiwyg_fonts']) . '", format_tags: "' . $ckeformattags . '", stylesSet: "tikistyles:' . $tikiroot . 'lib/ckeditor_tiki/tikistyles.js", - templates_files: "' . $tikiroot . 'lib/ckeditor_tiki/tikitemplates.js", + templates_files: ["' . $tikiroot . 'lib/ckeditor_tiki/tikitemplates.js"], contentsCss: ["' . $ckstyle . '"], skin: "' . ($prefs['wysiwyg_toolbar_skin'] != 'default' ? $prefs['wysiwyg_toolbar_skin'] : 'moono') . '", defaultLanguage: "' . $prefs['language'] . '", Added: branches/11.x/lib/core/Services/ContentTemplate/Controller.php =================================================================== --- branches/11.x/lib/core/Services/ContentTemplate/Controller.php (rev 0) +++ branches/11.x/lib/core/Services/ContentTemplate/Controller.php 2013-05-28 13:29:16 UTC (rev 46066) @@ -0,0 +1,61 @@ +<?php +// (c) Copyright 2002-2013 by authors of the Tiki Wiki CMS Groupware Project +// +// All Rights Reserved. See copyright.txt for details and a complete list of authors. +// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. +// $Id$ + +class Services_ContentTemplate_Controller +{ + function setUp() + { + global $prefs; + + if ($prefs['feature_wiki_templates'] != 'y') { + throw new Services_Exception_Disabled('feature_wiki_templates'); + } + } + + function action_list($input) + { + // Validate access + $access = TikiLib::lib('access'); + $access->check_permission('tiki_p_use_content_templates'); + + // Load the templates + require_once ('lib/templates/templateslib.php'); + $templatesLib = new TemplatesLib(); + + $section = 'wiki'; + $offset = 0; + $maxRecords = -1; + $sort_mode = 'name_asc'; + $find = null; + + $contentTmpl = $templatesLib->list_templates($section, $offset, $maxRecords, $sort_mode, $find); + + // Build the result + $result = array(); + $name = ""; + $content = ""; + foreach ($contentTmpl['data'] as $val) { + if (count($contentTmpl) > 0) { + $templateId = $val['templateId']; + $templateData = $templatesLib->get_template($templateId); + + $name = $templateData['name']; + if (isset($templateData['content'])) { + $content = $templateData['content']; + } + } + $result[] = array('title' => $name, 'html'=> $content); + } + + // Done + return array( + 'data' => $result, + 'cant' => count($result), + ); + } +} + Added: branches/11.x/lib/core/Services/ContentTemplate/index.php =================================================================== --- branches/11.x/lib/core/Services/ContentTemplate/index.php (rev 0) +++ branches/11.x/lib/core/Services/ContentTemplate/index.php 2013-05-28 13:29:16 UTC (rev 46066) @@ -0,0 +1,10 @@ +<?php +// (c) Copyright 2002-2013 by authors of the Tiki Wiki CMS Groupware Project +// +// All Rights Reserved. See copyright.txt for details and a complete list of authors. +// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. +// $Id$ + +// This redirects to the sites root to prevent directory browsing +header("location: ../../../../index.php"); +die; Modified: branches/11.x/lib/servicelib.php =================================================================== --- branches/11.x/lib/servicelib.php 2013-05-28 12:42:21 UTC (rev 46065) +++ branches/11.x/lib/servicelib.php 2013-05-28 13:29:16 UTC (rev 46066) @@ -64,6 +64,7 @@ 'report' => 'Services_Report_Controller', 'tracker_calendar' => 'Services_Tracker_CalendarController', 'search_customsearch' => 'Services_Search_CustomSearchController', + 'contenttemplate'=> 'Services_ContentTemplate_Controller', 'tracker' => 'Services_Tracker_Controller', 'tracker_sync' => 'Services_Tracker_SyncController', 'tracker_todo' => 'Services_Tracker_TodoController', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |