Skip to content

Commit 2bf5978

Browse files
committed
closes #1
1 parent 79c812a commit 2bf5978

File tree

4 files changed

+92
-33
lines changed

4 files changed

+92
-33
lines changed

code/FormGenerator.class.php

+8-2
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ public static function generateForm($settings)
248248
$resources = Resources::getResources($template_set_id);
249249
$resource_placeholders = array();
250250

251-
// TODO to prevent caching in "real" browsers
251+
// simple cache prevention
252252
$now = date("U");
253253

254254
// used when editing in the Form Builder. Placeholders info needs to be passed to the css.php generation file
@@ -261,7 +261,13 @@ public static function generateForm($settings)
261261
foreach ($resources as $resource_info) {
262262
$resource_id = $resource_info["resource_id"];
263263
$placeholder = $resource_info["placeholder"];
264-
$link = "<link type=\"text/css\" rel=\"stylesheet\" href=\"$root_url/modules/form_builder/form_resources/css.php?resource_id=$resource_id&nocache=$now{$query_str}\">";
264+
$resource_type = $resource_info["resource_type"];
265+
266+
if ($resource_type == "css") {
267+
$link = "<link type=\"text/css\" rel=\"stylesheet\" href=\"$root_url/modules/form_builder/form_resources/css.php?resource_id=$resource_id&nocache=$now{$query_str}\">";
268+
} else {
269+
$link = "<script src=\"$root_url/modules/form_builder/form_resources/js.php?resource_id=$resource_id&nocache=$now{$query_str}\"></script>";
270+
}
265271
$resource_placeholders[$placeholder] = $link;
266272
}
267273
$smarty->assign("R", $resource_placeholders);

form_resources/builder_css.php

-31
This file was deleted.

form_resources/index.html

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<html><body></body></html>

form_resources/js.php

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<?php
2+
3+
/**
4+
* This is a version of the css.php that's designed for the form builder.
5+
*
6+
* TODO THIS FILE IS A MESS. THINK IT THROUGH AGAIN.
7+
*/
8+
9+
use FormTools\Core;
10+
use FormTools\DatabaseSessions;
11+
use FormTools\Modules;
12+
use FormTools\Modules\FormBuilder\Forms;
13+
use FormTools\Modules\FormBuilder\General;
14+
use FormTools\Modules\FormBuilder\Placeholders;
15+
use FormTools\Modules\FormBuilder\Resources;
16+
17+
require_once(realpath(__DIR__ . "/../../../global/library.php"));
18+
19+
Core::init(array("start_sessions" => false));
20+
Modules::includeModule("form_builder");
21+
22+
$resource_id = $_GET["resource_id"];
23+
$source = (isset($_GET["source"]) && $_GET["source"] == "sessions") ? "sessions" : "database";
24+
25+
$resource_info = Resources::getResource($resource_id);
26+
$set_id = $resource_info["template_set_id"];
27+
$css = $resource_info["content"];
28+
29+
$placeholders = Placeholders::getPlaceholders($set_id);
30+
$placeholder_hash = array();
31+
foreach ($placeholders as $placeholder_info) {
32+
$placeholder_hash[$placeholder_info["placeholder_id"]] = $placeholder_info["placeholder"];
33+
}
34+
35+
$config = array();
36+
$smarty = General::createNewSmartyInstance();
37+
38+
$P = array();
39+
if ($source == "sessions") {
40+
if (Core::getSessionType() == "database") {
41+
$sess = new DatabaseSessions(Core::$db, Core::getSessionSavePath());
42+
}
43+
if (!empty($g_session_save_path)) {
44+
session_save_path($g_session_save_path);
45+
}
46+
47+
session_start();
48+
header("Cache-control: private");
49+
header("Content-Type: text/html; charset=utf-8");
50+
51+
$placeholder_id_to_values = $_SESSION["ft"]["form_builder"]["placeholders"];
52+
53+
while (list($placeholder_id, $value) = each($placeholder_id_to_values)) {
54+
if (!isset($placeholder_hash[$placeholder_id])) {
55+
continue;
56+
}
57+
$placeholder = $placeholder_hash[$placeholder_id];
58+
59+
// TODO multi-select + checkboxes...
60+
$P[$placeholder] = $value;
61+
}
62+
} else {
63+
$config = Forms::getFormConfiguration($_GET["published_form_id"]);
64+
foreach ($config["placeholders"] as $placeholder_info) {
65+
$curr_placeholder_id = $placeholder_info["placeholder_id"];
66+
$val = $placeholder_info["placeholder_value"];
67+
68+
if (!isset($placeholder_hash[$curr_placeholder_id])) {
69+
continue;
70+
}
71+
72+
$placeholder = $placeholder_hash[$curr_placeholder_id];
73+
$P[$placeholder] = $val;
74+
}
75+
}
76+
77+
$smarty->assign("P", $P);
78+
$smarty->assign("eval_str", $css);
79+
80+
header("Content-Type: text/javascript");
81+
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
82+
83+
echo $smarty->fetch("../../modules/form_builder/smarty_plugins/eval.tpl");

0 commit comments

Comments
 (0)