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

Einloggen mit Benutzername, Passwort und Sitzungslänge
Neueste Beiträge
Re: "Unable to report" in SpamLog; Array Bug von HansHuldreich Gestern um 16:25
Re: EasyCreator 0.0.12 von ripper17 08. 01. 2010 14:34
Re: EasyCreator 0.0.12 von ripper17 08. 01. 2010 14:28
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: 3 posts
Gelesen 278 mal 0 Mitglieder und 1 Gast betrachten dieses Thema.
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: EasyCreator 0.0.12  (Gelesen 278 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
elkuku
Developer
Full Member
*
OfflineOffline

Registriert seit: 11.12.07
Beiträge: 123



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
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.123 Sekunden mit 28 Zugriffen.