User

Welcome, Guest. Please login or register.
Did you miss your activation email?


Login with username, password and session length

Select language:

Community



Donate

Donate for PortaMx !
Your donation is safe and helps support the issues and causes you care most about.

Stats

  • *Total Members: 4010
  • *Latest: kuki78

  • *Total Posts: 15656
  • *Total Topics: 2322
  • *Online Today: 23
  • *Most Online: 157
(27 Aug 09, 03:54:53)
  • *Users: 0
  • *Guests: 15
  • *Total: 15

Author Topic: What we have done..  (Read 4105 times)

0 Members and 1 Guest are viewing this topic.

Offline feline

  • CO PortaMx corp.
  • Administrator
  • *
  • Posts: 5224
  • Gender: Female
What we have done..
« on: 22 Feb 10, 22:44:57 »
In the last weeks we have hard worked on the next update release.
Here the long list what we have changed (#), added (+) and fixed (!) ... (I hope, I have nothing forgotten  ;D )

! cache trigger don't detect all actions
! custom css for blocks don't work
! a lot of ccs mistake removed
! dynamic visibility don't work correct
# singe page request now use the format index.php?spage=pagename
# the prefix char @ for singe page is now p:
# all show/hide custom action now with enhanced wildcards (? for 0 or 1 char, * for 0 or n chars)
# custom css don't longer overwrite the settings, so you can switch back without adjust the setting
# any change between custom css/default css show immediate after change
# many hard coded styles replaced with css classes
# block inner padding now can set for top/bottom, left/right or both (y,x or yx)
+ block inner padding can be overwrite in custom css
+ specially testing purposes, to help member on write php block.
     We added the function PortaMx_Printvar($vardata) they convert any data to a readable php code. You can put this function in a php block to test/check data they are read from SSI functions or the database. (see image FScap0104.png)
+ multi part / multi theme support for custom css
     in multi part/theme (.mpt) files you can define css as "parts" for each theme you use.
+ changes on mpt files are detected and the .mpt is recompiled to .css and cached
+ comments are removed from .mpt files for faster loading and less transfer
# the shout box BBC popup now use also the current theme/custom style
# many code parts optimized for faster speed
# php blocks expanded to special php block, now you can create a "init" code block and a "show" code block. For the init part you can open a second editor. All exist php code works without any change (see image FScap0107.png).
+ Popup for edit Titles for all exist languages, Title icons and Title align on each block in the overview screen (see image FScap0106.png)
# Move and Clone block now as Popup on each block in the overview screen
+ Support for Block in Block technology, wich can be create with the new special PHP block (see image FScap0103.png)
     The access and visibility for the inner blocks is inherit from the outer block
+ Pageindex for newposts, boardnews, multiple boardnews, RSS reader, see Fscap0110/0111

Additional note:
    This release is full compatible with SimpleSEF (we prefer this mod)

Fel
Many are stubborn in relation to the path, a few in relation to the target.

Offline BurakG

  • PortaMx Language
  • *
  • Posts: 221
  • Gender: Male
Re: What we have done..
« Reply #1 on: 22 Feb 10, 22:52:43 »
Looks great Fel, especially block in  block part. Looks like it will let us shape the portal as we like..

When is this to be released ?
Destiny. The design is clearly Ancient ..

http://www.mazdaclubtr.com
http://www.subaruclubtr.com

Offline feline

  • CO PortaMx corp.
  • Administrator
  • *
  • Posts: 5224
  • Gender: Female
Re: What we have done..
« Reply #2 on: 22 Feb 10, 23:08:51 »
When is this to be released ?
hmmm .. let me think .. when it's done?  ;D

Fel
Many are stubborn in relation to the path, a few in relation to the target.

Offline BurakG

  • PortaMx Language
  • *
  • Posts: 221
  • Gender: Male
Re: What we have done..
« Reply #3 on: 22 Feb 10, 23:12:29 »
Yeah, I should have guessed that :D
Destiny. The design is clearly Ancient ..

http://www.mazdaclubtr.com
http://www.subaruclubtr.com

Offline feline

  • CO PortaMx corp.
  • Administrator
  • *
  • Posts: 5224
  • Gender: Female
Re: What we have done..
« Reply #4 on: 23 Feb 10, 00:21:00 »
Here the code for a Block in Block with the special PHP block (code is developed in next release)

PHP block INIT PART
Code: [Select]
/*
* Samplecode Block in Block
* @author PortaMx - Portal Management Extension
* @author Copyright 2008-2010 by PortaMx - http://portamx.com
*
* PHP block INIT PART
*/

// globals we need here
global $context, $smcFunc;

// define the block ID's you will see
$this->php_vars = array(
'blocklist' => array(37,147,3,60), // block ID's in the show order
);

// define the block padding
$this->php_vars['padding'] = $context['PortaMx']['settings']['panels']['padding'] .'px;';
$this->php_vars['padhalf'] = ceil($context['PortaMx']['settings']['panels']['padding'] / 2) .'px;';

// init the object array
$this->php_vars['objects'] = null;

// now request the blocks
$request = $smcFunc['db_query']('', '
SELECT *  FROM {db_prefix}portamx_blocks
WHERE active = 1 AND id IN ({array_int:blocklist})',
array('blocklist' => $this->php_vars['blocklist'])
);

if($smcFunc['db_num_rows']($request) > 0)
{
while($row = $smcFunc['db_fetch_assoc']($request))
{
// check if the classfile loaded
$blocktype = 'pmxc_'. $row['blocktype'];
if(!class_exists($blocktype))
require_once($context['PMx_classdir'] . $row['blocktype'] .'.php');

// call the contrutor
$this->php_vars['objects'][$row['id']] = new $blocktype($row, null, $visible);

// Initiate the block if visible
if(!empty($visible))
$visible = $this->php_vars['objects'][$row['id']]->pmxc_InitContent();

// destroy object if invisible
if(empty($visible))
unset($this->php_vars['objects'][$row['id']]);
}
$smcFunc['db_free_result']($request);
}
/* End INIT PART */

PHP block SHOW PART
Code: [Select]
/*
* Samplecode Block in Block
* @author PortaMx - Portal Management Extension
* @author Copyright 2008-2010 by PortaMx - http://portamx.com
*
* PHP block SHOW PART
*/

// the block output "function"
$blockoutfunc = '
$objid = array_shift($this->php_vars[\'blocklist\']);
if(isset($this->php_vars[\'objects\'][$objid]))
$this->php_vars[\'objects\'][$objid]->pmxc_ShowBlock(0, \'\');
else
echo \'Block object \'. $objid .\' not exist.\';';

echo '
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr valign="top" height="5%">
<td valign="top">
<div style="width:175px; padding-right:'. $this->php_vars['padhalf'] .'">';

eval($blockoutfunc); // output the block

echo '
</div>
</td>
<td valign="top" width="90%" style="padding:0 '. $this->php_vars['padhalf'] .'">';

eval($blockoutfunc); // output the block

echo '
</td>
<td  valign="top" rowspan="2">
<div style="width:175px; padding-left:'. $this->php_vars['padhalf'] .'">';

eval($blockoutfunc); // output the block

echo '
</div>
</td>
</tr>
<tr valign="top">
<td valign="top" colspan="2" style="padding-top:'. $this->php_vars['padding'] .' padding-right:'. $this->php_vars['padhalf'] .'">';

eval($blockoutfunc); // output the block

echo '
</td>
</tr>
</table>';
/* End SHOW PART */

And finally here the PHP block code for the PortaMx_Printvar($vardata) function:
Code: [Select]
echo PortaMx_Printvar(ssi_whosOnline(''), 'ssi_whosOnline return data');

Fel
Many are stubborn in relation to the path, a few in relation to the target.

Offline Garry1953

  • Newbie
  • *
  • Posts: 33
    • Artists Online Australia Art Forum
Re: What we have done..
« Reply #5 on: 23 Feb 10, 12:14:24 »
I'm also looking forward to playing with the next release. :)

Offline codebirth

  • PortaMx Supporter
  • *
  • Posts: 263
  • Gender: Male
  • Dark Knight
    • My SMF 2.0 related site
Re: What we have done..
« Reply #6 on: 23 Feb 10, 12:15:53 »
Amazing!  :D

c o d e b i r t h
http://codebirth.com/smf

Offline neverhurry

  • Sr. Member
  • ****
  • Posts: 285
  • Gender: Male
  • PortaMX fan
Re: What we have done..
« Reply #7 on: 23 Feb 10, 16:30:59 »
Congratulations! I don't understand what is block in block, but it sounds very interesting, can not wait to play with it.   :D

Fel, those are great progress, thumbs up to you and your team. I have one question for next release: don't you think multiple boardnews and boardnews blocks are a little overlapped? I mean if you add a choice of how many topics for admin to choose inside multiple boardnews block, then it can practically replace, substitute the simple boardnews block. Last, i wish very much a pagination function to this awesome multiple boardnews block. Will you consider them? Anyway, you have been doing fantastically, that's why we are here, I think PortaMx has a great future.  O0 O0 O0
Sincerely Paul

Offline feline

  • CO PortaMx corp.
  • Administrator
  • *
  • Posts: 5224
  • Gender: Female
Re: What we have done..
« Reply #8 on: 23 Feb 10, 16:44:39 »
Last, i wish very much a pagination function to this awesome multiple boardnews block. Will you consider them?
Not on the next release .. we set this to a to do list...

Fel
Many are stubborn in relation to the path, a few in relation to the target.

Offline feline

  • CO PortaMx corp.
  • Administrator
  • *
  • Posts: 5224
  • Gender: Female
Re: What we have done..
« Reply #9 on: 23 Feb 10, 16:48:36 »
On more example for special PHP blocks ... Blocks in a tabbed (YUI) block  ;)

Code: [Select]
/*
* Samplecode Blocks in a YUI Block
* @author PortaMx - Portal Management Extension
* @author Copyright 2008-2010 by PortaMx - http://portamx.com
*
* PHP block SHOW PART
*/

// the block output "function"
$blockoutfunc = '
if(isset($this->php_vars[\'objects\'][$tabid]))
$this->php_vars[\'objects\'][$tabid]->pmxc_ShowBlock(0, \'\');
else
echo \'Block object \'. $tabid .\' not exist.\';';

// Output the container tabs
echo '
<div style="height:26px;">
<ul class="dropmenu">';

foreach($this->php_vars['blocklist'] as $tabid => $tabdata)
echo '
<li>
<a id="yuihref'. $tabid .'" nohref class="'. ($tabdata['act'] ? 'active ' : '') .'firstlevel" onclick="pmx_coice_yuitab('. $tabid .')">
<span id="yuispan'. $tabid .'" class="'. ($tabdata['act'] ? '' : 'last ') .'firstlevel">'. $tabdata['title'] .'</span>
</a>
</li>';

echo '
</ul>
</div>';

// Output the container content
foreach($this->php_vars['blocklist'] as $tabid => $tabdata)
{
echo '
<div id="yuitab'. $tabid .'" style="'. $this->php_vars['yui_height'] . (empty($tabdata['act']) ? ' display:none;' : '') .'">';

eval($blockoutfunc); // output the block

echo '
</div>';
}
/* End SHOW PART */

Code: [Select]
/*
* Samplecode Blocks in a YUI Block
* @author PortaMx - Portal Management Extension
* @author Copyright 2008-2010 by PortaMx - http://portamx.com
*
* PHP block INIT PART
*/

// globals we need here
global $context, $smcFunc;

// define the block ID's and Tabnames in the show order.
// set the 'act' to true for the default tab
$this->php_vars = array(
'blocklist' => array(
37 => array(
'title' => 'Donate',
'act' => true,
),
147 => array(
'title' => 'Shoutbox',
'act' => false,
),
3 => array(
'title' => 'Recent Post',
'act' => false,
),
60 => array(
'title' => 'Newsticker',
'act' => false,
)
)
);

// define the height type, hight, overflow of YUI block
// type: height, min-height, max-height
// overflow: hidden, auto
$this->php_vars['yui_height'] = 'max-height:400px; overflow:auto;';

// init the object array
$this->php_vars['objects'] = null;

// load the javasctipt code to header
$context['html_headers'] .= '
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
var yuitab_array = new Array('. implode(',', array_keys($this->php_vars['blocklist'])) .');
function pmx_coice_yuitab(tabID)
{
for(var i = 0; i < yuitab_array.length; i++)
{
document.getElementById("yuihref" + yuitab_array[i]).className = "firstlevel";
document.getElementById("yuispan" + yuitab_array[i]).className = "last firstlevel";
document.getElementById("yuitab" + yuitab_array[i]).style.display = "none";
}
document.getElementById("yuihref" + tabID).className = "active firstlevel";
document.getElementById("yuispan" + tabID).className = "firstlevel";
document.getElementById("yuitab" + tabID).style.display = "";
document.cookie = "pmx_yui_tabs=" + tabID + "; path=/;";
}
// ]]></script>';

// now request the blocks
$request = $smcFunc['db_query']('', '
SELECT *  FROM {db_prefix}portamx_blocks
WHERE active = 1 AND id IN ({array_int:blocklist})',
array('blocklist' => array_keys($this->php_vars['blocklist']))
);

if($smcFunc['db_num_rows']($request) > 0)
{
while($row = $smcFunc['db_fetch_assoc']($request))
{
// check if the classfile loaded
$blocktype = 'pmxc_'. $row['blocktype'];
if(!class_exists($blocktype))
require_once($context['PMx_classdir'] . $row['blocktype'] .'.php');

// call the contrutor
$this->php_vars['objects'][$row['id']] = new $blocktype($row, null, $visible);

// Initiate the block if visible
if(!empty($visible))
$visible = $this->php_vars['objects'][$row['id']]->pmxc_InitContent();

if(empty($visible))
unset($this->php_vars['objects'][$row['id']]);
}
$smcFunc['db_free_result']($request);
}

// get the yuitab cookie
if(isset($_COOKIE['pmx_yui_tabs']))
{
$curTab = intval($_COOKIE['pmx_yui_tabs']);
foreach(array_keys($this->php_vars['blocklist']) as $tabid)
$this->php_vars['blocklist'][$tabid]['act'] = ($tabid == $curTab);
}
/* End INIT PART */

See atached image ...

Fel
Many are stubborn in relation to the path, a few in relation to the target.

Offline neverhurry

  • Sr. Member
  • ****
  • Posts: 285
  • Gender: Male
  • PortaMX fan
Re: What we have done..
« Reply #10 on: 23 Feb 10, 16:50:50 »
WOW!!! That is something genius!  O0 O0 O0
Is there a demo site? When will it be release?

Last, i wish very much a pagination function to this awesome multiple boardnews block. Will you consider them?
Not on the next release .. we set this to a to do list...

Fel

Great! Thanks a lot for this! :D :)) O0

Offline feline

  • CO PortaMx corp.
  • Administrator
  • *
  • Posts: 5224
  • Gender: Female
Re: What we have done..
« Reply #11 on: 23 Feb 10, 16:55:34 »
Is there a demo site?
You will see this in action, when we have update us server ...

Quote
When will it be release?
When it's done?  8)

Fel
Many are stubborn in relation to the path, a few in relation to the target.

Offline antechinus

  • PortaMx Supporter
  • *
  • Posts: 677
Re: What we have done..
« Reply #12 on: 23 Feb 10, 22:31:42 »
Hey you wanna develop SMF for us too? ;D  This stuff looks great.
Using Internet Explorer 6 on the internet is like urinating in a public swimming pool.
It's rude, there's no excuse for it, and anyone who does it should be ashamed of themselves.

Offline feline

  • CO PortaMx corp.
  • Administrator
  • *
  • Posts: 5224
  • Gender: Female
Re: What we have done..
« Reply #13 on: 23 Feb 10, 22:52:02 »
I have wrote to SMF, that we have free capability for development ... but no answer  >:(
And we think on a enhanced SMF 2 support ...

Fel
Many are stubborn in relation to the path, a few in relation to the target.

Offline feline

  • CO PortaMx corp.
  • Administrator
  • *
  • Posts: 5224
  • Gender: Female
Re: What we have done..
« Reply #14 on: 23 Feb 10, 23:30:49 »
More what we have done ..

Added paging to a lot of blocks, like newposts, boardnews .. see first post

Fel
Many are stubborn in relation to the path, a few in relation to the target.