Leaderboard
Popular Content
Showing content with the highest reputation on 09/13/2014 in all areas
-
Ha - thank you all for the suggestions Im going to be boring and just feature my face* *actual face may differ slightly from photo. It gets bigger or smaller depending on the proximity of Christmas and puddings5 points
-
Greetings, That's because we see our representative images as a blank slate, with no assumptions about how they should be designed -- a custom field. Thanks, Matthew5 points
-
5 points
-
5 points
-
This module may get put into the core. Not sure yet. But it does seem like something that may be useful to most PW installs, so seriously considering it once it's fully refined and has a few miles on it, etc. No need to worry – if you click it, the next screen tells you that it is a downgrade. Though it's perfectly fine to downgrade or upgrade between master and dev, unless using something that's only in dev. I've been doing it all week. This is consistent with how PW currently renders all system notices: at superuser login. If it's an error, it shows up red. Otherwise it shows up green. Upgrades to core or modules in PW aren't particularly important most of the time (since it isn't WordPress). It's more just an "FYI", "if you are looking for it" kind of thing. The info is always available in Setup > Upgrades. But I hear what you are saying and you aren't the first to say they tune out PW's green messages. Antti and I are working on a new notifications system and I expect we're going to do some great things there. This module will be one of a few we use to test the new notifications system. But until then I thought it best to keep consistent with the way PW currently does things with regard to system notices. So just wanted to mention there are some nice new things coming here, but for the overall system rather than just 1 module.5 points
-
Of all the forums I am involved in across any discipline, PW users have the most unusual and eclectic avatars. Agree and know why?4 points
-
4 points
-
Often times, creating a side project is first and foremost scratching your own itch Or to start differently: Currently, I'm developing a site where I need CKeditor (and later jQueryUI Datepicker) outside of the admin, in frontend. I searched Google and the forums and found an approach to follow - but during the research the site laravel-recipes.com came into my mind (since I'm currently also looking into this framework). It's content consists of small, spot-on bits of information, for example: http://laravel-recipes.com/recipes/269 Just to think out loudly here, wouldn't it be nice to have a ProcessWire counterpart of such a site? processwire-recipes.com for example? Target group: Developers, from beginner to advanced Difference to these forums: Stripping the discussion part, concentrating on the info; and if done properly: bypassing the mediocre forum search, better tagging Difference to the official tutorial section: Focusing on not creating a whole site, but modular parts of it. Single solutions. For example: First child redirects (shameless plug, but this is the format of information pieces I'm having in mind) Difference to the API documentation: Situation-based ("I need this and that") instead of architecture-based Laravel.io (forum), laravel.com (official, and doc) and laravel-recipies.com possibly prove that these type of sites can coexist in a framework ecosystem, so I guess a recipes site would not cannibalize this forum here nor the doc section. A recipe site like this would live and die with its content, of course. I would be ready to share all the small pieces of information I encounter that would make a good "recipe". But that alone wouldn't be enough so this project won't survive without contribution of the community. What's your opinion on this? Yea or nay? Update: ...it just took, erm, nearly three months,... but here it is: https://processwire-recipes.com/3 points
-
Greets I'm using the dev-build of PW for one of my sites (obviously will upgrade to 2.5 when released). I'm not a huge fan of the default CKEditor skin, and would like to use the office2013 theme instead. How would I go about doing that? Update I have tried adding a skins directory in site/modules/InputfieldCKEditor and loading the skin via config.js, but it looks for the skin in the wire/modules/Inputfield/InputfieldCKEditor/ckeditor-4.4.3/skins directory... Any way to change that? Update (again) This works, but isn't so elegant: ../../../../../../../site/modules/InputfieldCKEditor/skins/office2013 Surely one could make it so that it looks in both the `wire` and `site` directories for skins?3 points
-
Greetings Processers! Just a quick update here. With the new stable version 2.5 Installation of all language modules went without any errors. Thanks Ryan!!!3 points
-
I think more direct workflow would be from template - possibility to create a new field and attach it directly to a template. I mean you pretty much always want to order the field, so you need to be on template view anyways.3 points
-
Am I being boring too Maybe I need to switch back to the one with the fluffy scarf for a bit. With the hat so I can be more like Martijn. Better now? EDIT: Yes, we are all slightly crazy. Welcome to the internet3 points
-
I use my own utility function files in my site-profiles in a subfolder called for example: 'mylibs' I include them once in the site/config.php file: include_once(dirname(__FILE__) . "/mylibs/myfunctions.php"); This way I can use all what is in my utility files every where, regardless if I run PW in the webserver or if I bootstrap it for CLI operations.3 points
-
3 points
-
Ok, I'll stop hassling you about an orange warning option now that I know that a revamped notifications system is on the way The upgrade module really is fantastic - thank you!3 points
-
Some upgrades to the upgrade module. It now scans for module upgrades too, and provides notifications of upgrades that show up when superuser logs in: Main screen: Login notifications: Note that you have to have the latest PW (2.4.19 or hopefully 2.5 later today) in order to use the modules upgrades or login notifications. The core upgrades portion will work with old PW versions. Also the screenshot says it's called "Core Upgrade", but that's because I already had it installed. If you install it anew now, it's simply called "Upgrades".3 points
-
2 points
-
You can include _init.php in all templates by adding this to your config.php $config->prependTemplateFile = '_init.php'; https://github.com/ryancramerdesign/ProcessWire/blob/master/site-default/config.php#L452 points
-
I think @NorbertH's motivation might be that he doesn't want standard FTP enabled on his server at all. I think it is about keeping the server in general more secure, rather than protecting the actual transfer of PW files. Is that correct?2 points
-
2 points
-
I have build an module with frontend form, but will rewrite it (again) to make it more flexible... https://processwire.com/talk/topic/7508-template2form-module-helper/ But at the source code you should see how it works (inside the module). You also need to build a form! @Martijn Geerts Thank's, was just quick search the forum and paste there2 points
-
I was reading all the posts in this topic with big interest. When I first read the title of this topic I was thinking "what exactly are you talking about? ProcessWire is the most userfriendly CMS I've ever seen". As I read further (the first post) I understood the big difference in what people in this forum think is a user. For me a user is a person that uses the backend of PW and because PW IS a CMS this means the user is able to manage contents. Nothing more, nothing less. If you are in that mindset PW delievers a great user experience, because everything the user sees is exactly what he/she needs. There are no useless fields and there are no complicated mechanisms to publish different types of content. This is a real additional value for the user as this kind of CMS is way easier to grasp. (in opposite to let's say 5 plugins/addons/modules which are all from different devs and therefore have all a different workflow) On the other hand, this means there has to be a real web designer/developer, beause the user will never be able to get new features by themselfs. This person is not in the user role, he/she is the webmaster/administrator. This makes PW perfect for professional use and personally I think this is the right direction.2 points
-
Really? I sometimes need one of those .... Edit: Well, at least it is related. In real life I was a sound engineer and dubbing mixer for 25 years (with lots of copywriting and padvertisign thrown in) and been a composer for the last 10 - I do things like this: https://www.youtube.com/watch?v=ISaXZ5j6gv8&list=PLF9DEA78045F0988C&index=6&feature=plcp But I don't get a lot of call for commissioned music on websites. Pity, audio is really rubbish on the internet - very underused.2 points
-
I've been working on a module to make it really simple to upgrade ProcessWire from one version to another. Especially as a way to make it easy to upgrade from PW 2.4 to 2.5, or to upgrade from one dev version to another. This tool supports upgrading between any branches of ProcessWire (currently we only have master and dev on GitHub). It will also let you downgrade your ProcessWire version, though no reason to do that. The module keeps up-to-date directly with GitHub, so it works as a long-term tool for every upgrade if you want it to. It works best if your file system is writable. However, if it isn't, the tool can still be used. It will still download the upgrade files to the server and then tell you where to move them. I should also mention that this module is somewhat inspired by a similar module Nico built awhile back called AutoUpgrade. So far I've used this tool to upgrade this site (processwire.com), the skyscrapers site, and the modules site (modules.processwire.com). Before releasing this officially in the modules directory, or suggesting it for production use, I'd like to get some help testing. If anyone has availability to help test this on non-production sites, your help is appreciated. It can be downloaded from GitHub here. As a bonus, it will also be a good opportunity to help test PW 2.5! Thanks in advance. What I'd really like to do as the next step with this is make it support upgrade by FTP. That would provide a nicer and safer solution for those that don't have writable file systems on their servers. This tool should be compatible with ProcessWire versions as far back as 2.3.4. I will also update it to support older versions than that if there's demand for it.1 point
-
Since some others and me have been run into problems with FieldtypeFloat. I want to start a discussion with the purpose to get a consistent FieldtypeFloat and/or to create a new Fieldtype maybe called FieldtypeDecimal to store exact values maybe for currencies. First I will assume some known problems. precision Values of Type Float are stored in most of the Mysql Installations with a precision of 6 by default. PW FieldtypeFloat uses Type float() in the Mysql Database This could cause some problems. For easy understanding look at this table. +---------------+----------------+--------------------------------------------------+ | input | float() | decimal(10,2) | +---------------+----------------+--------------------------------------------------+ | 1234.56 | 1234.56 | 1234.56 | +---------------+----------------+--------------------------------------------------+ | 123456.78 | 123457 | 123456.78 | +---------------+----------------+--------------------------------------------------+ | 12345678 | 12345600 | 12345678.00 | +---------------+----------------+--------------------------------------------------+ | 1.23456789 | 1.23457 | 1.23 | +---------------+----------------+--------------------------------------------------+ | 12345678912345| 12345600000000 | ERROR SQLSTATE[22003]: Numeric value out of range| +---------------+----------------+--------------------------------------------------+ As an example in Apeisas Shoppingcart Module exists a field sc_price of type float(). This field allows a maximum value of 9999.99 Euro Dollar or whatever. Don't use it to sell cars like Ferrari. Try to store the input values of the preceding table in a PW Field of Type Float in your surrounding and look what you get after saving. Threads treating the same problem https://processwire.com/talk/topic/3888-float-field-rounding-problem/ https://processwire.com/talk/topic/86-float-field-rounding rounding Mysql will round anyway the float value to precision. So it is not necessary to round the value in php before storing. To store exact Values it is better to use Type decimal(M,D) where M is the lenght and D the number of digits. Thread treating the same problem https://processwire.com/talk/topic/86-float-field-rounding format We had already some discussion about local settings, storing and output of PHP-Values of Type (float). And Ryan did some Adjustments with number_format. But I don't trust completely, thats why I am using Textfields to store numbers. Would be nice to have a consistent Fieldtype working in different local-settings. Thread treating the same problem https://processwire.com/talk/topic/4123-decimal-point-changed-to-in-base-of-setlocale/ https://processwire.com/talk/topic/86-float-field-rounding What is a float (floating point value), what is decimal? A float is an approximate value and exactly like this it is stored in Mysql. For more understanding two examples. 1. example CREATE TABLE `test` ( `test_float` float(10,2) NOT NULL, `test_decimal` decimal(10,2) NOT NULL ); INSERT INTO `test` (`test_float`, `test_decimal`) VALUES (5.43, 5.43); SELECT (test_float * 1.0000000) AS f, (test_decimal * 1.0000000) AS d FROM test; This will result the following: f = 5.4299998 and d = 5.430000000 source: http://netzgewe.be/2012/03/mysql-und-waehrungsbetraege-float-vs-decimal/ (german) 2. example mysql> create table numbers (a decimal(10,2), b float); mysql> insert into numbers values (100, 100); mysql> select @a := (a/3), @b := (b/3), @a * 3, @b * 3 from numbers \G *************************** 1. row *************************** @a := (a/3): 33.333333333 @b := (b/3): 33.333333333333 @a + @a + @a: 99.999999999000000000000000000000 @b + @b + @b: 100 source: http://stackoverflow.com/questions/5150274/difference-between-float-and-decimal-data-type INFO & LEARNING http://stackoverflow.com/questions/5150274/difference-between-float-and-decimal-data-type http://stackoverflow.com/questions/4520620/float-precision-problem-in-mysql http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html INTENTION The intention of this thread is to discuss good solutions for a consistent working FieldtypeFloat which makes clear to Everybody what it is via description. Furthermore to build a new Fieldtype with setting options of total lenght and decimal places. NOTES Please use this thread rather for development than as a help forum. BTW I am not an expert in Mysql PHP or whatever. Maybe there are some guys in the forum which could put the real good stuff here. Thanks a lot and lets go.1 point
-
Hi, during work on some own modules (frontend content manager, frontend users) I noticed my need of a helper module. Template2Form (working title) is a module to build a form based on fields get from a page object or a template file (tmp fake page object). During build process each field could be hooked in to modify it. Also it's possible to modifiy form, submit button and form fields via function params. It's my first (basic / dev state) module I post here... If it will be useable I have to clean up and comment the code well... template2form class <?php /** * Processwire 'template2form' module * * template2form - generate form from page / template fields * * @author pwFoo * @since 2014-07-18 * * ProcessWire 2.x * Copyright (C) 2011 by Ryan Cramer * Licensed under GNU/GPL v2, see LICENSE.TXT * * http://www.processwire.com * http://www.ryancramer.com */ class Template2Form extends WireData implements Module { /** * @var object $form generated form object */ public $form; /** * @var array $option multidimensional array with options */ private $option; /** * getModuleInfo is a module required by all modules to tell ProcessWire about them * @return array */ public static function getModuleInfo() { return array( 'title' => 'Template2Form', 'summary' => 'Generate form from template fields', 'version' => '0.0.1', ); } /** * Default module and form options * @var array $defaultOptions static mutlidimensional array with default options */ public static $defaultOptions = array( 'page' => null, 'template' => null, 'prefillFormFields' => null, 'jquery' => null, 'form' => array('method' => 'post', 'action' => '', 'id' => 'login', 'name' => 'login'), 'formSubmit' => array('id' => 'submit', 'name' => 'submit', 'value' => 'Submit'), 'formFields' => null, ); public function init() { $this->addHookAfter('Template2Form::buildField', $this, 'hookingFormField', array('priority'=>20)); } /** * Set / merge module and form options * @param array $options Array with given options * @return null */ private function setOptions (array $options = null) { if($options != null && is_array($options)) { $this->option = array_replace_recursive(self::$defaultOptions, $options); // Use template instead of page if given if ($this->option['template] !== null) { $this->option['page'] = $this->fakePage($this->option['template']); } // No template or page? Use current page... elseif ($this->option['template'] === null) { $this->option['page'] = $this->page; } if ($this->option['jquery']) { $this->modules->get('JqueryCore'); } } else { $this->option = self::$defaultOptions; } } /** * Generate the form object * @param array $options Set of optional and needed settings * @return object Generated form */ public function getForm (array $options = null) { $this->setOptions($options); $this->form = $this->buildForm (); return $this->form; } /** * Generate the form object from given fields * @return object Generated form */ private function buildForm () { $form = $this->modules->get('InputfieldForm'); $form = $this->setFormAttr($form); // Get fields to build the form $fields = $this->templates->get($this->option['page']->template)->fields; foreach ($fields as $field) { $f = $this->buildField ($field); // Get Inputfield object if ($f !== NULL) $form->append($f); // Remove NULLed fields from from... } $form->append($this->addSubmitButton()); return $form; } /** * Set form attributes and return the object * @param object $form * @return object Form with added attributes */ protected function ___setFormAttr($form) { $form->id = $this->option['form']['id']; $form->name = $this->option['form']['name']; $form->action = $this->option['form']['action']; $form->method = $this->option['form']['method']; return $form; } /** * Generate Inputfield object from given field object * @param object $field Page field object * @return object */ protected function ___buildField ($field) { return $field->getInputfield($this->option['page']); } /** * Modify the current field object by hook in after buildField function * @param object $event */ protected function ___hookingFormField ($event) { $field = $event->return; $hook = $this->option['formFields'][$field->name]; // Remove selected field... if ($hook['remove'] == true) { $event->return = NULL; } // prefill form fields from page value... elseif ($this->option['prefillFormFields'] && $event->page->get($field->name)) { $hook['set']['value'] = $event->page->get($field->name); } if (!isset($hook)) return; // nothing to do with this field... // Set form field values... elseif (is_array($hook['set'])) { foreach ($hook['set'] as $key => $value) { $field->set($key, $value); } $event->return = $field; } } /** * Build the form submit button * @return object form submit Inputfield */ protected function ___addSubmitButton() { $btn = $this->modules->get('InputfieldSubmit'); $btn->attr('id', $this->option['formSubmit']['id']); $btn->attr('name', $this->option['formSubmit']['name']); $btn->attr('value', $this->option['formSubmit']['value']); return $btn; } /** * Rendering the current form * @return string Rendered form as html code */ public function ___formRender() { return $this->form->render(); } /** * Process form data if send * @return object Processed form data */ public function ___formProcess() { $submit = $this->option['formSubmit']['id']; if(!$this->input->post->$submit) return NULL; // form NOT submitted... $processedForm = $this->form->processInput($this->input->post); // form api process form values if(!$this->form->getErrors()) return $processedForm; // form processed: OK else return false; // form send with errors } /** * Make fake page and assign needed template * @param string $tpl Template to assign * @return object Generated fake page to work with */ private function fakePage($tpl) { $fakePage = new Page(); $fakePage->template = $tpl; return $fakePage; } /** * jsConfig settings needed by wysiwyg editor * @return string Basic JavaScript config */ public function ___jsConfig () { $jsConfig = $this->config->js(); $jsConfig['debug'] = $this->config->debug; $jsConfig['urls'] = array( 'root' => $this->config->urls->root, 'admin' => $this->config->urls->admin, 'modules' => $this->config->urls->modules, 'core' => $this->config->urls->core, 'files' => $this->config->urls->files, 'templates' => $this->config->urls->templates, 'adminTemplates' => $this->config->urls->adminTemplates, ); return '<script type="text/javascript">var config = ' . json_encode($jsConfig) . '</script>'; } } Usage examples $t2f = $modules->get('Template2Form'); // Remove field 'headline' and 'body' from form $hookFormFields['headline'] = array('remove' => true); $hookFormFields['body'] = array('remove' => true); // Set / Overwrite field attributes / values like you could do with form api $hookFormFields['title'] = array('set' => array('value' => 'CustomTitle...', 'type' => 'password')); $hookFormFields['summary'] = array('set' => array('value' => 'My overwritten summary...')); // Overwrite submit button attributes (default: id, name, value) $hookFormSubmit = array('value' => 'Speichern'); /* * Build the multidemensional array * page (object) or template (string) -- to build the form from * prefillFormFields -- prefill fields (for example to build a frontend edit page * jquery -- Load JqueryCore module (during getForm() call) * form -- set form attributes / values * formFields -- array to set field values / attributes, take a look at form api examples * formSubmit -- set form submit button attributes / values */ $formOptions = array('page' => $page, 'template' => null, 'prefillFormFields' => true, 'jquery' => true 'formFields' => $hookFormFields, 'formSubmit' => $hookFormSubmit); // Generate the form and set options above $t2f->getForm($formOptions); // process form and return processed form date $process = $t2f->formProcess(); if ($process === NULL) // form not sent elseif ($process === false) // form sent, but with errors elseif ($process == true) // form sent without errors // Render form... $form = $t2f->formRender(); echo '<html><head>'; // jsConfig needed by ckeditor echo $t2f->jsConfig() . "\n"; // outpunt needed scripts for inputfield modules, ... foreach ($config->scripts as $file) { echo "<script type='text/javascript' src='$file'></script>\n"; } foreach ($config->styles as $file) { echo "<link type='text/css' href='$file' rel='stylesheet' />\n"; } echo '</head><body>'; echo $form; // output form echo '</body></html>';1 point
-
I would check if any pages are still using the template and only remove it if it was zero. I might make it a config option to have the module remove its pages on uninstall, though.1 point
-
Or if you have the skills, perhaps you'd be interested in creating an plug-in for Migrator, like Nico's WP migrator. We have a lot of ModX refugees here, so I am sure it would get lots of use. I don't know anything about ModX, but I'd be happy to help in any way I can.1 point
-
Maybe the way is a modal dialog on the templates edit screen that accesses the complete field creation and configuration options and as soon as you save and the modal closes, the field is added to the ASM of fields in the template? Otherwise you could be potentially stuck with needing to go back and edit the field settings.1 point
-
Hey horst - good points about shared servers for sure! I guess I am in the unusual situation of managing my own servers so I have disabled FTP, but I do have SFTP enabled. To compare, I know that Wordpress does not support SFTP by default which would make their automatic core upgrade process useless for me - lucky I don't want to use WP I'll probably still be using git pull for all my PW upgrades, because of the write permissions I have set on my servers, but I think it would be nice to have this module support all possible options.1 point
-
@adrian: the context of that FTP transfer is _only_ for shared hosting environments where you are not in the comfortable situation to have wire folder write access without setting it to write for all (0777). But I don't know of any shared hosting environments that does _not_ have FTP enabled. But I do know of many that also do not have SFTP / SCP or SSH. Some may have FTPES. So, FTP is already enabled on those Servers, why not using it for transferring from local file system to local FTP? I cannot see any downside here. If you have your own server or are not in (cheap) shared hosting, you always can use other ways I believe. Maybe @NorbertH has quoted a to small piece of Ryans statement, so that it got a bit out of context?1 point
-
Hi Mike - does this help: http://stackoverflow.com/questions/17863112/ckeditor-move-skins-folder-somewhere-else ? I think that link is saying that using just / instead of using all those ../ will get you to the root of your site so maybe something like /site/modules/InputfieldCKEditor/skins/office2013 would work.1 point
-
I still didn't grasped what you're trying to archive, because your last code piece was missing, so I tried to help you with what could be what you're after. As long as you include the _init.php in each template there shouldn't be any error in echoing the $sort variable, no matter where in your code. There must only ever be the include statement somewhere before the echoing.1 point
-
1 point
-
the "empty lang pack" is updated --> contains 122 files now. Based on the pre 2.5 version of PW from 13 September 2014.1 point
-
This sounds like a good idea! Already got an idea for the humble name of said fork, "Superreno"1 point
-
The Hungarian language pack for ProcessWire 2.5 has been released. The included site and core translation files are translated in formal style, best suitable for business, corporate and e-commerce sites. GitHub Repository: https://github.com/jtherczeg/processwire-hungarian-lng Download from GitHub: https://github.com/jtherczeg/processwire-hungarian-lng/archive/master.zip Approval of submission to ProcessWire Modules Directory is pending. Any feedbacks are welcome1 point
-
Skip this, sorry: For your front-end I think it's wiser not to rely on InputfieldCKEditor, but rather load your own. The possibility is that changes to InputfieldCKEditor can effect your front-end.1 point
-
You have to load the ckeditor before you output scripts and styles Load the module adds the css and js to $config->scripts and $config->styles. foreach($config->scripts->unique() as $file) echo "\n\t<script type='text/javascript' src='$file'></script>"; foreach($config->styles->unique() as $file) echo "\n\t<link type='text/css' href='$file' rel='stylesheet' />";1 point
-
After some testing that worked for me // needed by ckeditor! $modules->get('JqueryCore'); // load ckeditor $modules->get('InputfieldCKEditor'); // here you have to build a form with InputfieldForm module and form fields! // Examples: You need js config in the html head section before module styles and scripts! // ckeditor needs some js config BEFORE you load the module styles and scripts <script type="text/javascript"> <?php $jsConfig = $config->js(); $jsConfig['debug'] = $config->debug; $jsConfig['urls'] = array( 'root' => $config->urls->root, 'admin' => $config->urls->admin, 'modules' => $config->urls->modules, 'core' => $config->urls->core, 'files' => $config->urls->files, 'templates' => $config->urls->templates, 'adminTemplates' => $config->urls->adminTemplates, ); ?> var config = <?php echo json_encode($jsConfig); ?>; </script> After that, you can output the modules styles and scripts foreach($config->scripts->unique() as $file) echo "\n\t<script type='text/javascript' src='$file'></script>"; foreach($config->styles->unique() as $file) echo "\n\t<link type='text/css' href='$file' rel='stylesheet' />";1 point
-
Please, based on a version of Reno, - and could it be that way that the advanced features are only but automatically displayed for superusers? So editors or others can use the theme, but without the advanced features.1 point
-
I don't know if any of you are aware of Bolt CMS, but it reminds me a lot of PW. I've tested it a few times, but I prefer PW. Anyway, they have a snippets section which I found useful. https://snippets.bolt.cm/ I assume the OP is referring to something along those lines? If so, it gets a +1 from me.1 point
-
yes indeed and a hanna code section would be great....i love these little snippets for manipulating/generating content.... let's wait for nico - if he had a second for this (i think he's always bussy )1 point
-
I'll expand this list with (Soma's navigation module), looping your list: for title & content they are covered ( echo $page->title; & echo $page->body;) for images, using the API is simpler that any other solution i've ever seen. for downloads (Potential Module, that accepts a single file, presenting the user with a link, force download the file) Could be a module that creates necessary templates & pages & presenting ready to use code snippets to use in your templates. Could be a module that takes the name of the images field and specify the sizes of thumb & link-to image, additional code snippets for the javascript could be included. forms, are already covered by Formbuilder.1 point
-
Pushed an update to the module: New settings: Path to TemplatesIf you use a delegated template approach, please provide your path to the templates (relative to templates directory). Collapse unpublished rowsIf checked, unpublished PageTable parts are rendered collapsed and can be opened on click. (hidden) CSS classes for PageTable page statusThe rendered parts (the div.renderedLayout) get the status of the page as CSS class: ".pte-hidden" for hidden pages ".pte-unpublished" for unpublished pages ".pte-locked" for locked pages @titanium: Could you please test the new version (0.2.0.) with your template delegate approach. I don't use it, so I can't test it quickly. But should work1 point
-
I think that's been the case for quite some time. If you're after an alternative there are plenty of lightboxes around. I've used Magnific popup (which is used in the PW admin) recently and that's been ok: http://dimsemenov.com/plugins/magnific-popup/1 point
-
Quick hint: already saved snippets.pw and trying to create a blog/snippet collection so you get easier into pw. But it's only a concept at the moment.1 point
-
When I took those screenshots, I was basically left with no more sites to upgrade.1 point
-
I recently created a Dribbble API wrapper module (I am pretty new at creating modules) and wanted to know if its possible to use the $image API to retrieve the external Dribbble "shot" (image), resize it and store them along with the XML in the asset cache. That way I can load an image locally via the cached file(s) for the module instead of hitting Dribbble every time for the full size images. Any thoughts on how to best do this? Here is the current state of the module on Github: https://github.com/ryanscherler/ProcessDribbble1 point
-
1) you may do this by using a hidden tools page with an images field and than you only have to use $page->images->add($shotImageUrl) to save the image to the tools page assets directory. And you have it as PageImage and you can do all image api stuff 2) I have uploaded a new module for Image Manipulation. With this you are able to use some well known image methods (width, height, size) and you can store the image together with your xml or json file instead of creating and using a tools page with InputFieldtypeImage. Example (this could be somewhere in your makeRequest method): // get your image from dribble and save it to your cache directory $shotImageUrl = 'http://dribble.com/some/path/to/image.jpg'; $imgCacheFile = $this->cachePath . md5($url) . '.image.jpg'; $result = file_put_contents($imgCacheFile, file_get_contents($shotImageUrl)); // if $result is not false and greater than zero the image was successfully saved, // now you can load the $imgCacheFile into the ImageManipulator, resize it and save it by overwriting the $imgCacheFile $boolResult = wire('modules')->get('PageImageManipulator')->imLoad($imgCacheFile)->resize(360)->save(); // thats all PS: if you want rely on the PageImageManipulator module, you can set it as needed dependency for your module: public static function getModuleInfo() { return array( // ... 'requires' => array('PageImageManipulator'), ); } see: http://processwire.com/talk/topic/778-module-dependencies/1 point