<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#8235;oc666 zone &#187; joomla&#8236;</title>	<atom:link href="http://oc666.net/feed/?tag=joomla" rel="self" type="application/rss+xml" />
	<link>http://oc666.net</link>
	<description>&#8235;האיזור הכי שטני באינטרנט&#8236;</description>	<lastBuildDate>Tue, 07 Sep 2010 11:38:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>he</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8235;How to make Joomla upload multiple files&#8236;</title>		<link>http://oc666.net/2010/01/27/how-to-make-joomla-upload-multiple-files/</link>
		<comments>http://oc666.net/2010/01/27/how-to-make-joomla-upload-multiple-files/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 20:45:57 +0000</pubDate>
		<dc:creator>&#8235;oc666&#8236;</dc:creator>				<category><![CDATA[joomla]]></category>
		<category><![CDATA[תקינה]]></category>
		<category><![CDATA[multi]]></category>
		<category><![CDATA[multiple]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://oc666.net/?p=336</guid>
		<description><![CDATA[&#8235;This month Mozilla release new version of firefox &#8211; 3.6 &#8211; the best browser (for my opinion). I read that in this version it supported multiple files upload. So I add a patch for Joomla (1.5) to support it. This patch make the upload native php-html and non-flash involved in this patch. Also, this patch [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p style="text-align: left;" dir="ltr">This month <a title="Mozilla Firefox" href="http://www.getfirefox.com/" target="_blank">Mozilla</a> release new version of firefox &#8211; 3.6 &#8211; the best browser (for my opinion). I read that in this version it supported <a title="multiple file input in Firefox 3.6" href="http://hacks.mozilla.org/2009/12/multiple-file-input-in-firefox-3-6/" target="_blank">multiple files upload</a>. So I add a patch for Joomla (1.5) to support it. This patch make the upload native php-html and non-flash involved in this patch. Also, this patch done with backward compatibility to older browser (even IE6).</p>
<p style="text-align: left;" dir="ltr"><span id="more-336"></span>The first thing you should do is to update your component view. Just update the files <em>administrator/components/com_media/views/images/tmpl/default.php</em> and <em>administrator/components/com_media/views/media/tmpl/default.php</em> to support this patch (just add the bold brackets or replace the line):</p>
<blockquote>
<p style="text-align: left;" dir="ltr">&lt;!&#8211;old version: &lt;input type=&quot;file&quot; id=&quot;file-upload&quot; name=&quot;Filedata&quot; multiple=&quot;multiple&quot; /&gt;&#8211;&gt;</p>
<p style="text-align: left;" dir="ltr">&lt;input type=&quot;file&quot; id=&quot;file-upload&quot; name=&quot;Filedata<strong>[]</strong>&quot;  multiple=&quot;multiple&quot;&gt;</p>
</blockquote>
<p style="text-align: left;" dir="ltr">That's all for the view. Let's get to the business and update the php core that upload the files. Technically, all you've got to do is to update the file administrator/components/com_media/controllers/file.php. Replace the function upload() with the next function (in bold the updates from the original version):</p>
<blockquote>
<p style="text-align: left;" dir="ltr">/**<br />
* Upload a file<br />
* <strong>patched by oc666</strong><br />
* @since 1.5<br />
*/<br />
function upload()<br />
{<br />
global $mainframe;</p>
<p style="text-align: left;" dir="ltr">// Check for request forgeries<br />
JRequest::checkToken( 'request' ) or jexit( 'Invalid Token' );</p>
<p style="text-align: left;" dir="ltr">$file<strong>s</strong> = JRequest::getVar( 'Filedata', &quot;, 'files', 'array' );<br />
$folder        = JRequest::getVar( 'folder', &quot;, &quot;, 'path' );<br />
$format        = JRequest::getVar( 'format', 'html', &quot;, 'cmd');<br />
$return        = JRequest::getVar( 'return-url', null, 'post', 'base64' );<br />
$err        = null;</p>
<p style="text-align: left;" dir="ltr">// Set FTP credentials, if given<br />
jimport('joomla.client.helper');<br />
JClientHelper::setCredentialsFromRequest('ftp');<br />
<strong>$success_uploads = 0;</strong><br />
<strong>for($i=0;$i&lt;count($files['name']);$i++) {<br />
$file = array();<br />
$file['name'] = $files['name'][$i];<br />
$file['tmp_name'] = $files['tmp_name'][$i];</strong></p>
<p style="text-align: left;" dir="ltr">// Make the filename safe<br />
jimport('joomla.filesystem.file');<br />
$file['name']    = JFile::makeSafe($file['name']);<br />
if (isset($file['name'])) {<br />
$filepath = JPath::clean(COM_MEDIA_BASE.DS.$folder.DS.strtolower($file['name']));</p>
<p style="text-align: left;" dir="ltr">if (!MediaHelper::canUpload( $file, $err )) {<br />
if ($format == 'json') {<br />
jimport('joomla.error.log');<br />
$log = &amp;JLog::getInstance('upload.error.php');<br />
$log-&gt;addEntry(array('comment' =&gt; 'Invalid: '.$filepath.': '.$err));<br />
<strong>//header('HTTP/1.0 415 Unsupported Media Type');<br />
//jexit('Error. Unsupported Media Type!');</strong><br />
} /<strong>*else {<br />
JError::raiseNotice(100, JText::_($err));<br />
// REDIRECT<br />
if ($return) {<br />
$mainframe-&gt;redirect(base64_decode($return).'&amp;folder='.$folder);<br />
}<br />
return;<br />
}*/</strong><br />
}</p>
<p style="text-align: left;" dir="ltr">if (JFile::exists($filepath)) {<br />
if ($format == 'json') {<br />
jimport('joomla.error.log');<br />
$log = &amp;JLog::getInstance('upload.error.php');<br />
$log-&gt;addEntry(array('comment' =&gt; 'File already exists: '.$filepath));<br />
<strong>//header('HTTP/1.0 409 Conflict');<br />
//jexit('Error. File already exists');</strong><br />
}<strong>/* else {<br />
JError::raiseNotice(100, JText::_('Error. File already exists'));<br />
// REDIRECT<br />
if ($return) {<br />
$mainframe-&gt;redirect(base64_decode($return).'&amp;folder='.$folder);<br />
}<br />
return;<br />
}*/</strong><br />
}</p>
<p style="text-align: left;" dir="ltr">if (!JFile::upload($file['tmp_name'], $filepath)) {<br />
if ($format == 'json') {<br />
jimport('joomla.error.log');<br />
$log = &amp;JLog::getInstance('upload.error.php');<br />
$log-&gt;addEntry(array('comment' =&gt; 'Cannot upload: '.$filepath));<br />
<strong>//header('HTTP/1.0 400 Bad Request');<br />
//jexit('Error. Unable to upload file');</strong><br />
} else {<strong>/*<br />
JError::raiseWarning(100, JText::_('Error. Unable to upload file'));<br />
// REDIRECT<br />
if ($return) {<br />
$mainframe-&gt;redirect(base64_decode($return).'&amp;folder='.$folder);<br />
}<br />
return;    */</strong><br />
$success_uploads++;<br />
}<br />
} else {<br />
if ($format == 'json') {<br />
jimport('joomla.error.log');<br />
$log = &amp;JLog::getInstance();<br />
$log-&gt;addEntry(array('comment' =&gt; $folder));<br />
<strong>//jexit('Upload complete');</strong><br />
} else {<strong>/*<br />
$mainframe-&gt;enqueueMessage(JText::_('Upload complete'));<br />
// REDIRECT<br />
if ($return) {<br />
$mainframe-&gt;redirect(base64_decode($return).'&amp;folder='.$folder);<br />
}<br />
return;*/</strong><br />
$success_uploads++;<br />
}<br />
}<br />
}<strong>/* else {<br />
$mainframe-&gt;redirect('index.php', 'Invalid Request', 'error');<br />
}*/</strong><br />
}<br />
<strong>$mainframe-&gt;enqueueMessage(JText::sprintf('Uploads complete', $success_uploads));<br />
if ($return) {<br />
$mainframe-&gt;redirect(base64_decode($return).'&amp;folder='.$folder);<br />
}</strong><br />
}</p>
</blockquote>
<p style="text-align: left;" dir="ltr">Now we finish our patch. Just we add langauge patch for the string of the new upload. Add the next entry to your language file (this for en-GB):</p>
<blockquote>
<p style="text-align: left;" dir="ltr">// <em>administrator/language/en-GB/en-GB.com_media.ini</em></p>
<p style="text-align: left;" dir="ltr"><em>&#8230; some other strings</em></p>
<p style="text-align: left;" dir="ltr"><strong>UPLOADS COMPLETE=Upload Complete. Number of files uploaded: %s</strong></p>
</blockquote>
<p style="text-align: left;" dir="ltr">That's all folks. If you've any improves, suggestions or errors, contact me or add comments to this post</p>
<blockquote>
<p style="text-align: left;" dir="ltr">
</blockquote>
</div>]]></content:encoded>			<wfw:commentRss>http://oc666.net/2010/01/27/how-to-make-joomla-upload-multiple-files/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8235;How to make Joomla website multisite&#8236;</title>		<link>http://oc666.net/2009/12/09/how-to-make-joomla-website-multisite/</link>
		<comments>http://oc666.net/2009/12/09/how-to-make-joomla-website-multisite/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 00:11:16 +0000</pubDate>
		<dc:creator>&#8235;oc666&#8236;</dc:creator>				<category><![CDATA[כללי]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[multisite]]></category>

		<guid isPermaLink="false">http://oc666.net/?p=314</guid>
		<description><![CDATA[&#8235;This post is transalation of the Hebrew guide in my blog. I'm doing it after requsests from the Joomla Conference 2009 at New York.
This guide use single installation of Joomla that produce multiple sites with one configuration file for each site with its own database prefixes. Although there are various extensions for that purpose, but [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p style="text-align: left;" dir="ltr">This post is transalation of the <a title="How to make Joomla multisite - Hebrew guide" href="http://oc666.net/?p=47" target="_blank">Hebrew guide</a> in my blog. I'm doing it after requsests from the Joomla Conference 2009 at New York.</p>
<p style="text-align: left;" dir="ltr">This guide use single installation of Joomla that produce multiple sites with one configuration file for each site with its own database prefixes. Although there are various extensions for that purpose, but I recommend to do it by this hack, because it can control the way that different sites will be run better and adjust performance by dividing the load in case of multiple servers.<br />
Note that this installation distinguishes between a database of sites by the prefix of data in database tables. You can divide each site to different MySQL instances.</p>
<p style="text-align: left;" dir="ltr"><strong><span id="more-314"></span>Step One &#8211; how sites will be identified</strong></p>
<p style="text-align: left;" dir="ltr">At this point we decide how users will be sent between sites. This can be done by domain-prefix or url querystring. The first method identified the site by the initial of the domain. The second method identified the site by using the add-to-url string (querystring). This post will demonstrate the use the first method.</p>
<p style="text-align: left;" dir="ltr"><strong>Step Two &#8211; Define routing file </strong></p>
<p style="text-align: left;" dir="ltr">Routing file define how we will know which site surfer arrived. We'll placed file naming routing.php in the includes directory.</p>
<blockquote style="text-align: left;" dir="ltr">
<p style="text-align: left;" dir="ltr">defined( '_JEXEC' ) or die( 'Restricted access' );</p>
<p>$baseurl = 'domain.com'; /* your domain without any prefix like www */<br />
$default_prefix = 'www';<br />
$config_path = 'config'.DS;<br />
$sitename=str_replace('.'.$baseurl, &quot;, $_SERVER['SERVER_NAME']);</p>
<p>/*</p>
<p>// for querystring manipulation<br />
// if the structure is: http://www.domain.com/sites/sitename<br />
// ** without sub-domain **<br />
$ar = explode( &quot;/&quot;, $_SERVER['REQUEST_URI']);<br />
$sitename = $ar[2];</p>
<p>*/<br />
if(!file_exists(JPATH_ROOT.DS. $config_path.$sitename.&quot;.php&quot;))<br />
{<br />
if(strpos($_SERVER['SERVER_NAME'], $baseurl)&amp;&amp;($sitename!=$default_prefix))<br />
// if there is a domain request and not sub domain exist redirect to default site<br />
{<br />
header (&quot;Location: http://'.$default_prefix.&quot;.$baseurl);<br />
die('no such sub domain.&lt;br/&gt;redirecting to default site…');<br />
}<br />
$sitename = $default_prefix; // if u want to premit ip domain request (or computer name; localhost also)<br />
}<br />
define( 'JCONFIG_SITENAME', $sitename);<br />
define('JCONFIG_PATHNAME',$config_path.JCONFIG_SITENAME.'.php');</p></blockquote>
<p style="text-align: left;" dir="ltr">This file take the prefix of the domain and put it to into JCONFIG_SITENAME constant and path of configuration file under constant JCONFIG_PATHNAME (configuration file of Joomla as a default is configuration.php and is located in front of The Joomla). Configuration files will be located under the config directory under the main directory of Joomla. This library contains all the configuration files of the sites. If the configuration file of the sub-domain does not exist it will be sent to by default (www). Also, copy this file to includes directory of the administrator directory.</p>
<p style="text-align: left;"><strong>Step Three &#8211; The files update Joomla</strong></p>
<p style="text-align: left;" dir="ltr">At this time we will update the Joomla files to the settings we've made. First we'll update index.php files to execute the script we add.</p>
<p style="text-align: left;" dir="ltr">We add the following line after line 21 in index.php in the main directory of Joomla index.php file and in the administrator directory:</p>
<blockquote style="text-align: left;">
<p style="text-align: left;" dir="ltr">require_once (JPATH_BASE. DS. 'includes'. DS. &quot;Routing.php');</p>
</blockquote>
<p style="text-align: left;" dir="ltr">Then, we update the The Joomla core of the new path of configuration file of the specific site. We will do this using a simple sed command. Under Linux:</p>
<blockquote style="text-align: left;"><p>for i in `find <em>/your/joomla/full_path/</em> -type f; do echo sed-i&quot; s; 'Configuration.php; JCONFIG_PATHNAME; &quot;$ i done</p></blockquote>
<p style="text-align: left;" dir="ltr">Under Windows:</p>
<blockquote style="text-align: left;">
<p style="text-align: left;" dir="ltr">FOR / r &quot;<em>your\joomla\full\path</em>&quot;%% a in (*. php) do (<br />
sed-i &quot;s; 'Configuration.php; JCONFIG_PATHNAME;&quot; &quot;%% a&quot;)</p>
</blockquote>
<p style="text-align: left;" dir="ltr">You must replace your <em>\joomla\full\path</em> to the path of your Joomla installation on your server. Windows server sed command is not built, so we'll have to install it. You can download it <a title="sed command for windows" href="http://gnuwin32.sourceforge.net/packages/sed.htm" target="_blank">here</a>.</p>
<p style="text-align: left;" dir="ltr">Here actually finished the update code. Note that if your default domain is www you must create a configuration file of Joomla called www.php under config directory. Probably need to create this directory if not yet created. The configuration file of the original Joomla (configuration.php), which is the main directory of Joomla, could be used as the default domain of the central (www.php).</p>
<p style="text-align: left;"><strong>The final step &#8211; a database for all domain </strong></p>
<p style="text-align: left;" dir="ltr">In addition, each domain will have to create tables Joomla with his differentprefix to control. Prefix probably might be the domain name for the orderly structure of course. You must set the prefix tables in the site configuration file (again under the config directory).</p>
<p style="text-align: left;" dir="ltr">To duplicate a database you'll need to export data base by the prefix of the names of the tables there so you can use one of the following scripts (Linux or Windows).<br />
For Linux:</p>
<blockquote style="text-align: left;"><p>#!/bin/bash<br />
DB=&quot;$1"<br />
PREFIX=$2<br />
EXPORT_FILE=$3<br />
HOST=YOUR_DB_HOST<br />
USER=YOUR_DB_USER<br />
PASSWORD=YOUR_DB_PASSWORD</p>
<p>if [ -z ${EXPORT_FILE} ]; then<br />
EXPORT_FILE=&quot;export.sql&quot;<br />
fi</p>
<p>if [ -z ${DB} ]; then<br />
echo &quot;YOU NEED AT LEAST 2 ARGS:&quot;<br />
echo &quot;1ST ARG DB&quot;<br />
echo &quot;2ND ARG PREFIX&quot;<br />
echo &quot;3RD ARG EXPORT FILE NAME (DEFAULT: export.sql)&quot;<br />
else<br />
if [ -z ${PREFIX} ]; then<br />
echo &quot;YOU DIDNT FILLED DB&quot;<br />
else<br />
TEMP_FILE=&quot;/tmp/agron.mysql&quot;<br />
mysql -h ${HOST} -u ${USER} –password=${PASSWORD} -D ${DB} -e &quot;SHOW TABLES FROM ${DB} LIKE '${PREFIX}%'&quot; -N &gt; ${TEMP_FILE}</p>
<p>if [ -w ${EXPORT_FILE} ]; then<br />
rm ${EXPORT_FILE}<br />
fi</p>
<p>cat ${TEMP_FILE} | while read LINE ; do<br />
echo ${LINE}<br />
mysqldump -h ${HOST} -u ${USER} –password=${PASSWORD} ${DB} ${LINE} &gt;&gt; ${EXPORT_FILE}<br />
done</p>
<p>if [ -w ${TEMP_FILE} ]; then<br />
rm ${TEMP_FILE}<br />
fi<br />
echo &quot;Export done&quot;<br />
fi<br />
fi<br />
fi</p></blockquote>
<p style="text-align: left;" dir="ltr">For windows:</p>
<blockquote style="text-align: left;"><p>@echo off<br />
IF dummy==dummy%1 (<br />
GOTO NOARGS<br />
) ELSE (<br />
IF dummy==dummy%2 (<br />
GOTO NOARGS<br />
)<br />
SET DB=%1<br />
SET PREFIX=%2<br />
SET HOST=YOUR_HOST<br />
SET USER=YOUR_DB_USER<br />
SET PASSWORD=YOUR_DB_PASSWORD<br />
IF dummy==dummy%3 (<br />
:: IF NOT SET PARAMETER 3<br />
SET EXPORT_FILE=export.sql<br />
) ELSE (<br />
:: IF SET PARAMETER 3<br />
SET EXPORT_FILE=%3<br />
)<br />
mysql -u %USER% –password=%PASSWORD% -e &quot;SHOW TABLES FROM %DB% LIKE '%PREFIX%%%'&quot; -N &gt; c:\windows\temp\mysql.temp<br />
IF EXIST %EXPORT_FILE% del %EXPORT_FILE%<br />
FOR /F &quot;eol=; &quot; %%i in (c:\windows\temp\mysql.temp) do (<br />
@echo %%i<br />
mysqldump -u %USER% –password=%PASSWORD% %DB% %%i &gt;&gt; %EXPORT_FILE%<br />
)<br />
IF EXIST c:\windows\temp\mysql.temp del c:\windows\temp\mysql.temp<br />
ECHO Export done<br />
GOTO :END<br />
:NOARGS<br />
ECHO YOU NEED AT LEAST 2 ARGS:<br />
ECHO 1ST ARG DB<br />
ECHO 2ND ARG PREFIX<br />
ECHO 3RD ARG EXPORT FILE NAME (DEFAULT: export.sql)<br />
:END</p></blockquote>
<p style="text-align: left;" dir="ltr">These scripts with three arguments: database, prefix (of the tables name) and export file, when the last is not required (default: in the current directory with file named export.sql). You'll need to enter the top of the script parameters like host, database, username and password to connection to the database.</p>
<p style="text-align: left;" dir="ltr">That's all for now</p>
<p style="text-align: left;" dir="ltr">Hope the guide was understandable, because most of it used google translation. If not, please ask questions under the post and I'll try to answer and update the guide. Later, i'll publish scripts for easy replication of a the and its databases, and also update Joomla and its database when Joomla update release (this update is done like any normal update, but in addition, you need to running the sed command).</p>
<p style="text-align: left;" dir="ltr">Site <a title="Israel Library Software" href="http://www.library.org.il" target="_blank">Agron BC&amp;C LTD</a> using this method to create multisite (see list of online libraries on the right).</p>
</div>]]></content:encoded>			<wfw:commentRss>http://oc666.net/2009/12/09/how-to-make-joomla-website-multisite/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8235;ג&#039;ומלה 1.6 אלפא 2 שוחררה&#8236;</title>		<link>http://oc666.net/2009/10/30/%d7%92%d7%95%d7%9e%d7%9c%d7%94-1-6-%d7%90%d7%9c%d7%a4%d7%90-2-%d7%a9%d7%95%d7%97%d7%a8%d7%a8%d7%94/</link>
		<comments>http://oc666.net/2009/10/30/%d7%92%d7%95%d7%9e%d7%9c%d7%94-1-6-%d7%90%d7%9c%d7%a4%d7%90-2-%d7%a9%d7%95%d7%97%d7%a8%d7%a8%d7%94/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 20:51:26 +0000</pubDate>
		<dc:creator>&#8235;oc666&#8236;</dc:creator>				<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[1.6]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[ג'ומלה]]></category>
		<category><![CDATA[מערכת ניהול תוכן]]></category>

		<guid isPermaLink="false">http://oc666.net/?p=307</guid>
		<description><![CDATA[&#8235;מאמר זה הינו תרגום מהידיעה באתר ג'ומלה הרשמי לגבי שחרור ג'ומלה 1.6 אלפא 2.
פרוייקט ג'ומלה שמח להודיע על שחרור גירסה 1.6 אלפא 2. הגירסה כוללת הרבה פיצ'רים שנתבקשו ע&#34;י הקהילה,  כשהבולט ביניהם הוא ACL. פיצ'רים שנוספו ופיצ'רים עתידיים בגירסה 1.6 מפורטים במאמר זה. זוהי גירסת אלפא והיא עבור מפתחים ובודקים (גם לחובבי ג'ומלה) והיא אינה [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>מאמר זה הינו תרגום מהידיעה ב<a title="Joomla Official Site" href="http://joomla.org" target="_blank">אתר ג'ומלה הרשמי</a> לגבי <a title="Joomla 1.6 Alpha 2 released" href="http://community.joomla.org/blogs/community/1061-joomla-16-alpha-2-released.html" target="_blank">שחרור ג'ומלה 1.6 אלפא 2</a>.</p>
<p><span id="more-307"></span>פרוייקט ג'ומלה שמח להודיע על שחרור גירסה 1.6 אלפא 2. הגירסה כוללת הרבה פיצ'רים שנתבקשו ע&quot;י הקהילה,  כשהבולט ביניהם הוא <a title="ACL Tutorial for Joomla 1.6" href="http://docs.joomla.org/ACL_Tutorial_for_Joomla_1.6" target="_blank">ACL</a>. פיצ'רים שנוספו ופיצ'רים עתידיים בגירסה 1.6 מפורטים במאמר זה. זוהי גירסת אלפא והיא עבור מפתחים ובודקים (גם לחובבי ג'ומלה) והיא אינה עבור סביבות פרודקשיין.</p>
<p>פיצ'רים חדשים ושיפורים מגירסת אלפא 1:</p>
<ul>
<li><a title="Joomla ACL" href="http://www.theartofjoomla.com/home/5-commentary/84-introducing-the-new-permissions-in-joomla-16.html" target="_blank">ACL</a> &#8211; ניהול גישה עבור הרשאות גלובליות והרשאות ספציפיות עבור פריטי תוכן, משתנה קבוצות משתמש, משתמשים, הרשאות ניתנות לירושה במהירות.</li>
<li>פרופיל משתמש מורחב, תצוגת משתמש בצד הקדמי, פרמטרים של משתמש ניתנים להרחבה.</li>
<li>פריסת תוכן (com_content) ללא טבלאות.</li>
<li>שיפור מודולי תוכן (mod_articles_archive, mod_articles_latest, mod_articles_popular).</li>
<li>פלאגין קישור מאמרים עבור עורכים.</li>
<li>תבנית צד קדמי (תוכן) חדשה (atomic).</li>
<li>תבנית צד אחורי (ניהול) חדשה (bluestork).</li>
<li>מעלה קבצים (uploader) עבור מנהל המדיה.</li>
</ul>
<p>שיפורים אחרים שקיימים מגרסה 1.6 אלפא 1:</p>
<ul>
<li>Mootools 1.2.</li>
<li>Refactored עבור הצד האחורי.</li>
<li>JForm  (הערת מתרגם: אובייקט API לכתיבת טפסים).</li>
<li>קטגוריות מקוננות ופרמטרים עבור קטגוריות.</li>
<li>תצוגות חדשות בצד קדמי: קטגוריה וקטגוריות.</li>
<li>הרבה שיפורי קוד, כחצי מגודל הקוד קוצץ  עבור הוספת פונקציונליות.</li>
<li>PHP 5.2 נדרשת, שיפור ביצועים ענק, כאשר חלק ע&quot;י פיצ'רים חדשים =&gt; 1.6 תהיה מהירה יותר מ-1.5.</li>
</ul>
<p><strong>מה הלאה?</strong></p>
<p>לאחר שחרור אלפא 2, קהילה ג'ומלה צופה לקראת שחרור גירסת בטא. אין כוונה לשחרור גירסת אלפא שלישית.</p>
<p>תוכלו לחכות ולצפות שיפורים עתידיים:</p>
<ul>
<li>פתרון עבור הערות יתווסף.</li>
<li>דרייברים עבור בסיסי נתונים נוספים.</li>
<li>הרבה שיפורים קטנים של ביצועים, ממשק משתמש (UI) וקוד.</li>
</ul>
<p>אנחנו רוצים להודות לכל אלה המעורבים בפרויקט, שעוזרים להוצאת גירסה זו.</p>
<p>הורדה מכאן: <a title="הורדת ג'ומלה 1.6 אלפא 2" href="http://joomlacode.org/gf/project/joomla/frs/?action=FrsReleaseBrowse&amp;frs_package_id=3585" target="_blank">http://joomlacode.org/gf/project/joomla/frs/?action=FrsReleaseBrowse&amp;frs_package_id=3585</a>.</p>
<p>דיסקוסים מכאן: <a title="ג'ומלה 1.6 אלפא 2 הערות טענות ומענות" href="http://forum.joomla.org/viewtopic.php?f=9&amp;t=454211" target="_blank">http://forum.joomla.org/viewtopic.php?f=9&amp;t=454211</a></p>
<p><strong>הערת המתרגם</strong></p>
<p>ניתן לראות הרצאה (באנגלית) על ג'ומלה 1.6 בקישור הבא: <a title="הרצאה באנגלית על ג'ומלה 1.6" href="http://www.vimeo.com/5516584" target="_blank">http://www.vimeo.com/5516584</a></p>
</div>]]></content:encoded>			<wfw:commentRss>http://oc666.net/2009/10/30/%d7%92%d7%95%d7%9e%d7%9c%d7%94-1-6-%d7%90%d7%9c%d7%a4%d7%90-2-%d7%a9%d7%95%d7%97%d7%a8%d7%a8%d7%94/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8235;איך להפוך אתר ג&#039;ומלה לרב-אתרי?&#8236;</title>		<link>http://oc666.net/2009/07/29/%d7%90%d7%99%d7%9a-%d7%9c%d7%94%d7%a4%d7%95%d7%9a-%d7%90%d7%aa%d7%a8-%d7%92%d7%95%d7%9e%d7%9c%d7%94-%d7%9c%d7%a8%d7%91-%d7%90%d7%aa%d7%a8%d7%99/</link>
		<comments>http://oc666.net/2009/07/29/%d7%90%d7%99%d7%9a-%d7%9c%d7%94%d7%a4%d7%95%d7%9a-%d7%90%d7%aa%d7%a8-%d7%92%d7%95%d7%9e%d7%9c%d7%94-%d7%9c%d7%a8%d7%91-%d7%90%d7%aa%d7%a8%d7%99/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 22:22:54 +0000</pubDate>
		<dc:creator>&#8235;oc666&#8236;</dc:creator>				<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[multisite]]></category>
		<category><![CDATA[mysqldump]]></category>
		<category><![CDATA[prefix]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[אתרים]]></category>
		<category><![CDATA[ג'ומלה]]></category>

		<guid isPermaLink="false">http://oc666.net/?p=47</guid>
		<description><![CDATA[&#8235;הכותרת אמנם יכולה להטעות אבל מטרת פוסט זה היא להסביר כיצד להפוך את ג'ומלה לרב-אתרי, או באנגלית multi-site, כך שבאמצעות התקנה בודדת של ג'ומלה תוכלו לנהל מספר אתרים כאשר רק קובץ קונפיגורציה אחד מגדיר אתר אחד מיני רבים. אמנם ישנם תוספים שונים למטרה זו, אך אני ממליץ לבצע זאת בצורה מלאכותית ולא בצורת תוסף, כי [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>הכותרת אמנם יכולה להטעות אבל מטרת פוסט זה היא להסביר כיצד להפוך את ג'ומלה לרב-אתרי, או באנגלית multi-site, כך שבאמצעות התקנה בודדת של ג'ומלה תוכלו לנהל מספר אתרים כאשר רק קובץ קונפיגורציה אחד מגדיר אתר אחד מיני רבים. אמנם ישנם תוספים שונים למטרה זו, אך אני ממליץ לבצע זאת בצורה מלאכותית ולא בצורת תוסף, כי כך ניתן לשלוט על אופן שבו האתרים השונים ינוהלו בצורה טובה יותר ולכוונן ביצועים ע&quot;י חלוקת עומסים במקרה של שרתים מרובים.</p>
<p><span id="more-47"></span></p>
<p><strong>שימו לב</strong> כי התקנה זו מבדילה בין בסיס נתונים של האתרים לפי התחילית (prefix) של טבלאות הנתונים בבסיס הנתונים.</p>
<p><strong>שלב ראשון &#8211; כיצד אתרים יזוהו<br />
</strong></p>
<p>בשלב זה נחליט כיצד הגולשים ינותבו בין האתרים. ניתן לעשות זאת באמצעות domain-prefix או querystring. כאשר בראשונה התחילית של הדומיין תחליט לאיזה אתר אנו נגלוש ובשני התוספת שתתווסף ל-domain תקבע זאת. בפוסט שאני אדגים אשתמש בשיטה הראשונה.</p>
<p><strong>שלב שני &#8211; הגדרת קובץ ניתוב</strong></p>
<p>בקובץ ניתוב נגדיר כיצד אנו נדע לאיזה אתר הגולש הגיע. הקובץ יקרא routing.php והוא ימוקם בספרית ה-includes של הג'ומלה. הקובץ יחלץ מתוך שם הדומיין את ה-prefix.</p>
<blockquote dir="ltr"><p>defined( '_JEXEC' ) or die( 'Restricted access' );</p>
<p>$baseurl = 'domain.com'; /* your domain without any prefix like www */<br />
$default_prefix = 'www';<br />
$config_path = 'config'.DS;<br />
$sitename=str_replace('.'.$baseurl, &quot;, $_SERVER['SERVER_NAME']);</p>
<p>/*</p>
<p>// for querystring manipulation<br />
// if the structure is: http://www.domain.com/sites/sitename<br />
// ** without sub-domain **<br />
$ar = explode( &quot;/&quot;, $_SERVER['REQUEST_URI']);<br />
$sitename = $ar[2];</p>
<p>*/<br />
if(!file_exists(JPATH_ROOT.DS. $config_path.$sitename.&quot;.php&quot;))<br />
{<br />
if(strpos($_SERVER['SERVER_NAME'], $baseurl)&amp;&amp;($sitename!=$default_prefix))<br />
// if there is a domain request and not sub domain exist redirect to default site<br />
{<br />
header (&quot;Location: http://'.$default_prefix.&quot;.$baseurl);<br />
die('no such sub domain.&lt;br/&gt;redirecting to default site&#8230;');<br />
}<br />
$sitename = $default_prefix; // if u want to premit ip domain request (or computer name; localhost also)<br />
}<br />
define( 'JCONFIG_SITENAME', $sitename);<br />
define('JCONFIG_PATHNAME',$config_path.JCONFIG_SITENAME.'.php');</p></blockquote>
<p>קובץ זה יחלץ את התחילית של הדומיין ויכניס אותו לקבוע JCONFIG_SITENAME ואת המיקום של קובץ הקונפיגורציה תחת הקבוע JCONFIG_PATHNAME (קובץ הקונפיגורציה של ג'ומלה באופן ברירת מחדל הינו configuration.php והוא ממוקם בספריה הראשית של הג'ומלה). קבצי הקונפיגורציה ימוקמו תחת הספריה config תחת הספריה הראשית של ג'ומלה. ספריה זו תכיל את כל קבצי הקונפיגורציה של האתרים. אם קובץ הקונפיגורציה של הסאב-דומיין אינו קיים הוא ינותב לאתר הברירת מחדל.</p>
<p>יש להעתיק קובץ זה גם לספרית ה-includes של ספרית ה-administrator.</p>
<p><strong>שלב שלישי &#8211; עדכון קבצי הג'ומלה</strong></p>
<p>בשלב זה נעדכן את קבצי הג'ומלה שיתאימו להגדרות שעשינו. דבר ראשון נעדכן קבצי ה-index.php שיבצעו את הקובץ שעדכנו.</p>
<p>נוסיף את השורה הבאה אחרי שורה 21 בקובץ index.php שנמצא בספריה הראשית של ג'ומלה וקובץ index.php שנמצא בספריה administrator:</p>
<blockquote>
<p dir="ltr">require_once ( JPATH_BASE .DS.'includes'.DS.'routing.php' );</p>
</blockquote>
<p>לאחר מכן נעדכן את תצורת הג'ומלה שתצביע על הנתיב הנכון של קובץ הקונפיגורציה של האתר הספציפי. נעשה זאת באמצעות פקודת sed פשוטה. תחת לינוקס:</p>
<blockquote>
<p style="text-align: left;" dir="ltr"><span style="font-size: small;">for i in `find /</span>your/joomla/full_path/<span style="font-size: small;"> -type f; do echo sed -i &quot;s;'configuration.php';JCONFIG_PATHNAME;&quot; $i; done</span></p>
</blockquote>
<p style="text-align: right;">תחת חלונות:</p>
<blockquote>
<p style="text-align: left;" dir="ltr">FOR /r &quot;your\joomla\full\path&quot; %%a in (*.php) do  (<br />
sed -i &quot;s;'configuration.php';JCONFIG_PATHNAME;&quot; &quot;%%a&quot;<br />
)</p></blockquote>
<p style="text-align: right;">יש להחליף את your\joomla\full\path בנתיב ההתקנה של הג'ומלה על השרת. עבור שרת חלונות הפקודה sed אינה מובנית, על כן נצטרך להתקינה. ניתן להורידו מ<a title="sed for windows" href="http://gnuwin32.sourceforge.net/packages/sed.htm" target="_blank">כאן</a>.</p>
<p style="text-align: right;">כאן למעשה סיימנו את העדכון בקוד. שימו לב כי אם הדומיין ברירת מחדל שלך הוא www עליך ליצור קובץ קונפיגורציה של ג'ומלה בשם www.php תחת הספריה config. קרוב לוודאי שתצטרך ליצור ספריה זו, אם עדיין לא יצרת. קובץ הקונפיגורציה המקורי של ג'ומלה (configuration.php), שנמצא בספריה הראשית של ג'ומלה, יוכל לשמש אותך כקובץ ברירת המחדל של הדומיין המרכזי (www.php).</p>
<p style="text-align: right;"><strong>שלב אחרון &#8211; בסיס נתונים לכל דומיין<br />
</strong></p>
<p style="text-align: right;">בנוסף, לכל דומיין תצטרך ליצור טבלאות ג'ומלה משלו עם פרפיקס שונה כדי לקבל ורסטיליות מלאה. קרוב לוודאי שהפרפיקס יהיה שם הדומיין בשביל מבנה מסודר ומובן. את הפרפיקס עליך להגדיר בקובץ הקונפיגורציה (ששוב ימצא בספריה config תחת הספריה הראשית של ג'ומלה).</p>
<p style="text-align: right;">כדי לשכפל בסיס נתונים תצטרך ליצא בסיס נתונים לפי ה-prefix של שמות הטבלאות לשם כך תוכל להשתמש באחד מהסקריפטים הבאים (לינוקס או חלונות).<br />
עבור לינוקס:</p>
<blockquote dir="ltr">
<p style="text-align: left;" dir="ltr">#!/bin/bash<br />
DB=&quot;$1"<br />
PREFIX=$2<br />
EXPORT_FILE=$3<br />
HOST=YOUR_DB_HOST<br />
USER=YOUR_DB_USER<br />
PASSWORD=YOUR_DB_PASSWORD</p>
<p style="text-align: left;">if [ -z ${EXPORT_FILE} ]; then<br />
EXPORT_FILE=&quot;export.sql&quot;<br />
fi</p>
<p style="text-align: left;">if [ -z ${DB} ]; then<br />
echo &quot;YOU NEED AT LEAST 2 ARGS:&quot;<br />
echo &quot;1ST ARG DB&quot;<br />
echo &quot;2ND ARG PREFIX&quot;<br />
echo &quot;3RD ARG EXPORT FILE NAME (DEFAULT: export.sql)&quot;<br />
else<br />
if [ -z ${PREFIX} ]; then<br />
echo &quot;YOU DIDNT FILLED DB&quot;<br />
else<br />
TEMP_FILE=&quot;/tmp/agron.mysql&quot;<br />
mysql -h ${HOST} -u ${USER} &#8211;password=${PASSWORD} -D ${DB} -e &quot;SHOW TABLES FROM ${DB} LIKE '${PREFIX}%'&quot; -N &gt; ${TEMP_FILE}</p>
<p style="text-align: left;">if [ -w ${EXPORT_FILE} ]; then<br />
rm ${EXPORT_FILE}<br />
fi</p>
<p style="text-align: left;">cat ${TEMP_FILE} | while read LINE ; do<br />
echo ${LINE}<br />
mysqldump -h ${HOST} -u ${USER} &#8211;password=${PASSWORD} ${DB} ${LINE} &gt;&gt; ${EXPORT_FILE}<br />
done</p>
<p style="text-align: left;">if [ -w ${TEMP_FILE} ]; then<br />
rm ${TEMP_FILE}<br />
fi<br />
echo &quot;Export done&quot;<br />
fi<br />
fi<br />
fi</p></blockquote>
<p style="text-align: right;">עבור חלונות:</p>
<blockquote>
<p style="text-align: left;" dir="ltr">@echo off<br />
IF dummy==dummy%1 (<br />
GOTO NOARGS<br />
) ELSE (<br />
IF dummy==dummy%2 (<br />
GOTO NOARGS<br />
)<br />
SET DB=%1<br />
SET PREFIX=%2<br />
SET HOST=YOUR_HOST<br />
SET USER=YOUR_DB_USER<br />
SET PASSWORD=YOUR_DB_PASSWORD<br />
IF dummy==dummy%3 (<br />
:: IF NOT SET PARAMETER 3<br />
SET EXPORT_FILE=export.sql<br />
) ELSE (<br />
:: IF SET PARAMETER 3<br />
SET EXPORT_FILE=%3<br />
)<br />
mysql -u %USER% &#8211;password=%PASSWORD% -e &quot;SHOW TABLES FROM %DB% LIKE '%PREFIX%%%'&quot; -N &gt; c:\windows\temp\mysql.temp<br />
IF EXIST %EXPORT_FILE% del %EXPORT_FILE%<br />
FOR /F &quot;eol=; &quot; %%i in (c:\windows\temp\mysql.temp) do (<br />
@echo %%i<br />
mysqldump -u %USER% &#8211;password=%PASSWORD% %DB% %%i &gt;&gt; %EXPORT_FILE%<br />
)<br />
IF EXIST c:\windows\temp\mysql.temp del c:\windows\temp\mysql.temp<br />
ECHO Export done<br />
GOTO :END<br />
:NOARGS<br />
ECHO YOU NEED AT LEAST 2 ARGS:<br />
ECHO 1ST ARG DB<br />
ECHO 2ND ARG PREFIX<br />
ECHO 3RD ARG EXPORT FILE NAME (DEFAULT: export.sql)<br />
:END</p></blockquote>
<p style="text-align: right;">הסקריפטים הנ&quot;ל מקבלים שלושה ארגומנטים: בסיס נתונים, פרפיקס (קידומת לשמות הטבלאות) וקובץ יצוא, כאשר האחרון אינו חובה (ברירת המחדל: export.sql בספריה הנוכחית). תצטרך להזין בראש הסקריפט את הפרמטרים כמו הוסט, בסיס הנתונים, משתמש וסיסמא כדי להתחבר לבסיס הנתונים.</p>
<p style="text-align: right;"><strong>עד כאן שידורינו להפעם&#8230;</strong></p>
<p style="text-align: right;">מקווה שהמדריך היה מובן. במידה ולא, אנא שאלו שאלות מתחת לפוסט ואשתדל לענות ולעדכן את המדריך. בהמשך אפרסם סקריפטים לשכפול קל ונוח של אתר ובסיסי הנתונים שלו בהתאם וגם סקריפט לעדכון התקנת ג'ומלה, במידה ויוצא עדכון של ג'ומלה (עדכון כזה מבוצע כמו כל עדכון רגיל, אלא שבנוסף מריצים את פקודת ה-sed).</p>
<p style="text-align: right;"><a title="Agron BC&amp;C LTD" href="http://www.library.org.il" target="_blank">אתר אגרון בי.סי.אנד.סי. בע&quot;מ</a> משתמש בשיטה זו ליצירת multisite (ראו רשימת ספריות מקוונות בצד ימין).</p>
</div>]]></content:encoded>			<wfw:commentRss>http://oc666.net/2009/07/29/%d7%90%d7%99%d7%9a-%d7%9c%d7%94%d7%a4%d7%95%d7%9a-%d7%90%d7%aa%d7%a8-%d7%92%d7%95%d7%9e%d7%9c%d7%94-%d7%9c%d7%a8%d7%91-%d7%90%d7%aa%d7%a8%d7%99/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
