Skinshot -this is from the 1.10 version, but it hasn't changed that much-:

Download: Skins for b2evolution 2.x - Purple Beauty.
Have fun
]]>As a member of the B2evolution support team ("Afwas") I have a thorough knowledge and understanding of the software and it's implementations. All the skins on this site are converted by me. I made a variety of B2evolution plugins, both custom and for the repository. I can advise you and help you with the lesser known features of the engine.
I will do both small jobs as well as complete sites. All my work will comply to XHTML and CSS standards and come with full warranty on functionality. Furthermore I work on a 'no cure no pay' basis that will ensure a result you will like.
I code in PHP, (X)HTML, SQL, javaScript, jQuery and I'm never lazy when presented with new challenges.
I will normally charge € 20,- / hour for installations and from € 30,- / hour onward when coding is involved. Most likely I will agree on a fixed price based on the hours I think I need to spend on the job. That way you are not unpleasantly surprised afterwards.
Feel free to contact me with your ideas and I will discuss the way in which I can assist you. You find a contact button in the footer of this blog.
]]>
DadHacker is the creator of the Atari game Donkey Kong. The game originated in 1981. Recently DadHacker wrote in his blog about his days at Atari and particularly about writing Donkey Kong. It's an incredible story.
]]>I had a successful go with Swift mailer in B2evo 1.10.3 and in 2.4.0 rc2. This is how to set it up:
1) Download swift-smtp from http://www.swiftmailer.org/download/ . Unpack and upload the /lib/ folder. I made a directory in /inc/_misc/ called swift-smtp where I put the lib folder. So this looks like /inc/_misc/swift-smtp/lib/. Feel free to add the folder to /htsrv/ where I think it belongs.
2) Open /inc/_misc/_misc.funcs.php and replace lines 2348 - 2362. If you are using B2evo v2.4.0 rc 2 look for this codesnippet in inc/misc/_misc.funcs.php line ~1568.:
if( $debug > 1 )
{ // We agree to die for debugging...
if( ! mail( $to, $subject, $message, $headerstring ) )
{
debug_die( 'Sending mail from
«'.htmlspecialchars($from).'» to
«'.htmlspecialchars($to).'», Subject
«'.htmlspecialchars($subject).'» FAILED.' );
}
}
else
{ // Soft debugging only....
if( ! @mail( $to, $subject, $message, $headerstring ) )
{
$Debuglog->add( 'Sending mail from
«'.htmlspecialchars($from).'» to
«'.htmlspecialchars($to).'», Subject
«'.htmlspecialchars($subject).'» FAILED.', 'error' );
return false;
}
}
by:
//setup swift-smtp
require_once( dirname(__FILE__).'/swift-smtp/lib/Swift.php' );
require_once( dirname(__FILE__).'/swift-smtp/lib/Swift/Connection/SMTP.php' );
global $smtp_server, $smtp_user, $smtp_password, $smtp_port;
$smtp =& new Swift_Connection_SMTP( $smtp_server, $smtp_port);
$smtp->setUsername( $smtp_user );
$smtp->setpassword( $smtp_password );
$swift =& new Swift($smtp);
$mail =& new Swift_Message( $subject, $message);
$to_name = preg_replace( '/^.*?<(.+?)>$/', '$0', $to );
$from_name = preg_replace( '/^.*?<(.+?)>$/', '$0', $from );
$to_email = preg_replace( '/^.*?<(.+?)>$/', '$1', $to );
$from_email = preg_replace( '/^.*?<(.+?)>$/', '$1', $from );
$new_to = new Swift_Address( $to_email, $to_name );
$new_from = new Swift_Address( $from_email, $from_name );
if( $debug > 1 )
{ // We agree to die for debugging...
if( ! $swift->send( $mail, $new_to, $new_from ))
{
debug_die( 'Sending mail from
«'.htmlspecialchars($from).'» to
«'.htmlspecialchars($to).'», Subject
«'.htmlspecialchars($subject).'» FAILED.' );
}
}
else
{ // Soft debugging only....
if( ! @$swift->send( $mail, $new_to, $new_from ))
{
$Debuglog->add( 'Sending mail from
«'.htmlspecialchars($from).'» to
«'.htmlspecialchars($to).'», Subject
«'.htmlspecialchars($subject).'» FAILED.', 'error' );
return false;
}
}
I prefer the variables in /conf/_advanced.php. Somewhere put this block:
/**
* SMTP
* uses swift-smtp
*/
$smtp_server = 'smtp.server.tld';
$smtp_port = 25;
$smtp_user = 'user';
$smtp_password = 'password';
If you want to put the Swift mailer files in the /htsrv/ folder (/htsrv/swift-smtp/lib/) you change these lines of the code:
require_once( dirname(dirname(dirname(__FILE__))).'/htsrv/swift-smtp/lib/Swift.php' );
require_once( dirname(dirname(dirname(__FILE__))).'/htsrv/swift-smtp/lib/Swift/Connection/SMTP.php' );
Once again: I took the /lib/ folder from the package and put it in a custom made /swift-smtp/ folder. You may copy the /lib/ folder from swift-smtp directly to the /htsrv/ folder, but change the path accordingly.
Thanks to dcihon for testing.
Good luck
]]>Wouldn't it be nice to be able to change the skin's appearance based on some condition. In this tip & trick I'm going to change the colour of this post to red at daytime and blue at night. Times are local CET (Europe).
The nice thing about PHP is that you can deploy it everywhere in the page. So why not within the CSS file.
First you want to point to this special file. Somewhere in the header (for B2evo that's ../blogs/skins/YOURSKIN/_html_header.inc.php) make this call:
<link rel="stylesheet" href="phpstyle.php" type="text/css" />
Every PHP statement must be within a PHP file. We create this phpstyle.php file and start it with:
<?php header("Content-type: text/css"); ?>
That's about it. The file acts as any other CSS file, but since it's a PHP file we can interweave (we say 'lard' in Holland) with any thinkable condition. It's like serverside JavaScript.
On with the task I've set. Let's call the server time:
$time_at_server = date(G);
$time_in_europe = $time_at_server + 9;
Now the condition:
if ($time_in_europe >= 6 && $time_in_europe < 18 )
{
// It's daytime
$sun_is_shining = 1;
}
else
{
// it's night
$sun_is_shining = 0;
};
This is the complete phpstyle.php:
<?php header("Content-type: text/css"); ?>
<?php
$time_at_server = date(G);
$time_in_europe = $time_at_server + 9;
// Found a bug. This is the fix:
if ( $time_in_europe > 23 )
{
$time_in_europe = $time_in_europe - 24;
}
if ( $time_in_europe >= 6 && $time_in_europe < 18 )
{
// It's daytime
$sun_is_shining = 1;
}
?>
.day_or_night p {
<?php
if ( $sun_is_shining )
{
echo ( "color: red; \n" );
}
else
{
echo ( "color: blue; \n" );
}
// output
/**
* .day_or_night p {
* color: red;
* }
*
*/
?>
}
I've started this post with <div class=" day_or_night"> and ended it with </div>.
That's it. I Hope you like it. Can you think of some other uses for this conditional css statements? Leave a comment if you do.
Have fun.
And so even though we face the difficulties of today and tomorrow, I still have a dream. It is a dream deeply rooted in the American dream.
I have a dream that one day this nation will rise up and live out the true meaning of its creed: "We hold these truths to be self-evident, that all men are created equal."
I have a dream that one day on the red hills of Georgia, the sons of former slaves and the sons of former slave owners will be able to sit down together at the table of brotherhood.
I have a dream that one day even the state of Mississippi, a state sweltering with the heat of injustice, sweltering with the heat of oppression, will be transformed into an oasis of freedom and justice.
I have a dream that my four little children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character.
I have a dream today!
I have a dream that one day, down in Alabama, with its vicious racists, with its governor having his lips dripping with the words of "interposition" and "nullification" -- one day right there in Alabama little black boys and black girls will be able to join hands with little white boys and white girls as sisters and brothers.
I have a dream today!
The styling is done in ../rsc/css/basic.css. Some skin styles will already have something different for the blockquotes. You will find it somewhere in the css file in the skin's directory. Replace what's in there for the blockquote with something similar to this:
blockquote {
text-indent: 25px;
background: url(http://www.blog.hemminga.net/rsc/img/quotes1.png);
background-position: 0 2px;
background-repeat: no-repeat;
}
blockquote p {
background-color: #eee;
display: inline;
margin: 0;
padding-right: 24px;
background: url(http://www.blog.hemminga.net/rsc/img/quotes2.png);
background-position: bottom right;
background-repeat: no-repeat;
}The images can be found here and here.
Have fun.
]]>He has forbidden his Governors to pass Laws of immediate and pressing importance, unless suspended in their operation till his Assent should be obtained; and when so suspended, he has utterly neglected to attend to them.
He has refused to pass other Laws for the accommodation of large districts of people, unless those people would relinquish the right of Representation in the Legislature, a right inestimable to them and formidable to tyrants only.
He has called together legislative bodies at places unusual, uncomfortable, and distant from the depository of their Public Records, for the sole purpose of fatiguing them into compliance with his measures.
He has dissolved Representative Houses repeatedly, for opposing with manly firmness his invasions on the rights of the people.
He has refused for a long time, after such dissolutions, to cause others to be elected, whereby the Legislative Powers, incapable of Annihilation, have returned to the People at large for their exercise; the State remaining in the mean time exposed to all the dangers of invasion from without, and convulsions within.
He has endeavoured to prevent the population of these States; for that purpose obstructing the Laws for Naturalization of Foreigners; refusing to pass others to encourage their migrations hither, and raising the conditions of new Appropriations of Lands.
He has obstructed the Administration of Justice by refusing his Assent to Laws for establishing Judiciary Powers.
He has made Judges dependent on his Will alone for the tenure of their offices, and the amount and payment of their salaries.
He has erected a multitude of New Offices, and sent hither swarms of Officers to harass our people and eat out their substance.
He has kept among us, in times of peace, Standing Armies without the Consent of our legislatures.
He has affected to render the Military independent of and superior to the Civil Power.
He has combined with others to subject us to a jurisdiction foreign to our constitution, and unacknowledged by our laws; giving his Assent to their Acts of pretended Legislation:
For quartering large bodies of armed troops among us:
For protecting them, by a mock Trial from punishment for any Murders which they should commit on the Inhabitants of these States:
For cutting off our Trade with all parts of the world:
For imposing Taxes on us without our Consent:
For depriving us in many cases, of the benefit of Trial by Jury:
For transporting us beyond Seas to be tried for pretended offences:
For abolishing the free System of English Laws in a neighbouring Province, establishing therein an Arbitrary government, and enlarging its Boundaries so as to render it at once an example and fit instrument for introducing the same absolute rule into these Colonies
For taking away our Charters, abolishing our most valuable Laws and altering fundamentally the Forms of our Governments:
For suspending our own Legislatures, and declaring themselves invested with power to legislate for us in all cases whatsoever.
He has abdicated Government here, by declaring us out of his Protection and waging War against us.
He has plundered our seas, ravaged our coasts, burnt our towns, and destroyed the lives of our people.
He is at this time transporting large Armies of foreign Mercenaries to compleat the works of death, desolation, and tyranny, already begun with circumstances of Cruelty & Perfidy scarcely paralleled in the most barbarous ages, and totally unworthy the Head of a civilized nation.
He has constrained our fellow Citizens taken Captive on the high Seas to bear Arms against their Country, to become the executioners of their friends and Brethren, or to fall themselves by their Hands.
He has excited domestic insurrections amongst us, and has endeavoured to bring on the inhabitants of our frontiers, the merciless Indian Savages whose known rule of warfare, is an undistinguished destruction of all ages, sexes and conditions.
In every stage of these Oppressions We have Petitioned for Redress in the most humble terms: Our repeated Petitions have been answered only by repeated injury. A Prince, whose character is thus marked by every act which may define a Tyrant, is unfit to be the ruler of a free people.
Nor have We been wanting in attentions to our British brethren. We have warned them from time to time of attempts by their legislature to extend an unwarrantable jurisdiction over us. We have reminded them of the circumstances of our emigration and settlement here. We have appealed to their native justice and magnanimity, and we have conjured them by the ties of our common kindred to disavow these usurpations, which would inevitably interrupt our connections and correspondence. They too have been deaf to the voice of justice and of consanguinity. We must, therefore, acquiesce in the necessity, which denounces our Separation, and hold them, as we hold the rest of mankind, Enemies in War, in Peace Friends.
We, therefore, the Representatives of the united States of America, in General Congress, Assembled, appealing to the Supreme Judge of the world for the rectitude of our intentions, do, in the Name, and by Authority of the good People of these Colonies, solemnly publish and declare, That these united Colonies are, and of Right ought to be Free and Independent States, that they are Absolved from all Allegiance to the British Crown, and that all political connection between them and the State of Great Britain, is and ought to be totally dissolved; and that as Free and Independent States, they have full Power to levy War, conclude Peace, contract Alliances, establish Commerce, and to do all other Acts and Things which Independent States may of right do.
]]>