forum.easy-joomla.org
12. 01. 2010 12:04 *
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
Neueste Beiträge
Re: Parameters missing in install manifest created by EasyCreator 0.0.11 von elkuku Gestern um 21:59
Re: EasyCreator 0.0.12 von elkuku Gestern um 18:19
Re: "Unable to report" in SpamLog; Array Bug von HansHuldreich 09. 01. 2010 16:25
News:
Tutorials/Anleitungen rund um Joomla! oder
Filmchen herunterladen
 

 
 
    Übersicht   Hilfe Suche Spenden/Sponsors Impressum/Imprint Downloads Hauptseite Projects Tutorials Einloggen Registrieren  
Subject Statistics
Thema: EasyCreator 0.0.12 Replies: 4 posts
Gelesen 339 mal 0 Mitglieder und 1 Gast betrachten dieses Thema.
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: EasyCreator 0.0.12  (Gelesen 339 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
elkuku
Developer
Full Member
*
OfflineOffline

Registriert seit: 11.12.07
Beiträge: 125



Profil anzeigen WWW
« am: 01. 01. 2010 18:12 »

Hi all Smiley

This is a refactoring release !
Some 'core' classes have been heavily modified so - Expect one ore more BUGs and please report them to our Tracker - THANKS !

Please also note that we are starting with some more serious documentation.
As this is a Wiki you are hereby invited to HELP  Händedruck
EasyCreator documentation: http://wiki.joomla-nafu.d...kuku/Proyektz/EasyCreator

A most annoying BUG has been fixed that deletes the code when an ampersand (&) is found.. my bad
Reported here: BUG BUG BUG
and on our tracker: BUG BUG BUG
Thanks electrocity, benneng and rvp Händedruck

Download: http://projects.easy-joom...ewsfeeds/EasyCreator.html

CHANGELOG:
 # Fixed code deleted on saving when an ampersand is found

 + Introducing EasyCodeEye
 + Added an interface to PEAR::CodeSniffer
 + Added Interface to PEAR::phpcpd - PHP Copy & Paste Detector
 + Added Interface to PEAR::phpDocumentor
 + Added Interface to PEAR::phpUnit
 + Creating skeleton UnitTest classes for project classes
 + Added the first Joomla! coding standards to be used with CodeSniffer - WIP
 + Added Extension template type 'template' named 'Blueprint'

 + Added profiler for J! 1.6
 + Added Mootools compat 1.1 => 1.2 - Ajax
 + Added Mootools compat 1.1 => 1.2 - Json (sry: JSON...)
 + Added PEAR and PEAR::Archive_Tar as they will be removed in J! 1.6

 + Option to include EasyCreator project file in final package
 + Option to place empty index.html in every directory on building the project
 + Added Language file 'overview' in Language Manager
 + Joomla! doctype DTD will be added to manifest

 - Removed language creation from startup Wizard
 - Removed language creation from extension Setup
 - Removed Extension templates 'Beez Copy' and 'MilkyWay Copy'
 - Removed old help screens - added link to documentation wiki

 ^ Optimized Install file detection
 ^ Refactored all extension templates. Using xml files now
 ^ EasyCreator project file is in xml format now
 ^ Changed EasyCreator Config from lightbox to a 'normal' view
 ^ Refactored manifest class to use PHPs SimpleXML
 ^ Refactored Toolbars to be tableless
 ^ Package install file placed in subfolder /install

 ! We should now run on Joomla! 1.6 =;)

Happy coding,
=;)
« Letzte Änderung: 02. 01. 2010 18:29 von elkuku » Gespeichert

Gruss,
Nikolai - NiK-IT.de
Easy-Joomla Team
ripper17
Newbie
*
OfflineOffline

Registriert seit: 15.04.09
Beiträge: 9


Profil anzeigen
« Antworten #1 am: 07. 01. 2010 17:31 »

Hi

thanks for the new version.
One problem I've found is that if you want to create a package for a Module (Scope: Site), it breaks.
Here's the fix:
Around line 380 in helpers/manifest.php replace
Code:
if (count($languageFiles))
        {
                $languagesElement = $administration->addChild('languages');
                $languagesElement->addAttribute('folder', 'admin/language');
                $substrlen = strlen($basepath.'admin'.DS.'language'.DS);
                foreach($languageFiles as $languageFile)
                {
                        $t = str_replace(DS, '/', substr($languageFile, $substrlen));
                        $languageElement = $languagesElement->addChild('language', $t);
                        $languageElement->addAttribute('tag', substr(basename($languageFile), 0, 5));
                }//foreach
        }

with
Code:
if (count($languageFiles))
        {
            if($this->project->type == 'component' || $this->project->scope == 'admin')
            {
                $languagesElement = $administration->addChild('languages');
                $languagesElement->addAttribute('folder', 'admin/language');
                $substrlen = strlen($basepath.'admin'.DS.'language'.DS);
                foreach($languageFiles as $languageFile)
                {
                        $t = str_replace(DS, '/', substr($languageFile, $substrlen));
                        $languageElement = $languagesElement->addChild('language', $t);
                        $languageElement->addAttribute('tag', substr(basename($languageFile), 0, 5));
                }//foreach
            }
        }

I noticed that you confirmed me as a developer for com_easycreator on joomlacode, but I've not yet set up my SVN for it, so I can not commit this (also I don't know if this is the correct way to solve the problem)
Gespeichert
ripper17
Newbie
*
OfflineOffline

Registriert seit: 15.04.09
Beiträge: 9


Profil anzeigen
« Antworten #2 am: 08. 01. 2010 14:28 »

Hi elkuku

I've continued fixing some issues, that com_eayscreator had, when I used it - this may not apply to everyone, but still I thought, I'd share:

Besides changing the section with the parameters, I had to do these things:

First, from everything I tried, the installer.compname.php file MUST be at the root of the ZIP file, when installing the component (I may be wrong about this, but nothing else worked. This includes having the files in admin/install/install.compname.php and in the manifest <installfile>admin/install/install.compname.php</installfile> and <installfile>install/install.compname.php</installfile>).
This of course also means, that the <installfile> node must not hold any path information, regardles where the install.compname.php file actually is stored in the development environment. So I changed helpers/manifest.php, around line 144, from :
Code:
foreach ($installFiles['php'] as $file)
            {
                $dir =($file->folder) ? $file->folder.DS : '';

                if(strpos($file->name, 'install') == 0)
                {
                    //--Install
                    $this->manifest->addChild('installfile', $dir.$file->name);
                }
                else
                {
                    //--Uninstall
                    $this->manifest->addChild('uninstallfile', $dir.$file->name);
                }
            }//foreach
to
Code:
foreach ($installFiles['php'] as $file)
            {

                if(strpos($file->name, 'install') == 0)
                {
                    //--Install
                    $this->manifest->addChild('installfile', $file->name);
                }
                else
                {
                    //--Uninstall
                    $this->manifest->addChild('uninstallfile', $file->name);
                }
            }//foreach


As said, the files themselves must be at the root of the ZIP file, so I also changed helpers/ziper.php, around line 311. After the line
Code:
$this->logger->log('COPY DIR<br />SRC: '.$copy.'<br />DST: '.$tmp_dest);
I added
Code:
if( strcmp( $dest, 'admin') == 0) {
// Check for install manifest files!
$installFiles = EasyProjectHelper::findInstallFiles($this->project);
$phpInstallFiles = $installFiles['php'];
if(! is_dir($copy)) {
        break;
}
   
    $files = array();
    $dirs = array( $copy);
    while( NULL !== ($dir = array_pop( $dirs)))
    {
        if( $dh = opendir($dir))
        {
            while( false !== ($file = readdir($dh)))
            {
                if( $file == '.' || $file == '..')
                    continue;
                $path = $dir . '/' . $file;
                if( is_dir($path)) {
                    $dirs[] = $path;
}
                else
{
foreach ($phpInstallFiles as $phpInstallFile) {
                if (strcmp($file, $phpInstallFile->name) == 0) {
if( JFile::copy($path, $this->temp_dir.DS.JFile::getName($file)))
                {
                    $this->logger->log('COPY FILE<br />SRC: '.$file.'<br />DST: '.$this->temp_dir);
                }
                else
                {
                    $this->logger->log('COPY FILE FAILED<br />SRC: '.$file.'<br />DST: '.$this->temp_dir,'ERROR copy file');
                }
}
}
}
            }
            closedir($dh);
        }
    }
}

I'll continue in the next post...

Cheers, Martin
Gespeichert
forum.easy-joomla.org
« Antworten #2 am: 08. 01. 2010 14:28 »

all-inkl.com webhosting
 Gespeichert
ripper17
Newbie
*
OfflineOffline

Registriert seit: 15.04.09
Beiträge: 9


Profil anzeigen
« Antworten #3 am: 08. 01. 2010 14:34 »

Part 2/2:

Next, I had the problem, that there wasn't an  SQL installation part in the newly created manifest, so I made the lookup for SQL files a little more complete and changed helpers/projecthelper.php by adding
Code:
//-- Look in 'sql' folder
        if(JFolder::exists($base.DS.'sql'))
        {
            $files = JFolder::files($base.DS.'sql', '(^install|^uninstall)([\.a-z])+(sql$|php$)', true, true);

            foreach ($files as $file)
            {
                $folder = str_replace($base.DS, '', $file);
                $folder = str_replace(DS.JFile::getName($file), '', $folder);

                $f = new stdClass();
                $f->folder = $folder;
                $f->name = JFile::getName($file);

                $installFiles[JFile::getExt($file)][] = $f;
            }//foreach
        }

to the function findInstallFiles()

At first I thought that the manifest.php file was maybe missing something, so I looked at it and I'm not sure if my change is valid or not, but here it is anyway (I left it in because now it works for me):
Changed around line 170
Code:
//--Install
                    if( ! isset($this->manifest->install))
                    {
                        $install = $this->manifest->addChild('install');
                        $installSql = $install->addChild('sql');
                    }
to
Code:
//--Install
                    $install = 0;
                    $installSql = 0;
                    if( ! isset($this->manifest->install))
                    {
                        $install = $this->manifest->addChild('install');
                    } else {
                        $install = $this->manifest->install;
                    }
                    if ( ! isset($this->manifest->install->sql )) {
                        $installSql = $install->addChild('sql');
                    } else {
                        $installSql = $this->manifest->install->sql;
                    }


and the same for uninstall...

Maybe these two posts help some other users, and if you think my changes are valid, feel free to copy them.
I'm enjoying easycreator a lot! I've made so many packages with it currently (for testing my own development) and it's very convenient to use, so thanks for all your work!

Martin
« Letzte Änderung: 08. 01. 2010 14:36 von ripper17 » Gespeichert
elkuku
Developer
Full Member
*
OfflineOffline

Registriert seit: 11.12.07
Beiträge: 125



Profil anzeigen WWW
« Antworten #4 am: Gestern um 18:19 »

Hello Martin,
thanks a lot for your kind words and for the bug reports and fixes you provided.

The problem(s) you are talking about seems to be the most annoying bug since EasyCreator was born Wink

I thought most of the problems would be fixed in this release, but it seems their not - and worse...

I tried to make up some documentation about this see: http://wiki.joomla-nafu.d...Component_install_scripts

Some questions:
* Can you try a previous version (e.g. 0.0.10) and see if the problem still exists ?
* Could you provide a package that does not work ? You talked about one that has an install file that does not get executed
* Does the files show up correct in Project->Building 'Install and Uninstall' ?

At least i would love to have some more 'hands' on the code as the project is still growing WinkYou should have SVN access..

You can still provide patch files Wink

I release a new version in the incubator: http://projects.easy-joom...ewsfeeds/EasyCreator.feed
Would you mind to give it a try ?

The first bug you mentioned (creating site modules packages) definitely will force a new (minor) release.

Thanks for the hard work,
Nikolai
Gespeichert

Gruss,
Nikolai - NiK-IT.de
Easy-Joomla Team
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  


Audiovisuelle Filmanleitungen hosted by all-inkl.com joomladirectory.net joomla.org jahoart.eu joomla-in-berlin.de Joomla Toplist Spende/Donate
easy-joomla.org joomla.de webjobber.de snipersister-de xing.de
joomlacode.org joomlaos.de joomla24.com nik-it.de

Powered by MySQLPowered by PHP Powered by SMF 1.1.8 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0Prüfe CSS
Seite erstellt in 0.304 Sekunden mit 28 Zugriffen.