joomla2.5バージョンで作成したコンポーネントをインストールする必要があります。インストールでは、別のコンポーネントを上書きするために、デフォルトのテンプレート(templates / templatename / html / com_test / viewname / default.php)にhtmlフォルダーを追加する必要があります。では、インストールxmlまたはinstalation.phpスクリプトで指定して、joomlaインストールのデフォルトテンプレートに他のフォルダーやファイルを含むフォルダーを追加するにはどうすればよいですか?
また、これが私のinstallation.phpファイルのコードであることにも言及する必要があります。これは私がこれまでに作成した方法ですが、それでもフォルダーがコピーされない理由を理解できません。インストールしようとしているzipファイルにあるため、ソースが間違っていると思います
<?php
defined('_JEXEC') or die('Restricted access');
/**
* Script file of HelloWorld component
*/
class com_helloWorldInstallerScript
{
/**
* method to install the component
*
* @return void
*/
function install($parent)
{
$db = JFactory::getDBO();
$query = "
SELECT ".$db->nameQuote('template')."
FROM ".$db->nameQuote('#__template_styles')."
WHERE ".$db->nameQuote('client_id')." = 1 and ".$db->nameQuote('home')." = 1;
";
$db->setQuery($query);
$AdminTemplate = $db->loadResult();
$query = "
SELECT ".$db->nameQuote('template')."
FROM ".$db->nameQuote('#__template_styles')."
WHERE ".$db->nameQuote('client_id')." = 0 and ".$db->nameQuote('home')." = 1;
";
$db->setQuery($query);
$SiteTemplate = $db->loadResult();
$src = "/viewnamenew";
$destination = JPATH_SITE."/templates/".$SiteTemplate ."/html/com_test/viewname";
JFolder::copy($src, $destination);
}
/**
* method to uninstall the component
*
* @return void
*/
function uninstall($parent)
{
// $parent is the class calling this method
echo '<p>' . JText::_('COM_HELLOWORLD_UNINSTALL_TEXT') . '</p>';
}
/**
* method to update the component
*
* @return void
*/
function update($parent)
{
// $parent is the class calling this method
echo '<p>' . JText::_('COM_HELLOWORLD_UPDATE_TEXT') . '</p>';
}
/**
* method to run before an install/update/uninstall method
*
* @return void
*/
function preflight($type, $parent)
{
// $parent is the class calling this method
// $type is the type of change (install, update or discover_install)
echo '<p>' . JText::_('COM_HELLOWORLD_PREFLIGHT_' . $type . '_TEXT') . '</p>';
}
/**
* method to run after an install/update/uninstall method
*
* @return void
*/
function postflight($type, $parent)
{
// $parent is the class calling this method
// $type is the type of change (install, update or discover_install)
echo '<p>' . JText::_('COM_HELLOWORLD_POSTFLIGHT_' . $type . '_TEXT') . '</p>';
}
}