-
Notifications
You must be signed in to change notification settings - Fork 0
/
bw_block_31.inc
231 lines (178 loc) · 6.14 KB
/
bw_block_31.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<?php
/* bw_block_31.inc - functions for creating blocks with Artisteer version 3.1 level
Current limitations:
- code does not support framed=n. eartblock function would have to be able to recognise whether or not framed was used in the previous artblock
we would have to maintain a stack of the framed parameters to support nested blocks
... but first we need to determine whether or not we can handle each of the block styles.
- level parameter does not default to the Artisteer options for block heading levels.
Notes: The div structure for Artisteer 3.1 blocks is much simpler than it was.
*/
/**
* Syntax [bw_block class="classes" title="title text" framed="y/n,t/f,1/0"]
* Future use parameters are
* prefix="art-"
* level="h3" - heading level for the block title
*/
function bw_block_31( $atts ) {
bw_trace( $atts, __FUNCTION__, __LINE__, __FILE__, "atts" );
extract( shortcode_atts( array(
'prefix' => 'art-',
'level' => 'h3',
'title' => NULL,
'framed' => true,
'class' => NULL,
), $atts ) );
/* We can't pass the prefix or heading level yet */
/* the block is enclosed in a div which can be used to control the width and depth
We save the div_class just in case it's needed in the bw_eblock processing
Actually, this is a bit daft. Since it is possible to nest blocks within blocks
the saved value will be that of the most recently nested blocks. So if we wanted to be able to do something with
it we would need to manage a stack.
*/
$framed = bw_validate_torf( $framed );
global $div_class;
$div_class = $class;
sdiv( $class );
sartblock_31( $title, $framed );
return( bw_ret());
}
/**
* Syntax for [bw_eblock]
* There are no parameters. We use this shortcode to end a block
* Using this technique means we can nest blocks within blocks.
*/
function bw_eblock_31( $atts ) {
eartblock_31();
return( bw_ret());
}
/**
* Create a block header if the title text is specified
* Notes: link and icon parameters not yet supported.
*/
function artblockheader_31( $title=NULL, $link=NULL, $icon=NULL ) {
if ( $title ) {
sdiv( "art-bar art-blockheader");
h3( $title, "t" );
ediv();
}
}
/**
* draw the frame around the block header
*/
function artblockframe_31() {
sdiv( "art-box-body art-block-body" );
}
/**
* draw the frame around the block content
*/
function artblockcontentframe_31() {
sdiv( "art-box art-blockcontent" );
}
/**
* start an Artisteer style block
<div class="art-box art-block widget widget_links" id="linkcat-2">
<div class="art-box-body art-block-body">
<div class="art-bar art-blockheader">
<h3 class="t">Blogroll</h3>
</div>
<div class="art-box art-blockcontent">
<div class="art-box-body art-blockcontent-body">
*/
function sartblock_31( $title=NULL, $framed=TRUE ) {
sdiv( "art-box art-block widget" );
//if ($framed )
{
artblockframe_31();
}
artblockheader_31( $title );
//if ( $framed )
{
artblockcontentframe_31();
}
sdiv( "art-box-body art-blockcontent-body ");
}
/**
* end an Artisteer style block
* Note: Not sure if the cleared blocks are actually needed
*/
function eartblock_31( $contentFunc = NULL, $framed=TRUE ) {
//if ( !is_null( $contentFunc ))
// $contentFunc();
//if ( $framed )
sediv( "cleared" );
ediv(); // art-box-body art-blockcontent-body
ediv(); // art-box art-blockcontent
sediv( "cleared" );
ediv(); // art-box-body art-block-body
ediv(); // art-box art-block
global $div_class;
sediv("cleared");
ediv( $div_class );
}
/* Examples extracted from an actual page.
<div class="art-box art-block widget widget_links" id="linkcat-2">
<div class="art-box-body art-block-body">
<div class="art-bar art-blockheader">
<h3 class="t">Blogroll</h3>
</div>
<div class="art-box art-blockcontent">
<div class="art-box-body art-blockcontent-body">
// content goes here
<div class="cleared"></div>
</div>
</div>
<div class="cleared"></div>
</div>
</div>
<div class="art-box art-block widget widget_text" id="text-17">
<div class="art-box-body art-block-body">
<div class="art-bar art-blockheader">
<h3 class="t">a block</h3>
</div>
<div class="art-box art-blockcontent">
<div class="art-box-body art-blockcontent-body">
// <div class="textwidget">this is the content of a block in the lhs</div>
<div class="cleared"></div>
</div>
</div>
<div class="cleared"></div>
</div>
</div>
<div class="art-box art-block widget widget_text" id="text-32">
<div class="art-box-body art-block-body">
<div class="art-bar art-blockheader">
<h3 class="t">a block</h3>
</div>
<div class="art-box art-blockcontent">
<div class="art-box-body art-blockcontent-body">
<div class="textwidget">this is the content of a block</div>
<div class="cleared"></div>
</div>
</div>
<div class="cleared"></div>
</div>
</div>
<div class="cleared"></div>
</div>
</div>
<div>
<div class="art-box art-block">
<div class="art-box-body art-block-body">
<div class="art-bar art-blockheader">
<h3 class="t">titled</h3>
</div>
<div class="art-box art-blockcontent">
<div class="art-box-body art-blockcontent-body ">
a titled block
<div class="cleared"></div>
</div>
</div>
<div class="cleared"></div>
</div>
</div>
</div>
<div class="cleared"> </div>
<br />
<div>
<div class="art-box art-block"><div class="art-box-body art-block-body"><div class="art-box art-blockcontent"><div class="art-box-body art-blockcontent-body "> untitled block<div class="cleared"></div></div></div><div class="cleared"></div></div></div></div>
*/